mcpField
S
sveltia-cms

sveltia-cms

github.com/jezweb开发1.1k302 次安装3 周前更新
代码仓库

关于 sveltia-cms

用于将 Sveltia CMS 集成到静态网站项目的技能,涵盖通用设置、配置、身份验证、迁移和故障排查,适合管理基于仓库的内容。

主要功能

  1. 01静态网站 CMS 集成指南
  2. 02YAML 和 TOML 配置
  3. 03原始文本文件编辑
  4. 04GitHub OAuth 设置指导
  5. 05配置与错误排查

适用场景

  1. 01为静态网站项目添加 CMS
  2. 02从 Decap 或 Netlify CMS 迁移
  3. 03编辑 JSON、YAML、CSV 或纯文本文件
  4. 04设置基于 GitHub 的内容编辑

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jezweb/claude-skills --skill sveltia-cms

安装后在 Claude Code 中输入/sveltia-cms确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
.claude-plugin/
plugin.json
references/
migration-from-decap.md
scripts/
check-versions.sh
init-sveltia.sh
templates/11ty/
config.yml
index.html
templates/cloudflare-workers/
setup-guide.md
templates/collections/
blog-posts.yml
docs-pages.yml
landing-pages.yml
templates/hugo/
config.yml
index.html
templates/jekyll/
config.yml
index.html

详细介绍

Sveltia CMS 技能

将 Sveltia CMS 集成到静态网站项目中的完整技能。


当前版本

  • @sveltia/cms:0.128.5(已于 2026 年 1 月验证)
  • 状态:公开测试版(预计 2026 年初发布 v1.0)
  • 成熟度:可用于生产环境(已解决前身产品遗留的 270 多个问题)

何时使用此技能

✅ 适合使用 Sveltia CMS 的情况:
  • 需要基于 Git 的工作流(内容以 Markdown/YAML/TOML/JSON 格式存储在代码库中)
  • 需要轻量级方案(小于 500 KB,而竞品为 1.5-2.6 MB)
  • 从 Decap/Netlify CMS 迁移(可直接替换,只需修改 1 行)
  • 非技术编辑者需要在不懂 Git 的情况下使用
❌ 不适合使用 Sveltia CMS 的情况:
  • 需要实时协作(多位用户同时编辑)——改用 Sanity、Contentful 或 TinaCMS
  • 需要可视化页面搭建(拖放式)——改用 Webflow 或 Builder.io
  • 需要 React 专用的可视化编辑——改用 TinaCMS

重大变更与更新(v0.105.0+)

v0.127.0(2025 年 12 月 29 日)——弃用 slug_length

弃用:slug_length 集合选项已弃用,将在 v1.0 中移除。

迁移:

# ❌ Deprecated (pre-v0.127.0)
collections:
  - name: posts
    slug_length: 50

# ✅ New (v0.127.0+)
slug:
  maxlength: 50

时间安排:将在 Sveltia CMS 1.0 中移除(预计于 2026 年初发布)。

来源:版本发布 v0.127.0


v0.120.0(2025 年 11 月 24 日)——作者模板标签

新功能:隐藏组件现在支持作者模板标签:

  • {{author-email}} - 已登录用户的电子邮件地址
  • {{author-login}} - 已登录用户的登录名
  • {{author-name}} - 已登录用户的显示名称

用法:

fields:
  - label: Author Email
    name: author_email
    widget: hidden
    default: '{{author-email}}'

提交消息模板也支持 {{author-email}} 标签。


v0.119.0(2025 年 11 月 16 日)——支持 TOML 配置

新功能:配置文件现在可以使用 TOML 格式编写(此前仅支持 YAML)。

迁移:

# admin/config.toml (NEW)
[backend]
name = "github"
repo = "owner/repo"
branch = "main"

media_folder = "static/images/uploads"
public_folder = "/images/uploads"

建议:仍推荐使用 YAML,以获得更好的工具支持。


v0.118.0(2025 年 11 月 15 日)——TypeScript 重大变更

重大变更:将 SiteConfig 导出项重命名为 CmsConfig,以兼容 Netlify/Decap CMS。

迁移:

// ❌ Old (v0.117.x)
import type { SiteConfig } from '@sveltia/cms';

// ✅ New (v0.118.0+)
import type { CmsConfig } from '@sveltia/cms';

const config: CmsConfig = {
  backend: { name: 'github', repo: 'owner/repo' },
  collections: [/* ... */],
};

