Communitygithub.com

satoshiman/mdsvr

Markdown 文件夹 → 网站。一条命令,零配置。

mdsvr 是什么?

该技能用于生成符合 mdsvr 规范的完整、有效的多文件 Markdown 文档集,支持服务器模式和静态导出。当用户请求创建文档时,技能会首先明确主题、受众、范围、语言和是否需要图表,然后规划逻辑文件结构,并严格遵循 mdsvr 的文件命名、链接结构、标题层级和 YAML 前置元数据规则。在内容创作阶段,技能会生成包含首页、章节索引和内容页面的完整站点,并在需要时根据 `references/rules/mermaid.md` 嵌入合适的 Mermaid 图表。最后,技能使用 `create_file` 将所有文件写入文件系统,打包为 zip 压缩包,通过 `present_files` 呈现给用户,并在聊天中总结文件树、服务命令和页面数量。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add satoshiman/mdsvr

在你喜欢的 AI 中提问

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

文档

Markdown for mdsvr 技能

生成一套完整、有效的多文件 Markdown 文档集,用于 mdsvr — 同时支持服务器模式和静态导出。

触发此技能时,输出多个** .md 文件**,形成一个风格统一的文档站点,严格遵守 mdsvr 的所有约定。


第一步 — 理解请求

在生成文件之前,从用户请求中提取以下信息:

  1. 主题/产品名称 — 要记录什么?
  2. 目标受众 — 开发者、最终用户、运维团队等。
  3. 范围 — 需要多少页面/章节?
  4. 语言 — 越南语、英语或双语?
  5. 是否需要图表? — 如果是,请阅读 references/rules/mermaid.md 了解语法规则。

如果以上任何信息不明确,请在继续之前提出一个聚焦的问题。


第二步 — 规划文件结构

在编写内容之前,设计一个逻辑层次结构。典型的 mdsvr 文档站点:

docs/
├── README.md                    ← 主页(必需)
├── 01-getting-started/
│   ├── README.md                ← 章节索引
│   ├── 01-installation.md
│   ├── 02-quickstart.md
│   └── 03-configuration.md
├── 02-guides/
│   ├── README.md
│   ├── 01-basic-usage.md
│   └── 02-advanced.md
├── 03-api-reference/
│   ├── README.md
│   └── 01-endpoints.md
└── 04-troubleshooting.md

根据用户主题调整结构。可按需扩展或缩小。


第三步 — 应用 mdsvr 文件和链接规则(强制)

3.1 文件命名规则

规则❌ 错误✅ 正确
文件名中间不能有句点0.1.quickstart.md01-quickstart.md
文件名中间不能有句点config.v2.mdconfig-v2.md
使用短横线命名(kebab-case)GettingStarted.mdgetting-started.md
使用数字前缀排序guide.md (在侧边栏)01-guide.md
文件名要描述性page1.mdinstallation.md
目录索引文件必须为index.mdREADME.md

3.2 链接结构规则

