63 lines
2.7 KiB
TypeScript
63 lines
2.7 KiB
TypeScript
/**
|
||
* 全局配置 Schema(自 Web client settingsSchema 精简移植,供小程序设置页分 Tab 编辑)
|
||
*/
|
||
|
||
export type SettingFieldType = 'text' | 'textarea' | 'number' | 'menu-checkboxes' | 'email' | 'homepage-json'
|
||
|
||
export interface SettingSchemaItem {
|
||
key: string
|
||
label: string
|
||
type: SettingFieldType
|
||
group: 'site' | 'seo' | 'navigation' | 'homepage' | 'pagination' | 'contact'
|
||
default: string
|
||
description: string
|
||
}
|
||
|
||
export const SETTING_GROUPS: { id: SettingSchemaItem['group'], label: string }[] = [
|
||
{ id: 'site', label: '站点信息' },
|
||
{ id: 'seo', label: 'SEO' },
|
||
{ id: 'navigation', label: '导航菜单' },
|
||
{ id: 'homepage', label: '首页内容' },
|
||
{ id: 'pagination', label: '分页设置' },
|
||
{ id: 'contact', label: '联系方式' },
|
||
]
|
||
|
||
export const MENU_OPTIONS = [
|
||
{ key: 'home', label: '首页' },
|
||
{ key: 'blog', label: '思考' },
|
||
{ key: 'columns', label: '专栏' },
|
||
{ key: 'works', label: '作品' },
|
||
{ key: 'videos', label: '视频' },
|
||
{ key: 'snippets', label: '代码' },
|
||
{ key: 'about', label: '关于' },
|
||
{ key: 'services', label: '合作' },
|
||
]
|
||
|
||
export const SETTINGS_SCHEMA: SettingSchemaItem[] = [
|
||
{ key: 'site_title', label: '网站标题', type: 'text', group: 'site', default: '年糕崽崽.Dev', description: '站点名称' },
|
||
{ key: 'site_author', label: '网站作者', type: 'text', group: 'site', default: '', description: '作者名' },
|
||
{ key: 'site_description', label: '网站描述', type: 'textarea', group: 'seo', default: '', description: 'SEO 描述' },
|
||
{ key: 'site_keywords', label: '网站关键词', type: 'textarea', group: 'seo', default: '', description: '逗号分隔' },
|
||
{
|
||
key: 'visible_menus',
|
||
label: '前台菜单',
|
||
type: 'menu-checkboxes',
|
||
group: 'navigation',
|
||
default: '["home","blog","columns","works","videos","snippets","about","services"]',
|
||
description: '控制前台导航显示',
|
||
},
|
||
{
|
||
key: 'homepage_config',
|
||
label: '首页配置 JSON',
|
||
type: 'homepage-json',
|
||
group: 'homepage',
|
||
default: '{}',
|
||
description: 'Hero / Bento 等首页结构,小程序端用 JSON 编辑',
|
||
},
|
||
{ key: 'posts_per_page', label: '文章每页', type: 'number', group: 'pagination', default: '10', description: '' },
|
||
{ key: 'works_per_page', label: '作品每页', type: 'number', group: 'pagination', default: '12', description: '' },
|
||
{ key: 'snippets_per_page', label: '代码每页', type: 'number', group: 'pagination', default: '12', description: '' },
|
||
{ key: 'footer_icp', label: 'ICP 备案号', type: 'text', group: 'contact', default: '', description: '' },
|
||
{ key: 'contact_email', label: '联系邮箱', type: 'email', group: 'contact', default: '', description: '' },
|
||
]
|