影响:仅影响 TypeScript 用户。类型导入方式发生重大变更。


v0.117.0(2025 年 11 月 14 日)——增强验证

新功能:

  • 导出 CmsConfig 类型,支持直接从 TypeScript 导入
  • 增强对集合名称、字段类型和关系引用的配置验证
  • 改进无效配置的错误消息

v0.115.0(2025 年 11 月 5 日)——字段专属媒体文件夹

新功能:支持在字段级别(而不仅限于集合级别)覆盖 media_folder。

用法:

collections:
  - name: posts
    label: Blog Posts
    folder: content/posts
    media_folder: static/images/posts  # Collection-level default
    fields:
      - label: Featured Image
        name: image
        widget: image
        media_folder: static/images/featured  # ← Field-level override
        public_folder: /images/featured

      - label: Author Avatar
        name: avatar
        widget: image
        media_folder: static/images/avatars  # ← Another override
        public_folder: /images/avatars

使用场景:在同一集合中为不同类型的图像指定不同的媒体文件夹。


v0.113.5(2025 年 10 月 27 日)——弃用 Logo 配置项

弃用:logo_url 选项现已弃用。请迁移至 logo.src。

迁移:

# ❌ Deprecated
logo_url: https://yourdomain.com/logo.svg

# ✅ New (v0.113.5+)
logo:
  src: https://yourdomain.com/logo.svg

v0.105.0(2024 年 9 月 15 日)——安全相关重大变更

重大变更:Markdown 组件的 sanitize_preview 默认值已更改为 true(防止 XSS)。

影响:

  • v0.105.0 之前:sanitize_preview: false(兼容 Netlify/Decap CMS,但容易受到 XSS 攻击)
  • v0.105.0 之后:sanitize_preview: true(默认安全)

迁移:

collections:
  - name: posts
    fields:
      - label: Body
        name: body
        widget: markdown
        sanitize_preview: false  # ← Add ONLY if you trust all CMS users

建议:保留默认值(true),除非禁用此选项能修复预览问题,且你完全信任所有 CMS 用户。


配置选项

全局 Slug 选项(v0.128.0+)

全局配置 slug 生成行为:

slug:
  encoding: unicode-normalized
  clean_accents: false
  sanitize_replacement: '-'
  lowercase: true   # Default: convert to lowercase (v0.128.0+)
  maxlength: 50     # Default: unlimited (v0.127.0+)

lowercase(v0.128.0+):设为 false 可保留 slug 中的原始大小写(例如,“MyBlogPost”而非“myblogpost”)。

使用场景:大小写敏感的混合大小写 URL 或文件名。

来源:版本发布 v0.128.0,GitHub 问题 #594


文本文件的 Raw 格式(v0.126.0+)

新增的 raw 格式允许编辑没有 front matter 的文件(CSV、JSON、YAML、纯文本)。必须只有一个 body 字段,widget 类型为:code、markdown、richtext 或 text。

使用场景:

  • 编辑配置文件(JSON、YAML)
  • 管理 CSV 数据
  • 编辑纯文本文件

配置:

collections:
  - name: config
    label: Configuration Files
    files:
      - label: Site Config
        name: site_config
        file: config.json
        format: raw  # ← NEW format type
        fields:
          - label: Config
            name: body
            widget: code
            default_language: json

限制:

  • 只允许一个字段(必须命名为 body)
  • Widget 必须为:code、markdown、richtext 或 text
  • 不解析 front matter

来源:Release v0.126.0


数字字段的字符串编码(v0.125.0+)

数字字段新增 value_type 选项,支持 int/string 和 float/string,可将数字保存为字符串,而非 front matter 中的数字。

使用场景:某些静态网站生成器或 schema 要求将数值存储为字符串(例如,age: "25" 而不是 age: 25)。

配置:

fields:
  - label: Age
    name: age
    widget: number
    value_type: int/string  # Saves as "25" not 25

  - label: Price
    name: price
    widget: number
    value_type: float/string  # Saves as "19.99" not 19.99

来源:Release v0.125.0、GitHub Issue #574


通过 URL 查询参数设置编辑器面板语言(v0.126.0+)

通过 URL 查询参数 ?_locale=fr 覆盖编辑器语言,以获取特定语言的编辑链接。

使用场景:为译者或内容编辑者生成特定语言的直接编辑链接。

示例:

https://yourdomain.com/admin/#/collections/posts/entries/my-post?_locale=fr

