This commit is contained in:
2026-07-31 23:21:51 +02:00
parent f6b4b36df8
commit f14f2cfd98
294 changed files with 5880 additions and 0 deletions
+40
View File
@@ -0,0 +1,40 @@
import { seoPlugin } from '@payloadcms/plugin-seo';
/**
* Escape hatch from automatic title composition: whatever is typed here becomes
* the entire title — no site name, no separator. Useful on a home page, where
* composing would produce "Intecion Software | Intecion Software".
*/ const titleOverrideField = {
name: 'titleOverride',
type: 'text',
admin: {
description: 'Use this exact text as the browser-tab title — no site name, no separator. Leave empty to compose the title automatically.'
},
localized: true
};
/**
* Configures @payloadcms/plugin-seo from IPAL's SeoOption.
*
* Adds the `meta` field group (title, description, image) to the client's
* chosen collections. tabbedUI is intentionally NOT used — it merges tabs by
* inspecting the first field, which breaks when other plugins/fields (roles,
* slug) already sit in the collection, leaving an empty SEO tab. Instead the
* SEO UI fields are injected into a controlled tab by injectSeoTabs.
*/ export function buildSeoPlugin({ seo, uploadsCollection = 'media' }) {
return seoPlugin({
collections: seo.collections,
fields: ({ defaultFields })=>[
...defaultFields,
titleOverrideField,
...seo.fields ?? []
],
uploadsCollection,
...seo.generateTitle && {
generateTitle: seo.generateTitle
},
...seo.generateDescription && {
generateDescription: seo.generateDescription
}
});
}
//# sourceMappingURL=seoPluginConfig.js.map