Community编程与开发github.com

arminazimi/slipway-content

在Slipway站点上编写或编辑页面、文档页面或文章,或将其翻译为另一种语言,使其通过Front Matter模式检查和slipway doctor验证。

slipway-content 是什么?

该技能专为Slipway静态网站设计,指导AI代理或开发者创建、编辑和翻译Markdown内容,确保其符合严格的Front Matter模式和站点结构要求。它支持Jekyll/GitHub Pages,涵盖`page`、`doc`、`post`、`home`四种布局,并强调内容的国际化(多语言翻译)和本地化细节(如波斯语排版)。技能工作流程包括:克隆主题仓库获取基线检查结果;根据布局选择文件并正确设置Front Matter键(如`title`、`description`、`permalink`、`lang`);仅使用纯Markdown,禁止任何Liquid模板语法;通过`validate.mjs`、`jekyll build`和`slipway doctor`进行三级验证。此外,它提供了明确的“Never”规则,防止破坏已发布内容或主题布局,非常适合需要严格内容治理和高质量多语言支持的Slipway网站。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/arminazimi/slipway/tree/HEAD/skills/slipway-content

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

预览

来自技能 README

构建时间图表
slipway-content preview

文档

在 Slipway 站点上编写页面和文章

一个 Slipway 站点是由 Markdown 文件和一段 Front Matter 构成的。布局(Layout)负责其余工作:标题、页面标题、目录、日期和语言切换器。你需要按照模式(Schema)填写 Front Matter,并用纯 Markdown 撰写正文。如果站点包含 AGENTS.md,请优先阅读它;当其内容与本技能冲突时,以 AGENTS.md 为准。

1. 获取基线

将主题的检查文件克隆到站点文件夹之外的一个目录:

git clone --depth 1 https://github.com/arminazimi/slipway "$HOME/.slipway"
cd "$HOME/.slipway" && npm ci && cd -

在进行任何更改之前运行第6节,并保存输出。编辑完成时,不应引入任何新问题或发现。

2. 选择布局和文件

你要编写的内容layout文件
普通页面(关于、联系)page<文件夹>/<页面>.md,访问地址为 /<文件夹>/<页面>.html
带有侧边栏的文档页面doc任意文件夹,通常为 docs/<页面>.md,需要设置 permalink
带日期的文章post_posts/<日期>-<slug>.md,其中 <日期> 格式为 YYYY-MM-DD
首页homeindex.md

文章的文件名即其日期和地址;要更改标题,请设置 title,切勿重命名文件。doc 页面仅在 _data/navigation.yml 中的 docs 列表链接其 permalink 时才会显示在侧边栏中;请按阅读顺序在其中添加。不要创建 search.json、feed.xml、sitemap.xml、404.md、tags.md 或 archive.md:它们已经存在并预设了 Front Matter 且故意不含正文。

关于草稿、定时文章和编辑:草稿放在 _drafts/<slug>.md 中,文件名不含日期——GitHub Pages 永远不会构建 _drafts/,jekyll serve --drafts 会以今天日期预览它。定时文章是一个普通的文章,其 YYYY-MM-DD 文件名是未来的日期:GitHub Pages 会在该日期自动发布它,jekyll serve --future 可以提前预览,并在页面上标记为“定时”。对已发布文章进行实质性编辑后,添加 updated: YYYY-MM-DD(格式与文件名中的日期相同):文章会显示“编辑于”,并且 feed、站点地图和结构化数据都会将其报告为最后修改日期。

3. 按照模式填充 Front Matter