来源:Release v0.126.0、GitHub Issue #585


Richtext 字段类型别名(v0.124.0+)

新增 richtext,作为 markdown widget 的别名,以与 Decap CMS 术语保持一致。两者功能完全相同。

配置:

fields:
  - label: Body
    name: body
    widget: richtext  # ← NEW alias for markdown

未来计划:计划为 richtext 字段类型支持 HTML 输出。

来源:Release v0.124.0


设置模式(与框架无关)

所有框架都遵循相同的模式:

  1. 在 public/static 文件夹中创建 admin 目录:

    • Hugo:static/admin/
    • Jekyll:admin/
    • 11ty:admin/(使用 passthrough copy)
    • Astro:public/admin/
    • Next.js:public/admin/
  2. 创建 admin/index.html:

    <!doctype html>
    <html lang="en">
      <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Content Manager</title>
      </head>
      <body>
        <script src="https://unpkg.com/@sveltia/[email protected]/dist/sveltia-cms.js" type="module"></script>
      </body>
    </html>
    
  3. 创建 admin/config.yml:

    backend:
      name: github
      repo: owner/repo
      branch: main
      base_url: https://your-worker.workers.dev  # OAuth proxy (required)
    
    media_folder: static/images/uploads  # Framework-specific path
    public_folder: /images/uploads
    
    collections:
      - name: posts
        label: Blog Posts
        folder: content/posts
        create: true
        fields:
          - { label: 'Title', name: 'title', widget: 'string' }
          - { label: 'Date', name: 'date', widget: 'datetime' }
          - { label: 'Body', name: 'body', widget: 'markdown' }
    
  4. 访问 admin: http://localhost:<port>/admin/

框架特定详情:完整示例请参阅 templates/ 目录。


身份验证:Cloudflare Workers OAuth(推荐)

选择 Cloudflare Workers 的原因:速度最快,提供免费套餐,适用于任何部署平台。

步骤:

  1. 部署 Worker:

    git clone https://github.com/sveltia/sveltia-cms-auth
    cd sveltia-cms-auth
    npm install
    npx wrangler deploy
    
  2. 在 GitHub 上注册 OAuth 应用:

  3. 配置 Worker 环境变量:

    npx wrangler secret put GITHUB_CLIENT_ID
    # Paste your Client ID
    
    npx wrangler secret put GITHUB_CLIENT_SECRET
    # Paste your Client Secret
    
  4. 更新 CMS 配置:

    backend:
      name: github
      repo: owner/repo
      branch: main
      base_url: https://your-worker.workers.dev  # ← Add this line
    
  5. 测试身份验证:

    • 打开 /admin/
    • 点击 "Login with GitHub"
    • 应跳转至 GitHub → 授权 → 返回 CMS

替代方案:Vercel 无服务器函数——请参阅 templates/vercel-serverless/


常见错误与解决方案

本技能可避免设置 Sveltia CMS 时遇到的 10 个常见错误。

1. ❌ OAuth 身份验证失败

错误消息:

  • "Error: Failed to authenticate"
  • 重定向至 https://api.netlify.com/auth,而非 GitHub 登录页面

症状:

  • 登录按钮无响应
  • 身份验证弹窗立即关闭

原因:

  • 后端配置中缺少 base_url
  • OAuth 代理 URL 不正确
  • GitHub OAuth 回调 URL 错误

解决方案:

步骤 1:确认 config.yml 中有 base_url:

backend:
  name: github
  repo: owner/repo
  branch: main
  base_url: https://your-worker.workers.dev  # ← Must be present

步骤 2:检查 GitHub OAuth 应用的回调地址:

  • 应为:https://your-worker.workers.dev/callback
  • 不应为:https://yourdomain.com/callback

步骤 3:直接测试 Worker:

curl https://your-worker.workers.dev/health
# Should return: {"status": "ok"}

2. ❌ TOML 前置元数据错误

错误消息:

  • “解析错误:无效的 TOML”
  • 文件缺少 +++ 分隔符

症状:

  • CMS 创建的新文件无法通过 Hugo 解析
  • 内容出现在正文分隔符上方

原因:

  • Sveltia 在测试版中的 TOML 生成存在问题
  • 同一内容集合中混用了 TOML 和 YAML

解决方案:

建议使用 YAML 代替 TOML:

collections:
  - name: posts
    folder: content/posts
    format: yaml  # or md (Markdown with YAML frontmatter)
    # NOT: format: toml

