const fs = require('fs'); let c = fs.readFileSync('settings.yaml', 'utf8'); const block = ` # ============ 首页模块(拖拽排序)============ - group: homepage label: 首页 formSchema: - $formkit: array name: modules label: 首页模块 help: 拖拽调整模块顺序,每个模块设置类型后填写对应字段 sortable: true addLabel: 添加模块 value: - type: hero-carousel title: Hero hc_title: "源蝶工作室 文档中心" hc_subtitle: "源蝶工作室官方文档站,提供产品使用指南、开发者文档与解决方案。" hc_primary_text: 快速开始 hc_primary_url: "/categories/quick-start" hc_primary_color: "" hc_secondary_text: 浏览文档 hc_secondary_url: "/categories" hc_install_options: - label: Docker url: "/categories/install-docker" - label: 1Panel url: "/categories/install-1panel" - label: 宝塔面板 url: "/categories/install-baota" - label: 更多方式 url: "/categories/install" hc_carousel_enabled: false hc_carousel_speed: 5000 hc_carousel_show_dots: true hc_carousel_images: [] - type: quick-start title: 快速开始 qs_layout: default qs_more_text: 查看使用指南 qs_more_url: "/categories/use-guide" qs_cards: - title: 初始化站点 subtitle: 安装之后 description: "完成首次访问、创建管理员账号和基础设置。" url: "/categories/init" primary: true - title: 发布第一篇文章 subtitle: 熟悉内容编辑 description: "熟悉内容编辑和发布流程。" url: "/categories/first-post" - title: 探索应用市场 subtitle: 主题与插件 description: "发现丰富的主题、插件以扩展站点能力。" url: "/categories/marketplace" itemLabels: - type: text label: $value.title children: - $formkit: select name: type label: 模块类型 value: hero-carousel options: - label: 轮播图模块(Hero) value: hero-carousel - label: 快速开始模块 value: quick-start - label: 卡片模块 value: cards - label: Docsme 适配 value: plugin-docsme - label: MiniDocs 适配 value: plugin-minidocs - $formkit: text name: title label: 模块标题 value: "" - $formkit: text name: hc_title label: "Hero 主标题(仅 hero-carousel)" value: "" - $formkit: textarea name: hc_subtitle label: "Hero 副标题" value: "" - $formkit: text name: hc_primary_text label: 主按钮文字 value: 快速开始 - $formkit: text name: hc_primary_url label: 主按钮链接 value: "" - $formkit: color name: hc_primary_color label: 主按钮颜色(留空用主题色) value: "" - $formkit: text name: hc_secondary_text label: 次按钮文字 value: 浏览文档 - $formkit: text name: hc_secondary_url label: 次按钮链接 value: "" - $formkit: array name: hc_install_options label: 安装方式标签 value: [] itemLabels: - type: text label: $value.label children: - $formkit: text name: label label: 名称 value: "" - $formkit: text name: url label: 链接 value: "" - $formkit: switch name: hc_carousel_enabled label: 启用轮播图 value: false - $formkit: number name: hc_carousel_speed label: 轮播速度(毫秒) value: 5000 - $formkit: switch name: hc_carousel_show_dots label: 显示导航点 value: true - $formkit: array name: hc_carousel_images label: 轮播图图片组 value: [] itemLabels: - type: attachment label: $value.src children: - $formkit: attachment name: src label: 图片 value: "" - $formkit: text name: alt label: 描述 value: "" - $formkit: text name: href label: 跳转链接 value: "" - $formkit: select name: qs_layout label: "快速开始布局(仅 quick-start)" value: default options: - label: 默认三项 value: default - label: 彩色三项 value: colorful - label: 标题列表 value: titled-list - $formkit: text name: qs_more_text label: 标题右侧按钮文字 value: 查看使用指南 - $formkit: text name: qs_more_url label: 标题右侧按钮链接 value: "" - $formkit: array name: qs_cards label: 快速开始卡片 value: [] itemLabels: - type: text label: $value.title children: - $formkit: text name: title label: 标题 value: "" - $formkit: text name: subtitle label: 副标题 value: "" - $formkit: textarea name: description label: 描述 value: "" - $formkit: text name: url label: 链接 value: "" - $formkit: switch name: primary label: 设为主推卡片 value: false - $formkit: select name: cards_layout label: "卡片布局(仅 cards)" value: type1 options: - label: 样式1(背景+标题+描述) value: type1 - label: 样式2(图标+标题+列表) value: type2 - label: 样式3(简洁图标+标题) value: type3 - $formkit: array name: cards_items label: 卡片项 value: [] itemLabels: - type: text label: $value.title children: - $formkit: attachment name: cover label: 封面图 value: "" - $formkit: text name: title label: 标题 value: "" - $formkit: textarea name: description label: 描述 value: "" - $formkit: text name: url label: 链接 value: "" - $formkit: switch name: show_description label: 显示描述 value: true - $formkit: select name: plugin_layout label: 插件模块布局 value: cards options: - label: 卡片网格 value: cards - label: 卡片+文档列表 value: cards-list - label: 简洁卡片 value: simple - $formkit: text name: plugin_collection label: 插件集合标识 value: "" `; c = c.replace(' # ============ 首页设置 ============\n - group: home', block + ' # ============ 首页设置(兼容旧版)============\n - group: home'); if (c.indexOf('group: homepage') === -1) { console.log('未匹配'); process.exit(1); } fs.writeFileSync('settings.yaml', c); const Y = require('./node_modules/.pnpm/yaml@2.9.0/node_modules/yaml'); const s = Y.parse(fs.readFileSync('settings.yaml','utf8')); console.log('✓ 语法正确,分组:', s.spec.forms.map(x=>x.group).join(', '));