综合写作练习与 Mermaid 排错
本节目标
通过一组短任务把前五课连起来,并能从“源文本—解析规则—渲染器”三层排查问题。本课要求先独立完成,再对照验收清单;遇到陌生语法时查阅 Markdown 完整教程,不要靠反复试字符碰运气。
练习一:把杂乱说明变成结构
原文:
启动服务。需要Python。先创建环境。安装依赖。运行app.py。失败时看日志。不要提交.env。改写要求:
- 一级标题是文档名称;正文最高从二级标题开始。
- 增加“前置条件、步骤、验证、失败处理、安全”五节。
- 命令使用带
powershell语言标记的围栏。 - 文件名和变量用行内代码。
- “不要提交
.env”写成明确安全规则,不藏在段落末尾。
完成后仅看源文件,检查层级是否仍清楚;再看阅读视图,检查列表与代码块是否连续。
练习二:列表、任务与表格
写一份三阶段检查单:准备、执行、验收。每阶段至少三个任务,其中一个任务再嵌套两项。随后用表格记录:检查项、负责人、证据、状态。
常见错误:
- 列表前没有空行,某些渲染器把它接进段落;
- 嵌套缩进不一致;
- 表格分隔行列数与标题不一致;
- 单元格中的
|未转义,导致意外拆列; - 用空格手工对齐正文,换字体后失效。
练习三:链接策略
为一篇知识笔记设计三类链接:
- vault 内部笔记:使用文件夹限定 wikilink,避免多个
00-目录产生歧义; - 外部规范:使用
[描述文本](https://...); - 图片或 PDF 嵌入:使用 Obsidian embed,并确认目标文件真实存在。
链接文字要说明目标内容,不要连续使用“点击这里”。修改或移动文件后重新验证路径。
练习四:代码与输出
工程文档应区分命令、输出和占位符:
python --versionPython 3.x.y上方 3.x.y 表示读者机器上的实际版本,不是声称已验证的固定版本。命令若未执行,应写“预期”而不是“运行结果”。不要在代码块中放真实 token、cookie 或内部地址。
练习五:最小 Mermaid 图
先画三节点流程:输入、验证、输出。每次只增加一个结构,避免一开始使用大量样式。节点文字含括号或标点时加引号,并在阅读视图验证。
图适合表达关系和流程;精确参数、长解释与可复制命令仍应放在正文或表格中。
先完成流程图:
flowchart LR Input["输入:会议文本"] --> Validate{"格式有效?"} Validate -->|是| Output["输出:摘要草稿"] Validate -->|否| Stop["停止并报告错误"]
再把同一任务改写成最小时序图,体会“步骤流”与“参与者交互”的区别:
sequenceDiagram participant U as 用户 participant A as 摘要工具 U->>A: 提交本地文本 A-->>U: 返回摘要草稿或验证错误
完成标准不是“图越复杂越好”,而是读者能回答:谁提供输入、何时停止、谁接收结果。先阅读 Mermaid 兼容提醒,再按需查阅 Mermaid 完整教程。
练习六:Properties、链接与嵌入
新建一篇练习笔记,要求:
- frontmatter 使用
title、tags、aliases,每个键只出现一次; - 用完整路径 wikilink 指向本库目录;
- 用标题链接指向 链接到标题与块;
- 写一个可折叠的
[!example]-callout; - 解释链接与 embed 的差异,但不创建虚假附件。
不要把 token、账号、内部服务器地址写进 Properties;隐藏显示不等于加密。
渲染排错顺序
- 缩小到最小失败片段。
- 检查围栏是否成对、反引号数量是否匹配。
- 检查列表前空行和嵌套缩进。
- 检查表格中的
|、换行与内联代码。 - 检查 wikilink 或 embed 的真实目标。
- 区分是 CommonMark 语法、GFM 扩展还是 Obsidian 专用语法。
- 在实际阅读视图复核,而不是只相信编辑器高亮。
若问题只出现在 Mermaid:
- 先把图缩成“图类型 + 两个节点 + 一条边”;
- 确认代码块语言是
mermaid,围栏成对; - 节点文字含括号、冒号、斜杠或尖括号时先加双引号;
- 检查
subgraph是否有end、节点 ID 是否重复; - 再逐段加回原内容,定位第一处失败增量;
- 最后到当前 Obsidian 阅读视图复核,因为宿主内置版本可能落后于 Mermaid 官网。
嵌套代码围栏
要在一个 Markdown 代码块里展示另一个三反引号代码块,外层必须使用四个或更多反引号,或改用波浪线。相同长度的围栏会提前闭合外层。
练习验收
- 文档源文本在不渲染时也能读懂。
- 标题没有跳级,列表层次清楚。
- 命令和输出分别标记,未把预期冒充实测。
- 内外部链接形式正确且目标可访问。
- Mermaid 图表达了流程,而不是重复整段正文。
- 同一任务改写成流程图和时序图后,能解释两者各自回答的问题。
- Properties 键唯一、值类型清楚,内部链接使用真实完整路径。
- 没有真实凭据、未解释的危险命令或模糊占位。
可以按 0~2 分给每项打分:0 表示缺失,1 表示存在但仍需口头解释,2 表示另一位初学者仅看文件即可复核。总分低于 12 分时,先修结构和证据,不先做视觉装饰。
自测与来源
- 为什么源文件清晰和渲染美观都重要?
- 何时使用 wikilink,何时使用标准 Markdown 链接?
- 代码围栏为什么要标语言?
- Mermaid 图不能替代哪些信息?
- 为什么外层与内层代码围栏不能使用相同长度?
- Mermaid 官网能渲染但 Obsidian 不能渲染时,应如何判断问题边界?
上一节:面向 Agent 工程的结构化技术写作。
下一步:知识库运行手册项目与自测。
获取日期:2026-07-14。