如果必须使用 TOML:

  1. CMS 保存后手动修复分隔符
  2. 使用 pre-commit 钩子验证 TOML
  3. 等待测试版修复(关注 GitHub 问题)

3. ❌ YAML 解析错误

错误消息:

  • “YAML 解析错误:无效的 YAML”
  • “错误:重复的键 ‘field_name’”

症状:

  • CMS 无法加载现有文章
  • CMS 显示空字段

原因:

  • Sveltia 对 YAML 格式的要求比 Hugo/Jekyll 更严格
  • 缩进错误或使用了智能引号

解决方案:

步骤 1:验证 YAML:

pip install yamllint
find content -name "*.md" -exec yamllint {} \;

步骤 2:常见修复方法:

问题:智能引号

# ❌ Bad - smart quotes from copy-paste
title: "Hello World"  # Curly quotes

# ✅ Good - straight quotes
title: "Hello World"  # Straight quotes

步骤 3:使用 yamlfmt 自动修复:

go install github.com/google/yamlfmt/cmd/yamlfmt@latest
find content -name "*.md" -exec yamlfmt {} \;

4. ❌ CMS 中未列出内容

错误消息:

  • “未找到条目”
  • “加载条目失败”

症状:

  • 管理页面已加载,但未显示内容
  • 文件存在于代码库中,但 CMS 无法识别

原因:

  • 格式不匹配(配置要求 TOML,文件却是 YAML)
  • 文件夹路径错误

解决方案:

步骤 1:验证文件夹路径:

# Config says:
collections:
  - name: posts
    folder: content/posts  # Expects files here

# Check actual location:
ls -la content/posts  # Files must exist here

步骤 2:使格式与实际文件相匹配:

# If files are: content/posts/hello.md with YAML frontmatter
collections:
  - name: posts
    folder: content/posts
    format: yaml  # or md (same as yaml for .md files)

5. ❌ “SVELTIA is not defined” 错误

错误消息:

  • 控制台错误:Uncaught ReferenceError: SVELTIA is not defined

症状:

  • 管理页面显示白屏

原因:

  • 缺少 type="module" 属性

解决方案:

使用正确的 script 标签:


<script src="https://unpkg.com/@sveltia/cms/dist/sveltia-cms.js" type="module"></script>


<script src="https://unpkg.com/@sveltia/cms/dist/sveltia-cms.js"></script>

固定版本(推荐):

<script src="https://unpkg.com/@sveltia/[email protected]/dist/sveltia-cms.js" type="module"></script>

6. ❌ /admin 返回 404

错误消息:

  • 访问 /admin/ 时出现“404 Not Found”

症状:

  • 本地运行正常,但生产环境无法使用

原因:

  • 管理目录未放在适用于该框架的正确位置

解决方案:

针对不同框架的修复方法:

Hugo:static/ 中的文件会自动复制

Jekyll:添加到 _config.yml:

include:
  - admin

11ty:添加到 .eleventy.js:

module.exports = function(eleventyConfig) {
  eleventyConfig.addPassthroughCopy('admin');
};

Astro:public/ 中的文件会自动复制


7. ❌ 图片无法上传(HEIC 格式)

错误消息:

  • “不支持的文件格式”

症状:

  • 无法上传 iPhone 拍摄的照片

原因:

  • 浏览器不支持 HEIC 格式

解决方案:

在 iPhone 上:

  • 设置 > 相机 > 格式 > 兼容性最佳
  • 这样保存的照片将使用 JPEG 格式,而非 HEIC

或者启用图片优化:

media_libraries:
  default:
    config:
      max_file_size: 10485760  # 10 MB
      transformations:
        raster_image:
          format: webp  # Auto-converts to WebP
          quality: 85

8. ❌ 日期时间小组件的格式限制

错误消息:

  • 数据静默丢失(未显示错误)
  • CMS 中的日期字段显示为空白

症状:

  • 编辑时,带有现有日期的文章显示为空白
  • 保存后,日期会被空白值覆盖
  • Hugo 将文章标记为“未来”并跳过构建

原因:

  • 默认日期时间小组件输出的时间戳不带时区后缀
  • 指定 format 后,Sveltia 会变得严格——格式不同的现有条目将显示为空白
  • 缺少时区时,Hugo 会推断为 UTC,从而导致时区问题

⚠️ 重要:格式严格性警告(v0.124.1+)

