Markdown 写作指南

GEO Wiki Pro Markdown 文档编写规范,涵盖 frontmatter、格式、扩展语法等完整指南

# Markdown 写作指南 > 编写高质量技术文档的完整指南 | v1.0.7 --- ## YAML Frontmatter(必填) 每篇文档必须以 YAML Frontmatter 开头: ```yaml --- title: 文档标题 slug: url-friendly-slug category: 分类slug tags: [标签1, 标签2] author: admin sort: 1 description: 简短描述(对 SEO 重要) language: zh notice: "💡 可选的提示横幅" --- ``` ### 字段说明 | 字段 | 必填 | 说明 | |------|------|------| | `title` | 是 | 文档标题 | | `slug` | 是 | URL 标识符(仅字母、数字、连字符、下划线,最长 200 字符) | | `category` | 是 | 分类 slug(必须已存在) | | `tags` | 是 | 标签数组 `[tag1, tag2]` | | `author` | 是 | 作者名称 | | `sort` | 否 | 排序值(数字,升序,默认 999) | | `description` | 否 | 搜索结果摘要 | | `notice` | 否 | 通知横幅文本 | | `language` | 否 | 语言代码(zh/en/jp) | ::: warning slug 创建后如需修改,可使用 `geo doc slug-rename --slug 旧slug --new-slug 新slug` 命令(会同步更新所有语言版本)。 ::: --- ## 基础 Markdown 语法 ### 标题 ```markdown # 一级标题(仅一个) ## 二级标题 ### 三级标题 #### 四级标题 ``` ### 文本格式 ```markdown **粗体** | *斜体* | ~~删除线~~ | ==高亮== ``` ### 列表 ```markdown - 无序列表 - 子项目 1. 有序列表 2. 第二项 - [x] 任务完成 - [ ] 任务未完成 ``` ### 引用与分隔线 ```markdown > 引用文本 --- ``` ### 链接 ```markdown [内部链接](/docs/slug) [外部链接](https://example.com) [锚点链接](#section-id) ``` ### 表格 ```markdown | 列 1 | 列 2 | 列 3 | |------|------|------| | 数据 | 数据 | 数据 | ``` ### 脚注 ```markdown 这是一个带有脚注的句子[^1]。 [^1]: 这是脚注的内容,显示在页面底部。 ``` 脚注会自动渲染在文档底部,带有分隔线和编号。 --- ## 代码块 ### 基本代码块 ````markdown ```bash npm install ``` ```javascript console.log("Hello"); ``` ```json { "key": "value" } ``` ```` ### 支持的语言 `bash`、`javascript`、`python`、`json`、`yaml`、`css`、`html`、`sql`、`go`、`java`、`rust`、`cpp`、`shell`、`dockerfile`、`nginx` ### 标签页代码块 将多个连续代码块合并为标签页切换视图。在代码块信息后添加 `// [标签名]`: ````markdown ```bash // [Bash] npm install geowiki-cli ``` ```python // [Python] import requests response = requests.get("https://api.example.com") ``` ```javascript // [JavaScript] fetch("https://api.example.com") .then(res => res.json()) ``` ```` 渲染效果:代码块顶部显示标签按钮,点击可切换不同语言的代码。 ::: tip 标签页代码块适合展示同一功能在不同语言中的实现方式。 ::: --- ## Mermaid 图表 使用 `mermaid` 语言标识创建流程图、时序图、甘特图等: ### 流程图 ````markdown ```mermaid graph TD A[开始] --> B{判断} B -->|条件1| C[处理1] B -->|条件2| D[处理2] C --> E[结束] D --> E ``` ```` ### 时序图 ````markdown ```mermaid sequenceDiagram participant A as 用户 participant B as 服务器 A->>B: 发送请求 B->>A: 返回响应 ``` ```` ### 甘特图 ````markdown ```mermaid gantt title 项目计划 section 阶段1 需求分析: 2026-01-01, 7d 设计: 2026-01-08, 5d section 阶段2 开发: 2026-01-13, 14d 测试: 2026-01-27, 7d ``` ```` ### 类图 ````markdown ```mermaid classDiagram class User { +String name +String email +login() } class Post { +String title +String content +publish() } User --> Post : writes ``` ```` ::: note Mermaid 图表会自动适应暗色模式,无需额外配置。 ::: --- ## ECharts 图表 使用 `echarts` 语言标识创建交互式图表: ### 柱状图 ````markdown ```echarts { "title": { "text": "月度访问量" }, "tooltip": {}, "xAxis": { "data": ["1月", "2月", "3月", "4月", "5月", "6月"] }, "yAxis": {}, "series": [{ "name": "访问量", "type": "bar", "data": [120, 200, 150, 80, 70, 110] }] } ``` ```` ### 折线图 ````markdown ```echarts { "title": { "text": "趋势分析" }, "tooltip": { "trigger": "axis" }, "xAxis": { "type": "category", "data": ["周一", "周二", "周三", "周四", "周五"] }, "yAxis": { "type": "value" }, "series": [{ "name": "数据", "type": "line", "data": [100, 150, 130, 180, 160] }] } ``` ```` ### 饼图 ````markdown ```echarts { "title": { "text": "来源分布" }, "tooltip": { "trigger": "item" }, "series": [{ "name": "来源", "type": "pie", "radius": "50%", "data": [ { "value": 335, "name": "直接访问" }, { "value": 310, "name": "搜索引擎" }, { "value": 234, "name": "社交媒体" } ] }] } ``` ```` ::: tip ECharts 图表支持交互操作,鼠标悬停显示详细数据。图表会自动适应暗色模式。 ::: --- ## 网格布局 使用 `:::grid` 创建响应式网格布局,适合并排展示图片或内容块: ### 基本网格 ```markdown :::grid{cols=2} 内容块 1 内容块 2 ::: ``` ### 卡片样式网格 ```markdown :::grid{cols=3 style=card} 卡片内容 1 卡片内容 2 卡片内容 3 ::: ``` | 参数 | 说明 | 默认值 | |------|------|--------| | `cols` | 列数(1-6) | 2 | | `style` | 样式(default / card) | default | ::: note 每个空行分隔的内容块成为一个网格单元。支持 1-6 列。 ::: --- ## 扩展语法 ### 提示框(Callouts) ```markdown ::: note 补充说明信息。 ::: ::: tip 有用的提示。 ::: ::: warning 重要注意事项。 ::: ::: danger 关键安全信息。 ::: ``` ### FAQ 块 ```markdown ::: faq **Q: 问题一?** 回答一。 **Q: 问题二?** 回答二。 ::: ``` ### 数学公式 行内公式:`$E=mc^2$` 块级公式: ```markdown $$ \int_{a}^{b} f(x) dx = F(b) - F(a) $$ ``` ### 视频嵌入 ```markdown :::video[视频说明](https://bilibili.com/video/BVxxx) ::: ``` ### 3D 模型 ```markdown :::model[模型名称](/media/model.step) ::: ``` ### 文件下载 PDF、DOC 等文件自动渲染为下载卡片: ```markdown [用户手册](/media/manual.pdf) ``` ### 图片 图片自动响应式缩放,alt 文本显示为图注: ```markdown ![接线图](/media/wiring-diagram.png) ``` --- ## 提示框类型 | 类型 | 用途 | 边框颜色 | |------|------|----------| | `::: note` | 补充说明 | 蓝色 | | `::: tip` | 提示建议 | 绿色 | | `::: warning` | 注意事项 | 黄色 | | `::: danger` | 安全警告 | 红色 | --- ## 常见问题 **Q: slug 一旦创建能修改吗?** A: 可以。使用 `geo doc slug-rename --slug 旧slug --new-slug 新slug` 命令,会同步更新所有语言版本的 slug。 **Q: 如何编辑非当前语言的文档?** A: 使用 CLI 指定语言:`geo doc update --slug xxx --lang en` **Q: 图片放在哪里?** A: 放在 `public/media/` 目录,引用时用 `/media/filename.ext`。 **Q: 如何让代码块有行号?** A: 系统自动为代码块添加行号,无需手动设置。 **Q: 标签页代码块最多支持几个标签?** A: 建议不超过 5 个,过多会影响显示效果。 **Q: ECharts 图表支持哪些类型?** A: 支持 ECharts 5 的所有图表类型:柱状图、折线图、饼图、散点图、雷达图、热力图等。 --- *最后更新: 2026-07-02 | 版本: v1.0.7*