规则❌ 错误✅ 正确
仅使用相对路径[Guide](/docs/guide)[Guide](./guide)
链接中不能有 .md 扩展名[Setup](./setup.md)[Setup](./setup)
链接到目录,而不是 README[Start](./01-getting-started/README)[Start](./01-getting-started)
锚点链接必须与标题匹配[See](#install-steps) (如果标题不存在)精确匹配

3.3 标题结构规则

规则❌ 错误✅ 正确
每个页面都需要 H1(页面以 H2 开头)# 页面标题 作为第一个标题
不要跳过标题层级H1 → H3H1 → H2 → H3
标题必须具有描述性## 第1节## 安装要求

第四步 — 为每个文件添加前置元数据 (Frontmatter)

每个 .md 文件必须包含 YAML 前置元数据,用于 SEO 和 mdsvr 元数据:

---
title: "页面标题"
description: "对该页面内容的一句话描述。"
---

第五步 — 内容指南

README.md (主页) — 必需

  • 必须存在于文档文件夹的根目录。
  • 包含:项目概述、所有章节的快速导航链接。
  • 如果合适,使用欢迎提示框。

章节 README.md (目录索引)

  • 总结该章节涵盖的内容。
  • 列出该章节中的所有页面,并使用相对链接。

内容页面

  • 每个页面聚焦一个主题。
  • 以简短介绍段落开头。
  • 在适当的地方使用 MDX 组件:
    • :::note,:::warning,:::tip,:::danger 用于提示框。
    • 使用编号列表进行分步操作步骤。
  • 使用相对路径广泛链接到相关页面。
  • 在有用时以“下一步”或“相关”部分结尾。

第六步 — Mermaid 图表 (需要时)

如果文档受益于图表(架构图、流程图、序列图、ERD、状态机等),请在相关的 .md 文件中内联嵌入 Mermaid 图表。

在生成任何图表之前,请阅读 references/rules/mermaid.md 了解完整的语法参考和生成规则。该文件中的所有规则都是强制的。

快速检查清单 (来自 mermaid.md):

  • 选择最合适的图表类型 — 不要默认使用 flowchart。
  • 在流程图中始终声明方向:flowchart TD 或 flowchart LR。
  • 节点 ID:仅使用字母、数字、下划线。不能包含 -、.、(、)。
  • 包含空格的节点标签必须使用双引号:A["我的标签"]。
  • 子图必须有明确 ID:subgraph myid["标签"]。
  • 序列图:在消息之前声明所有 participant 行。
  • 除非用户明确要求,否则不要使用硬编码的颜色或样式。
  • 使用表情符号代替颜色来传达语义含义。
  • 每个代码块一个图表;在输出之前验证语法。

第七步 — 创建文件并交付

使用 create_file 将每个 .md 文件写入文件系统。然后将其全部打包成 zip 文件,并调用 present_files,以便用户可以下载结果。

7.1 写入每个文件

对于规划结构中的每个文件,使用 create_file 在 /mnt/user-data/outputs/<项目名称>/ 下创建完整路径:

/mnt/user-data/outputs/我的项目/README.md
/mnt/user-data/outputs/我的项目/01-getting-started/README.md
/mnt/user-data/outputs/我的项目/01-getting-started/01-installation.md
...

在每次调用中写入完整、最终的内容 — 不要写入占位符。

7.2 打包并呈现

在所有文件写入完成后,将输出文件夹打包成 zip 文件并调用 present_files:

cd /mnt/user-data/outputs
zip -r 我的项目-docs.zip 我的项目/

然后使用 .zip 文件的路径调用 present_files。

7.3 在对话中总结

在 present_files 之后,在对话中写一条简短消息,包含:

  1. 文件树 — 显示生成的所有目录结构。
  2. 如何启动 — 一行命令:npx mdsvr ./我的项目 或 mdsvr ./我的项目。
  3. 页面数量 — 例如:“生成了 3 个章节共 8 个页面。”

快速参考 — 要避免的常见错误

❌ 链接中使用绝对路径:     [Page](/docs/page)
✅ 相对路径:             [Page](./page)

❌ 链接中包含 .md 扩展名: [Page](./page.md)
✅ 无扩展名:             [Page](./page)

❌ 链接到 README 文件:    [Section](./01-section/README)
✅ 链接到目录:           [Section](./01-section)

❌ 文件名中包含句点:      01.quickstart.md
✅ 使用连字符分隔:       01-quickstart.md

❌ 缺少 H1:              ## 简介  (第一个标题是 H2)
✅ 以 H1 开头:           # 简介

❌ 跳过的标题层级:        # 标题 → ### 子标题 (跳过 H2)
✅ 正确的层级结构:       # 标题 → ## 章节 → ### 子章节

❌ 没有前置元数据:        (文件直接以 # 开头)
✅ 有前置元数据:         --- title: "..." description: "..." ---

参考文件

  • references/rules/mermaid.md — 所有 19 种图表类型的完整 Mermaid v11 语法参考。任何时候在文档中需要任何图表时,请阅读此文件。

相关技能