指定 format 选项后,Sveltia 会变得严格:

  • 格式不同的现有条目将显示为空白
  • 保存时会用空白值覆盖原值(数据会静默丢失)
  • 不会显示错误消息

解决方案:

选项 1:使用 picker_utc(推荐)

fields:
  - label: Date
    name: date
    widget: datetime
    picker_utc: true  # Most flexible - outputs with timezone

选项 2:指定带时区的格式(有风险——请参阅上方警告)

fields:
  - label: Date
    name: date
    widget: datetime
    format: "YYYY-MM-DDTHH:mm:ss.SSSZ"  # Only if ALL existing dates match this format

选项 3:配置 Hugo,使其接受缺少时区的日期

# config.toml
[frontmatter]
  date = [":default", ":fileModTime"]

预防措施:

  1. 如果日期格式混杂,请勿指定 format
  2. 添加 format 前,先统一所有日期的格式
  3. 改用 picker_utc: true(更灵活)

来源:GitHub Issue #565,已在 v0.126.0 中修复(改进了日期解析器,但格式严格性仍然存在)


9. ❌ GDPR 违规:Google Fonts CDN

错误消息:

  • 未显示错误(隐私合规问题)

症状:

  • 注重隐私的网站无法使用 Sveltia
  • 欧盟公共部门无法采用
  • 不符合 GDPR

原因:

  • Sveltia 未经用户同意,便从 Google CDN 加载 Google Fonts 和 Material Symbols
  • Google 会跟踪字体使用情况并收集 IP 地址
  • 违反欧盟数据保护法

⚠️ 影响:阻碍欧盟公共部门和注重隐私的网站使用

解决方案(Vite 插件——推荐):

// vite.config.ts
import { defineConfig, type Plugin } from 'vite'

function ensureGDPRCompliantFonts(): Plugin {
  const fontsURLRegex = /fonts\.googleapis\.com\/css2/g
  const replacement = 'fonts.bunny.net/css'
  return {
    name: 'gdpr-compliant-fonts',
    enforce: 'post',
    transform(code) {
      if (fontsURLRegex.test(code)) {
        return code.replaceAll(fontsURLRegex, replacement)
      }
    },
  }
}

export default defineConfig({
  plugins: [ensureGDPRCompliantFonts()],
})

替代方案:

选项 2:Bunny Fonts(Google Fonts 的 1:1 替代品)

  • 使用 https://fonts.bunny.net 替代 fonts.googleapis.com
  • 位于欧盟,符合 GDPR
  • API 与 Google Fonts 相同

选项 3:自托管字体

  • 使用 @fontsource npm 包
  • 将字体与应用程序打包
  • 不会发出外部请求

维护者回应:

  • 已确认问题
  • 计划添加系统字体选项(v1.0 发布后)
  • Sveltia 本身不会收集数据(唯一的问题是字体)

来源:GitHub Issue #443


10. ❌ CORS / COOP 策略错误

错误消息:

  • “Authentication Aborted”
  • “Cross-Origin-Opener-Policy blocked”

症状:

  • OAuth 弹出窗口打开后立即关闭

原因:

  • 严格的 Cross-Origin-Opener-Policy 标头阻止了 OAuth

解决方案:

Cloudflare Pages(_headers 文件):

