文档格式转换折腾、排版太丑?huashu-md-html:双向格式转换流水线,一站式解决万物转干净Markdown与精美HTML排版难题!
我最近在整理一批资料,PDF、Word、PPT、网页,什么格式都有。想统一成 markdown 方便管理,又想生成精美的 html 分享出去,来回折腾,疲于奔命。工具倒是不少,markitdown、Pandoc、html-to-markdown、trafilatura,各有各的用处,但装一圈下来,命令记不住,参数搞不清,光是配环境就耗掉一个下午。
更麻烦的是格式转换的质量。有些工具转出来的 markdown 乱成一团,标题层级丢失,表格变形,代码块没了语法高亮。生成 html 更是灾难——要么是模板丑得像十年前的企业官网,要么是配色花哨得让人眼晕,紫渐变、霓虹蓝、emoji 当图标,一股子 SaaS 落地页的廉价感。
我总怀疑,这些工具的设计者是不是从来没写过一篇正经文章。他们只关心"能转",至于"转完能不能读",似乎不在考虑范围内。
huashu-md-html 把这件事想清楚了。它不是又一个格式转换工具,而是一条双向流水线——把 markdown 当作源代码,把 html 当作产物,来回切换不应该有成本。
三个能力,一站式解决。万物转 markdown,PDF、DOCX、PPTX、XLSX、EPUB、图片、音频、YouTube 视频、网页 URL,扔进去,出来的是干净的 markdown。markdown 转精美 html,四套主题,每套都过了反 AI slop 检查清单,没有紫渐变、没有深蓝底、没有 emoji 当图标,配色克制,有出版社品位。html 转回 markdown,把已发布的博客文章拉回来归档,自动去掉导航、侧栏、广告,只留正文。
底层封装了四个工具。microsoft/markitdown 负责"万物转 md",Pandoc 负责"md 转 html",html-to-markdown 和 trafilatura 负责"html 转 md"。每个能力都是一个脚本,一个命令搞定,不用记参数,不用配环境,缺失依赖会明确提示安装命令,不会静默失败。
四套主题各有各的设计哲学。article 主题受 Tufte CSS 启发,衬线字体、边距笔记,适合 essay、博客、深度阅读。report 主题走出版社白皮书风,宽体多表格,适合技术报告、调研文档。reading 主题是 Medium 极简路线,单栏窄体大字,适合公众号转接、纯阅读。interactive 主题为长文档设计,侧边栏加折叠目录,适合技术书籍、长教程。
所有主题共享一套排版底线。中文字体用 PingFang SC 或思源宋体,英文字体用 Inter 或 IBM Plex Sans,代码字体用 JetBrains Mono,行高 1.75 到 1.85,字号 17 到 18px,最大宽度 680 到 820px。禁用清单写得很清楚,紫渐变、赛博霓虹、深蓝底、Comic Sans、emoji 作正式图标,一概不用。
这个工具的设计哲学源于一个观察。AI 时代,文档的"生产格式"和"消费格式"第一次解耦了。写作发生在 markdown,可 diff、AI 友好、版本可控。分发发生在 html,排版精致、可分享、可导航。来回切换不应该有成本。
它优化的是写作者的循环。一份 markdown 是源,所有创作和编辑都在这里。多套 html 是产物,按场景挑主题,渲染一份精美的 html。来回往返不丢结构,把已发布的博客拉回项目源,或者把别人的好内容归档成 markdown。
我试了一下,把一份 PDF 白皮书转成 markdown,再用 report 主题生成 html,前后不到一分钟。生成的 html 打开即用,不依赖外部 CDN,排版干净利落,像出版社做的,不像 SaaS 落地页。
格式转换的坑,踩过的人自然懂。有什么想说的,评论区见。
https://github.com/alchaincyf/huashu-md-html
