SuperAPI AI 工具集

sveltia-cms

通用与其它

查看项目

更新于 10-16 09:10

技能介绍

Sveltia CMS 技能用于将 Sveltia CMS 集成到静态站点项目中。当前版本为 @sveltia/cms 0.128.5(2026 年 1 月验证),处于公开测试阶段(预计 2026 年初发布 1.0),被描述为生产可用(已解决前任 270 多个问题)。

适用场景:需要基于 Git 的工作流(内容以 Markdown/YAML/TOML/JSON 形式存于仓库);需要轻量方案(小于 500KB,对比竞品 1.5-2.6MB);从 Decap/Netlify CMS 迁移(只需修改 1 行即可替换);非技术编辑无需 Git 知识即可访问后台。不适用场景:需要实时协作(多用户同时编辑)应使用 Sanity、Contentful 或 TinaCMS;需要可视化页面搭建(拖拽)应使用 Webflow、Builder.io;需要 React 专属可视化编辑应使用 TinaCMS。

主要版本变更与更新:

  • v0.127.0(2025 年 12 月 29 日):slug_length 集合选项被废弃,将于 1.0 移除,改用 slug.maxlength(如 maxlength: 50)。
  • v0.120.0(2025 年 11 月 24 日):隐藏组件支持作者模板标签 {{author-email}}、{{author-login}}、{{author-name}},提交信息模板也支持 {{author-email}}。
  • v0.119.0(2025 年 11 月 16 日):配置文件新增 TOML 格式支持(此前仅 YAML),官方仍推荐 YAML 以便工具支持。
  • v0.118.0(2025 年 11 月 15 日):TypeScript 破坏性变更,SiteConfig 导出重命名为 CmsConfig,需更新类型导入。
  • v0.117.0(2025 年 11 月 14 日):导出 CmsConfig 类型、增强配置校验(集合名、字段类型、关联引用)、改善错误信息。
  • v0.115.0(2025 年 11 月 5 日):支持字段级 media_folder 覆盖(不再局限于集合级)。
  • v0.113.5(2025 年 10 月 27 日):logo_url 废弃,迁移至 logo.src。
  • v0.105.0(2024 年 9 月 15 日):安全破坏性变更,Markdown 组件 sanitize_preview 默认值改为 true(防 XSS)。

配置选项:

  • 全局 slug 选项(v0.128.0+):可设置 encoding、clean_accents、sanitize_replacement、lowercase(默认 true)、maxlength(默认无限制)。
  • 文本文件 raw 格式(v0.126.0+):可编辑无 front matter 的文件(CSV、JSON、YAML、纯文本),必须只有一个名为 body 的字段,组件类型为 code/markdown/richtext/text,不做 front matter 解析。
  • 数字字段字符串编码(v0.125.0+):value_type 支持 int/string 与 float/string,将数字以字符串形式保存。
  • 编辑面板语言通过 URL 查询参数覆盖(v0.126.0+):?_locale=fr。
  • richtext 字段类型别名(v0.124.0+):为 markdown 组件的别名,行为一致,未来计划支持 HTML 输出。

搭建模式(与框架无关):在 public/static 目录创建 admin 目录(Hugo 为 static/admin/,Jekyll 为 admin/,11ty 为 admin/ 并配置 passthrough copy,Astro 与 Next.js 为 public/admin/);创建 admin/index.html 引入 sveltia-cms.js 脚本(需 type="module",建议锁定版本);创建 admin/config.yml 配置 backend(github、repo、branch、base_url)及 collections,通过 http://localhost:<port>/admin/ 访问。

认证:推荐使用 Cloudflare Workers OAuth。步骤为克隆 sveltia-cms-auth 仓库、npm install、npx wrangler deploy 部署 Worker;在 GitHub 开发者设置注册 OAuth App,回调地址填 https://your-worker.workers.dev/callback;用 wrangler secret put 配置 GITHUB_CLIENT_ID 与 GITHUB_CLIENT_SECRET;在 CMS 配置中加 base_url 指向 Worker;测试登录。备选方案为 Vercel 无服务器函数(见 templates/vercel-serverless/)。

本技能还覆盖 10 个常见错误及解决方案:OAuth 认证失败(缺少 base_url 或回调地址错误)、TOML front matter 解析错误(建议改用 YAML)、YAML 解析错误(严格性、智能引号,可用 yamllint/yamlfmt 修复)、内容不列出(格式不匹配或路径错误)、"SVELTIA is not defined"(缺少 type="module")、/admin 返回 404(需框架特定配置)、HEIC 图片无法上传(改为 JPEG 或启用图片优化转 WebP)、datetime 组件格式严格导致静默数据丢失(推荐 picker_utc: true)、以及 GDPR 问题(从 Google CDN 加载字体与图标)。

详细的分段配置说明、代码示例及完整模板请参考原始技能资料。