103 lines
2.7 KiB
JavaScript
103 lines
2.7 KiB
JavaScript
import { validateFaviconField } from '../../../modules/seo/index.js';
|
||
/**
|
||
* General site identity fields.
|
||
* Consumed by SEO/OG (siteName, defaultShareImage) and frontend (logo).
|
||
*/ export const generalFields = [
|
||
{
|
||
name: 'siteName',
|
||
type: 'text',
|
||
admin: {
|
||
description: 'Used in page titles and Open Graph metadata.'
|
||
},
|
||
localized: true,
|
||
required: true
|
||
},
|
||
{
|
||
name: 'siteDescription',
|
||
type: 'textarea',
|
||
admin: {
|
||
description: 'Fallback meta description when a page has none. Also used for llms.txt and Open Graph.'
|
||
},
|
||
localized: true
|
||
},
|
||
{
|
||
name: 'titleOrder',
|
||
type: 'select',
|
||
admin: {
|
||
description: 'Which comes first in browser tabs.'
|
||
},
|
||
defaultValue: 'page-first',
|
||
options: [
|
||
{
|
||
label: 'Page first — About Us | Acme',
|
||
value: 'page-first'
|
||
},
|
||
{
|
||
label: 'Site first — Acme | About Us',
|
||
value: 'site-first'
|
||
}
|
||
]
|
||
},
|
||
{
|
||
name: 'titleSeparator',
|
||
type: 'select',
|
||
admin: {
|
||
description: 'Separates the page title from the site name in browser tabs.'
|
||
},
|
||
defaultValue: '|',
|
||
options: [
|
||
{
|
||
label: 'Pipe — Page | Site',
|
||
value: '|'
|
||
},
|
||
{
|
||
label: 'Dash — Page – Site',
|
||
value: '–'
|
||
},
|
||
{
|
||
label: 'Hyphen — Page - Site',
|
||
value: '-'
|
||
},
|
||
{
|
||
label: 'Bullet — Page · Site',
|
||
value: '·'
|
||
},
|
||
{
|
||
label: 'Slash — Page / Site',
|
||
value: '/'
|
||
}
|
||
]
|
||
},
|
||
{
|
||
name: 'logo',
|
||
type: 'upload',
|
||
admin: {
|
||
description: 'Primary site logo.'
|
||
},
|
||
relationTo: 'media'
|
||
},
|
||
{
|
||
name: 'defaultShareImage',
|
||
type: 'upload',
|
||
admin: {
|
||
description: 'Fallback Open Graph image when a page has none.'
|
||
},
|
||
relationTo: 'media'
|
||
},
|
||
{
|
||
name: 'favicon',
|
||
type: 'upload',
|
||
admin: {
|
||
description: 'Square icon, PNG or SVG, min. 48×48px (Google requires this to show it in search). Rendered via buildIconsMetadata.'
|
||
},
|
||
hooks: {
|
||
// Warn the editor if the favicon is too small / not square for Google.
|
||
beforeValidate: [
|
||
validateFaviconField
|
||
]
|
||
},
|
||
relationTo: 'media'
|
||
}
|
||
];
|
||
|
||
//# sourceMappingURL=general.js.map
|