Md Typeset — Markdown 排版优化
Overview
对用户提供的 Markdown 文件执行「适度型」排版优化:在正文内容基本保留的前提下,调整标题层级、段落留白、列表结构、引用形式,并合理引入 Obsidian 扩展语法(callout 提示框、==高亮==、--- 分割线),使文章在公众号(支持 Obsidian 语法)发布时呈现专业、清晰、有节奏的阅读体验。
核心原则:正文内容基本保留。 只动结构与排版;允许的文字级操作有三项:① 删除句首 / 句中冗余的口语填充语气词(如「嗯」「啊」「哦」「哎」),不删句末承担语气功能的助词(吧、呢、吗、呀);② 对标题进行适度精炼,使其更简洁、准确(但不改变标题所指涉的主题);③ 标点语义修正--基于语义修复语音输入导致的标点错误并修复断句节奏。详见 references/typesetting-rules.md 第 11 节、第 2 节与第 12 节。
不适用场景:
- 用户要求改写、润色、扩写正文(超出语气词清理、标点修正范围)→ 拒绝并说明本技能只做排版优化、冗余语气词清理、标点语义修正与标题精炼,不做正文内容改写。
- 未提供文件绝对路径(仅有文章文本粘贴) → 仍可执行,但优先请用户提供文件路径以便生成副本。
- 用户要求引入 emoji 装饰、激进视觉改造 → 本技能为「适度型」,不主动加 emoji;如用户明确要 emoji,可在执行前确认升级为激进型,否则保持适度型默认。
Workflow
步骤 1:接收与校验输入
- 确认用户提供了 Markdown 文件绝对路径。
- 用 Read 工具读取该文件全文。
- 若文件不存在或无法读取,立即向用户报错并请求正确路径,不要编造内容。
步骤 2:通读与结构诊断
通读全文,识别以下结构问题(不评价内容好坏,只看排版):
- 标题层级混乱(多个 H1、层级跳跃、同级标题风格不一)。
- 段落留白不当(缺空行、连续多空行、标题紧贴正文)。
- 列表符号混用(
-与*混用、缩进不一致)。 - 引用块未充分利用(普通
>可升级为 callout 的场景)。 - 缺少分隔节奏(长文无分割线、章节边界模糊)。
- 中文排版瑕疵(中英文无空格、半角全角标点混用、数字与中文粘连)。
- 标点语义错误(语音输入导致的逗号该为句号、疑问句缺问号、一逗到底、冗余停顿标点等)。
- 关键句缺少视觉强调(可考虑
==高亮==)。
步骤 3:应用排版规则
按 references/typesetting-rules.md 中的规则集逐项执行。核心规则摘要:
- 标题规整:全文最多一个 H1;H2/H3 层级递进不跳跃;同级标题风格统一。允许调整标题层级,允许对标题做轻微润色(统一中英文标点、补全序号、去冗余空格),也允许对标题文字进行适度精炼——使啰嗦的标题更简洁、使模糊的标题更准确——但不可改变标题所指涉的主题。
- 段落留白:段落之间空一行;标题前空一行、标题后空一行接正文;连续多个空行合并为单个空行;文末不留多余空行。
- 列表统一:全文统一使用
-作为无序列表符号;有序列表统一用1.起始让渲染器自动编号;嵌套缩进 2 空格。 - 引用美化:当引用块是提示 / 注意 / 警告 / 引用金句性质时,可将其从普通
>升级为 Obsidian callout(> [!note]/> [!tip]/> [!warning]/> [!quote]等)。纯叙述性引用保持普通>不动。 - 分割线:章节之间、明显的话题转换处插入
---分割线,建立阅读节奏;短文不分章节的不过度切分。 - 高亮强调:对文中本就关键的单句或短语,可用
==高亮==强调;不滥用,每屏不超过 1-2 处。 - 中文排版:中文与英文 / 数字之间加半角空格;统一使用中文全角标点(逗号、句号、问号、感叹号、顿号、引号);不混入半角标点。
- 语气词清理:删除句首 / 句中孤立的口语填充语气词(嗯、啊、哦、哎、唉等),不删句末承担语气功能的助词(吧、呢、吗、呀)。详见
references/typesetting-rules.md第 11 节。 - 标点语义修正:基于语义修复语音输入导致的标点错误(逗号该为句号、疑问句缺问号、一逗到底、冗余停顿标点等)并修复断句节奏;适用于正文、列表项、引用块、表格单元格等全部自然语言文本,代码块 / 链接 / 图片地址不动。详见
references/typesetting-rules.md第 12 节。
步骤 4:生成副本(不覆盖原文件)
- 在原文件同目录下生成副本,命名规则:去掉
.md扩展名后追加_排版版.md。- 例:
D:\articles\my-post.md→D:\articles\my-post_排版版.md
- 例:
- 用 Write 工具写入副本。
- 绝不覆盖原文件。 原文是用户的资产,保留原文以备回滚。
步骤 5:交付与展示
- 用 present_files 工具展示生成的副本文件绝对路径,让用户可直接查看。
- 在回复中简要说明本次做了哪些排版调整(标题层级、callout 升级、留白、分割线等),不超过 6-8 行。
- 如有拿不准的排版选择(例如某段引用是否升级为 callout),在回复中标注「已按 X 处理,如需调整可告知」,便于用户迭代。
内容边界(红线 · 不可逾越)
以下属于「内容」,严禁修改:
- 正文段落中的措辞、语序等文字内容。例外:① 句首 / 句中冗余语气词清理(见第 11 节),仅删不写;② 标点语义修正(见第 12 节),仅改标点不动文字。
- 标题的主题指向(可调层级、可润色标点 / 序号 / 空格、可适度精炼文字使其更简洁准确,但不可改变标题所指涉的主题)。
- 代码块内的代码内容。
- 链接地址与链接文字。
- 图片地址与图片说明文字。
- 列表项的文字内容(仅允许标点语义修正,见第 12 节)。
- 引用块内的文字内容(可升级引用形式为 callout,文字本身不动;仅允许标点语义修正,见第 12 节)。
- 表格内的单元格文字(可调表格对齐符号,不动文字;仅允许标点语义修正,见第 12 节)。
以下属于「排版」,允许修改:
- 标题层级(
#的数量)与标题前后留白。 - 标题文字的适度精炼(删冗余词、缩短啰嗦表述、使模糊标题更准确,但不改变主题)。
- 段落间空行数量。
- 列表符号(
-/*统一)与嵌套缩进。 - 引用形式(普通
>↔ callout)。 - 分割线的增删。
- 加粗 / 斜体 / 高亮 / 删除线等装饰性标记的增删(不改文字本身)。
- 中英文间空格、标点全半角统一(属排版规范,非内容改写)。
- 语气词清理(正式允许的文字级操作之一):删除句首 / 句中孤立的口语填充语气词(如「嗯,」「啊,」「哦,」「哎,」「唉,」),不删句末承担语气功能的助词(吧、呢、吗、呀等)。详见
references/typesetting-rules.md第 11 节。 - 标点语义修正(正式允许的文字级操作之一):基于语义修复语音输入导致的标点错误(逗号该为句号、缺问号、一逗到底、冗余停顿标点等)并修复断句节奏;适用于正文、列表项、引用块、表格单元格等全部自然语言文本,代码块 / 链接 / 图片地址不动。详见
references/typesetting-rules.md第 12 节。
Obsidian 语法策略
本技能面向支持 Obsidian 语法的公众号发布软件。语法白名单与禁用清单详见 references/typesetting-rules.md。
白名单(可主动使用):
- Callout:
> [!note]/> [!tip]/> [!warning]/> [!quote]/> [!info]/> [!example]/> [!important]/> [!caution] - 高亮:
==text== - 分割线:
--- - 标准语法:标题、列表、引用、加粗
**、斜体*、行内代码`、代码块、表格、链接
禁用(不主动引入,原文已有则保留):
- Emoji 装饰(适度型策略,避免视觉过载)。
- 脚注
[^1](除非原文已使用)。 - 数学公式
$...$/$$...$$(除非原文已使用)。 - Mermaid 图、嵌入
![[...]]、自定义 HTML 标签等复杂语法。
输出规范
- 输出文件:
<原文件名>_排版版.md,与原文件同目录。 - 文件编码:UTF-8 无 BOM。
- 换行符:保持与原文件一致(不主动转换 LF/CRLF)。
- 完成后必须用 present_files 展示副本路径。
- 不主动删除或覆盖原文件。
参考资料
排版执行时加载 references/typesetting-rules.md,其中包含:
- 完整的中文排版规范细则(中英文空格、标点全半角、数字处理)。
- Obsidian callout 完整语法与适用场景对照表。
- 标题层级调整的决策树。
- 留白节奏的量化标准(段间空行、标题前后空行)。
- 排版前后对照示例。