乐于分享
好东西不私藏

告别 Word 与 InDesign:一位小说作者的 Git 化出版流水线

告别 Word 与 InDesign:一位小说作者的 Git 化出版流水线

告别 Word 与 InDesign:一位小说作者的 Git 化出版流水线

# 导语

独立作者最容易把精力放在故事、人物和文笔上,排版与制书往往被视作最后一步的技术杂活。但对兼具小说作者和软件开发者身份的 D. J. Speckhals 来说,传统出版工具链带来的重复劳动、平台依赖和版本混乱,逐渐变成无法忍受的痛点。他最终绕开 Microsoft Word、Adobe InDesign、Kindle Create 等主流工具,搭建了一套以 ODT 为源文件、Git 可追踪、自动生成 EPUB 与 PDF 的出版流水线。

# 核心内容

作者最初采用的是自出版领域相当典型的组合:用 Microsoft Word 写作和接受编辑修订,再把 DOCX 导入 Adobe InDesign 制作纸质书 PDF;电子书则用 Calibre 生成 EPUB,用 Kindle Create 生成亚马逊 KPF。这个流程能工作,也符合行业习惯,但一旦书稿需要微小修改,就必须同时更新 Word、InDesign、Calibre、Kindle Create 四套文件,再分别导出和上传。对于日常使用 Linux 的作者而言,还要频繁切换到 Mac 或 Windows 环境,维护成本很高。

转折点来自 Standard Ebooks。这个公共领域电子书项目以极其严格的格式规范和命令行工具闻名,其 `standardebooks` 工具像代码 linter 一样检查 EPUB:字体单位是否合规、元数据字数是否匹配、标题语义是否冲突、斜体中的所有格是否正确等。作者在处理第三部小说时尝试沿用这套流程,虽然初次执行很繁琐,但最终得到的是结构清晰、可被 Git 管理、可用命令构建的 XHTML 源文件,并且生成的 EPUB 能很好地被 Kindle 转换。

随后,他在修订第一部小说时进一步迁移到开源工具链:将 DOCX 转为 LibreOffice Writer 的 ODT,并大量使用语义化样式。歌曲、信件、诗歌、题词、词汇表、外语短语、祈祷、强调、人物内心独白等内容不再只是“看起来像斜体”,而是拥有明确语义。这不仅有助于转换为 Standard Ebooks 兼容的 EPUB,也能提升屏幕阅读器等辅助技术的可访问性。

技术实现上,作者用 Python、lxml 和 Claude Code 编写转换脚本,解析 ODT 内部 XML,根据 TOML 配置将 Writer 样式映射到中间结构,再输出 XHTML。纸质书 PDF 的部分更曲折:LibreOffice 近年加入了部分微排版能力,Scribus 也是开源排版工具,但二者在 200 多页小说、页边对齐、底部平衡、首字下沉等方面都未达到作者要求。最终他选择 LaTeX,并将同一套 ODT 解析脚本扩展为 ODT 到 TeX 的转换。借助 `memoir`、`fontspec`、`polyglossia`、`graphicx`、`microtype` 等包,LaTeX 输出效果几乎可与 InDesign 媲美。

# 深度解读

这篇文章的价值不在于宣称“所有作者都该抛弃商业软件”,而在于展示了出版流程的软件工程化:源文件必须明确,生成物应可重复构建,版本差异应可审计,格式规则应自动检查。传统 DOCX、INDD、KPF 工作流的最大问题并非不好用,而是太多关键状态藏在二进制或半透明格式里,难以 diff、难以自动化,也难以在不同平台之间稳定复现。

作者的方案也揭示了一个有趣趋势:创作工具不一定非要从纯文本开始。很多技术写作者会推崇 Markdown、LaTeX 或 reStructuredText,但小说作者往往仍需要文字处理器的写作体验、编辑协作和批注修订。作者没有强迫自己在文本编辑器里写小说,而是把 ODT 作为“可编辑的真实源头”,再用脚本把其中的语义提取出来。这是一种更务实的中间路线:前端保留作者和编辑熟悉的界面,后端引入工程化构建、校验和版本控制。

同时,Standard Ebooks 的角色类似出版领域的开源基础设施。它把看似主观的电子书质量拆解成可执行规则,降低了高质量 EPUB 的门槛。LaTeX 则承担了传统桌面排版软件的替代者角色,尤其在微排版、断字、语言处理和自动化方面优势明显。二者结合,让个人作者也能拥有接近专业出版的生产能力。

# 启示与展望

对普通读者而言,制书流程也许并不重要,最终体验仍取决于故事是否好看。但对独立作者、技术写作者和小型出版社来说,这套思路很有启发:不要只追求“某个软件能导出文件”,而要追求可维护、可追踪、可重建的生产系统。

当然,这种方案并不适合所有人。它需要脚本能力、格式知识和持续维护成本,许多作者直接雇专业排版师会更划算。但它证明了一个方向:开放格式、语义样式、自动化构建和 Git 版本管理,正在把出版从手工文件操作变成可迭代的工程流程。未来如果 LibreOffice、Scribus、Pandoc 与 Standard Ebooks 生态继续成熟,独立出版者摆脱封闭软件栈的成本会越来越低。