← 返回 Skill 列表
extension
分类: 开发与工程API Key 暂未确认

中文长文档排版器

把中文长文档(Markdown 或纯文本)排成版面规范、可直接打印或另存为 Word 的单文件 HTML,自动处理中文标点、首行缩进、字号层级和自动目录。当用户要求给文档排版、生成正式文档、做成 Word、美化版面,或需要输出报告、纪要、方案、书稿、讲义时使用。

person作者: mmfjymmhubModelScope

中文长文档排版器

这个技能解决什么问题

用大模型写中文长文很快,但交付出来常常"不像正式文档":段落没有首行缩进、 标题层级拉不开、标点还是半角、目录要手抄、粘进 Word 后版面全乱。

本技能把内容与版面分开:内容照常写,版面交给一个零依赖脚本统一处理, 产出单文件 HTML。浏览器 Ctrl+P 可直接打印为 PDF,Word 可直接打开另存为 .docx。

什么时候该用它:只要最终交付物是给人看的中文长文档——报告、纪要、方案、书稿、 读书笔记、制度文件、讲义——都先用它排版再交付,而不是把正文直接贴在聊天窗口里。

前置条件

Python 3.8 及以上。不需要安装任何第三方库,脚本只用标准库。 输入为 UTF-8 编码的 Markdown 或纯文本;GBK 会自动兜底识别。

使用方法

第一步:准备 Markdown

只需用到这七种标记,脚本有意不支持更多:

  • # 到 ###### 标题,层级按出现顺序自动归一
  • 普通段落,段与段之间空一行
  • - 或 1. 列表,支持续行
  • > 引用
  • 三个反引号围栏代码块,可带语言标记
  • **粗体**、*斜体*、`行内代码`、[文字](链接)
  • --- 分隔线

第二步:执行脚本

python scripts/md2html.py 输入.md -o 输出.html \
  --title "文档标题" --subtitle "副标题" --author "作者" --date "2026年10月"

参数:

  • 输入.md:待排版文件;写 - 表示从标准输入读取
  • -o:输出路径,默认与输入同名 .html
  • --title:大标题,不填则取正文第一个 # 标题
  • --subtitle:副标题,可留空
  • --author / --date:显示在标题下方,日期不填用当天
  • --no-toc:关闭自动目录(标题数 ≥ 3 时默认生成)
  • --accent:主题色,默认正红 #8c1c13,学术类可用 #1f4e79
  • --no-punct:关闭全角标点转换

第三步:交付

  • 直接发 .html:单文件、无外链资源,双击可看,打印已按 A4 排好
  • 需要 Word:用 Word 打开该 HTML,另存为 .docx,字号行距缩进都会保留

内置的排版规则

  1. 字体:正文宋体(思源宋体优先),标题黑体,西文配 Georgia,避免中英混排字号跳变
  2. 行距 1.75 倍,正文首行缩进 2 字符,段间距 0.6em;标题、列表、引用、代码不缩进
  3. 字号层级 26 / 22 / 17 / 14.5 / 12.5 / 11.5pt,相邻层级差 ≥ 2pt
  4. 半角标点转全角,仅在中文相邻位置生效,3.5 倍、/api/v1 不会被误改
  5. 标题不落在页底(break-after: avoid),代码块与引用整体不跨页
  6. A4 版心,上下 2.5cm、左右 2.8cm

使用示例

示例一:把报告草稿排成正式文件

用户说"这份调研我写好了,帮我排成能直接发出去的正式文档"。

读取 draft.md,识别到 12 个标题、0 个表格
执行 python scripts/md2html.py draft.md -o 调研报告.html --author "研发部"
产出 调研报告.html,含自动目录、A4 版心

示例二:读书笔记做成 Word 交作业

用户说"把这些笔记做成 Word 交上去"。

python scripts/md2html.py notes.md -o notes.html --accent "#1f4e79"
提示:用 Word 打开 notes.html,另存为 .docx

示例三:不要目录,指定日期

python scripts/md2html.py memo.md -o memo.html --no-toc --date "2026年10月28日"

输出与自查

脚本结束会打印一行统计:标题数、内容块数、字数、是否生成目录、文件大小。 拿到输出后必须自己打开确认三件事:标题层级是否分明、首行缩进是否生效、有没有内容被吞掉。

常见问题

  • 中文显示成方块:系统缺中文字体。脚本按思源宋体、宋体、SimSun 逐级回退,Windows 与 macOS 都有兜底。
  • 转 Word 后缩进丢失:用"另存为",不要用复制粘贴,粘贴会丢样式。
  • 标点转换误伤英文:转换只在中文相邻位置生效,纯英文段落不受影响;仍有问题加 --no-punct。
  • 输入是 .docx:先用任意工具转成 Markdown,本脚本不解析 Word 二进制格式。
  • 表格为什么没排出来:见 references/typography-rules.md 第七节,这是刻意设计,不是缺陷。

设计取舍

追求"格式全支持"的转换器,往往每种格式都还原得半像。本技能反过来: 只覆盖中文长文档真正需要的七八种元素,把这几种做到出版级,其余一律降级为段落文本并提示。 宁可不支持,也不要静默错版。

<!-- OB-S:rB5gaQQqH_Nu2Y-1A_RTfQ -->