每个键、其类型及其允许的值都在 reference/front-matter.md 中,该文件是根据检查所使用的模式自动生成的。只使用该文件中为你的布局列出的键。

  • title 是必需的,不能为空。布局将其打印为页面标题。
  • 添加 description:一个句子,用于搜索结果和链接预览。
  • tags 和 categories 是列表:tags: [release, notes]。
  • 文章中的 author 是 _data/authors.yml 中的一个键,或者是一个键的列表(用于多位作者):author: [ada, sam]。如果键在该文件中缺失,请先在该文件中添加作者。
  • 文章中的 series 将其放入一个系列:在每个部分中使用完全相同的名称,series: Writing for the web。各部分按日期排序。
  • permalink 以 / 开头。对于默认语言的文章,可以省略它;站点的配置会设置地址。
  • 对于非站点默认语言(_config.yml 中的 lang)的页面,以及每个有翻译的页面,请设置 lang。
  • 仅适用于 home:cta_text 和 cta_url 必须同时出现,或者都不出现。variant 选择外观:editorial(默认)、landing(需要添加 features,每个包含 title)、blog 或 docs(从 _data/navigation.yml 的 docs 列表中生成卡片)。
  • 如果值包含 : 或以 YAML 特殊处理的字符开头([、{、*、&、!、#、|、>、@ 或反引号),请用引号括起来。

4. 编写正文

  • 仅使用纯 Markdown。永远不要使用 Liquid:不要使用 {{ }} 和 {% %},即使在代码块中也不行。布局已经添加了 Liquid 的功能。
  • 章节从 ## 开始。h1 是标题;正文中一个 # 标题会创建第二个标题。
  • 保持标题级别有序(##,然后是 ###),以便目录和“使用你的代理编辑”按钮能够找到每个章节。
  • 链接到其他页面时使用地址,而不是文件:[安装](/docs/install/),[关于](/about.html)。
  • 图片位于 assets/ 中;每张图片都要有替代文本:![构建时间图表](/assets/build-times.png)。
  • 要使页面更宽,请在 Front Matter 中设置 width: narrow、wide 或 full。若只想加宽一个块(表格、图片、图形),请将其包裹在带有 sl-wide 类(宽度可达 64rem)或 sl-bleed 类(边缘到边缘)的 HTML 元素中:<figure class="sl-wide"><img src="/assets/map.png" alt="路线地图"></figure>。doc 布局将章节保持在其列中。
  • 为代码块指定语言(```yaml),以便在从右到左的页面中实现高亮和从左到右的读取。

通过模式检查的示例:

每个文件中的第一个注释指出了文件应放置的位置。

5. 添加翻译

  1. 该语言必须存在于 _config.yml 的 slipway.languages 中,包含 code、name 和 prefix(如 /fa)。如果缺失,在添加语言之前请询问:它会改变每个页面的切换器。
  2. 如果原文没有 translation_key,请为它添加一个(如 plain-markdown),如果它还没有 lang,也请添加(lang: en):切换器通过两者来查找翻译。为翻译内容设置相同的 translation_key。这将两者在语言切换器和站点地图中链接起来。
  3. 将 lang 设置为语言代码,将 permalink 设置为前缀下的地址:/fa/plain-markdown/。
  4. 文件放置位置:页面放在前缀文件夹中(fa/about.md);文章仍然放在 _posts/ 中,但使用自己的 slug(_posts/2026-10-20-plain-markdown-fa.md)。
  5. 翻译 title、description、tags 和正文。保持 layout、日期、代码、命令和 URL 不变。
  6. 如果站点有该语言的标题菜单(_data/navigation.yml 中的 main_fa),也请将该页面添加进去。

从右到左的语言(fa、ar、he、ur)会根据 lang 获得从右到左的布局;不要设置 direction 或 dir。在波斯语文本中,使用波斯语的 ی 和 ک(而不是阿拉伯语的 ي 和 ك),在 می‌شود 等单词中使用零宽非连接符,并使用波斯语标点(، 和 ؟)。将命令、文件名和代码放在反引号中:它们在句子中保持从左到右的显示。

6. 检查编辑

在站点文件夹中,根据模式检查每个页面的配置和 Front Matter:

node "$HOME/.slipway/tools/theme/validate.mjs" .

每个问题都会以 文件:行号 键: 消息 (allowed: ...) 的格式打印出来。在该行进行修复,使用允许的值,然后再次运行。然后构建站点(如果它有 Gemfile):

bundle exec jekyll build

阅读每个错误和警告,并在其指出的文件中修复。然后对源文件和构建结果运行 doctor 检查。它会根据代理可编辑规范检查站点:AGENTS.md、content-schemas.json(当站点有此文件时,它会根据其命名的模式验证你的 Front Matter)、源映射和编辑提示:

node "$HOME/.slipway/packages/doctor/bin/slipway.mjs" doctor . --build _site

将其发现与你的基线进行比较。发现中命名了你文件的部分,就是你需要修复的。如果没有 Gemfile,请在不带 --build 的情况下运行 doctor,并在推送后读取 Pages 构建的日志。

绝不

  • 绝不将 Liquid({{ }} 或 {% %})放入页面中。
  • 绝不添加 reference/front-matter.md 未列出的 Front Matter 键。
  • 绝不对单个翻译更改 translation_key;要么更改共享它的所有页面,要么一个都不改。
  • 绝不重命名或移动已发布的页面或文章来更改其标题;请设置 title。它的地址是其文件名或 permalink,更改会破坏指向它的链接。
  • 绝不对编辑 _site/,也绝不删除具有 Front Matter 且无正文的页面。
  • 绝不编辑主题布局或包含文件来更改单个页面的外观。

相关技能