/*
  Cross-Origin-Opener-Policy: same-origin-allow-popups
  # NOT: same-origin (this breaks OAuth)

Netlify(_headers 文件):

/*
  Cross-Origin-Opener-Policy: same-origin-allow-popups

Vercel(vercel.json):

{
  "headers": [
    {
      "source": "/(.*)",
      "headers": [
        {
          "key": "Cross-Origin-Opener-Policy",
          "value": "same-origin-allow-popups"
        }
      ]
    }
  ]
}

已修复的问题(历史参考)

这些问题存在于早期版本中,但已修复。此处记录供参考。

✅ 包含括号的路径会导致条目加载失败(已在 v0.128.1 中修复)

问题:当 path 选项包含括号 () 时,Sveltia CMS 无法加载现有条目。这会影响使用 app/(content)/(writing)/ 等路由组的 Next.js/Nextra 用户。

症状(v0.128.1 之前):

  • 可以创建新条目
  • 加载/列出已有条目时会无提示地失败
  • 即使文件存在,CMS 仍显示“No entries found”

失败示例:

collections:
  - name: pages
    folder: app/(pages)
    path: "{{slug}}/page"  # ← Failed to load existing entries
    extension: mdx

状态:已在 v0.128.1 中修复(2026 年 1 月 13 日)

来源:GitHub Issue #596


✅ 根目录集合会导致 GitHub 后端失效(已在 v0.125.0 中修复)

问题:通过 GitHub 后端创建新条目时,设置了 folder: ""、folder: "." 或 folder: "/" 的集合会失败。GraphQL 查询错误地构造了以 / 开头的路径(绝对路径),而不是相对路径。

症状(v0.125.0 之前):

  • 通过浏览器 File API 在本地运行正常
  • 使用 GitHub 后端时失败(GraphQL 错误)
  • 前导斜杠导致 GraphQL mutation 失败

失败示例:

collections:
  - name: root-pages
    folder: ""  # or "." or "/"
    # ← Broke when creating entries via GitHub backend

使用场景:VitePress 和其他将内容存储在仓库根目录的框架。

状态:已在 v0.125.0 中修复(2025 年 12 月 20 日)

来源:GitHub Issue #580


从 Decap CMS 迁移

Sveltia CMS 是 Decap CMS 的即插即用替代品。

步骤 1:更新 script 标签(只需更改 1 行):


<script src="https://unpkg.com/decap-cms@^3.0.0/dist/decap-cms.js"></script>


<script src="https://unpkg.com/@sveltia/[email protected]/dist/sveltia-cms.js" type="module"></script>

步骤 2:保留现有的 config.yml(无需更改)

步骤 3:在本地测试(验证登录、内容列表、编辑和保存)

就这么简单! 您的内容、集合和工作流都保持不变。

不支持:

  • Git Gateway 后端(出于性能原因)
  • Azure 后端(之后可能添加)

变通方案:改用 Cloudflare Workers 或 Vercel OAuth 代理。


打包资源

模板
  • hugo/ - 完整的 Hugo 博客配置
  • jekyll/ - Jekyll 网站配置
  • 11ty/ - Eleventy 博客配置
  • astro/ - Astro 内容集合
  • cloudflare-workers/ - OAuth 代理实现
  • vercel-serverless/ - Vercel 身份验证函数
  • collections/ - 预构建的集合模式
参考资料
  • common-errors.md - 扩展错误排查指南
  • migration-from-decap.md - 完整迁移指南
  • cloudflare-auth-setup.md - OAuth 分步设置指南
  • config-reference.md - 完整的 config.yml 文档
脚本
  • init-sveltia.sh - 新项目自动化设置
  • deploy-cf-auth.sh - 部署 Cloudflare Workers OAuth
官方文档

注意:官方文档网站正在积极开发中。对于部分主题,GitHub README 仍是实用的备用资料。


Token 效率

预计节省:65-70%(约节省 6,300 个 Token)

不使用 Skill(约 9,500 个 Token):

  • 框架设置试错:2,500 个 Token
  • OAuth 配置尝试:2,500 个 Token
  • 错误排查:2,500 个 Token
  • 部署配置:2,000 个 Token

使用 Skill(约 3,200 个 Token):

  • 加载 Skill(SKILL.md):2,000 个 Token
  • 选择模板:400 个 Token
  • 项目特定调整:800 个 Token

可预防的错误

此 Skill 可预防 10 种常见错误(预防率 100%):

  1. ✅ OAuth 身份验证失败
  2. ✅ TOML front matter 生成错误
  3. ✅ YAML 解析错误(严格验证)
  4. ✅ 内容未在 CMS 中列出
  5. ✅ “SVELTIA is not defined”错误
  6. ✅ /admin 页面出现 404
  7. ✅ 图片上传失败(HEIC 格式)
  8. ✅ Datetime 小部件格式严格性/时区问题
  9. ✅ 违反 GDPR(Google Fonts CDN)
  10. ✅ CORS/COOP 策略错误

最后更新:2026-01-21 Skill 版本:2.1.0 Sveltia CMS 版本:0.128.5(Beta) 状态:已可用于生产环境,预计 2026 年初发布 v1.0 GA 变更:新增 6 个配置选项(slug 小写、raw 格式、数字字符串编码、locale URL 参数、richtext 别名、支持 Gemini 2.5 Flash-Lite),更新 datetime 错误并加入格式严格性警告,新增 GDPR Google Fonts 解决方法,记录 2 个已修复的历史问题,将 slug_length 选项标记为弃用

评论

支持 Markdown