场景解决方案2026年6月27日

用 Markdown 写公众号,排版怎么一键搞定不崩样式?

公众号编辑器不认 Markdown,每次都要从零排版;直接粘贴又丢样式。本文讲清公众号排版崩掉的根因,给出『.md 源稿不变、最后一步转公众号样式』的稳定做法,以及图片、代码块、公式怎么处理。

你在 Obsidian、VSCode 里把文章写得清清爽爽,一粘进公众号后台,要么满屏 #*,要么样式全丢。根因不是你不会排版,而是公众号编辑器和 Markdown 根本是两套体系。理清这点,排版就能稳定地"一键搞定"。

文章核心论点配图

公众号为什么不认 Markdown?

因为微信公众号后台是富文本编辑器,只接受带内联样式的 HTML,而 Markdown 是一套需要先渲染的纯文本标记语法。你把 ## 标题 直接粘进去,编辑器不会把它当标题,而是当普通文字,于是 # 原样显示。

更隐蔽的问题是:即使你在某个 Markdown 渲染器里排好版、复制渲染结果粘过去,样式也常常丢失——因为公众号会过滤掉外部 CSS 和 class,只保留写在元素 style 属性里的内联样式。普通渲染器的样式大多挂在 class 上,一过滤就只剩裸文字。所以"排版崩掉"有两种:一种是粘了源码,一种是粘了带 class 的渲染结果。

正确做法:源稿不变,最后一步转公众号样式

稳定的思路是把你的 .md 当作唯一源稿,写作工作流完全不变,只在发布前的最后一步把内容转成公众号能吃的内联样式富文本。这样做的好处是:你不必为了公众号改变写作习惯,也不必每篇都在后台从零排版。

具体操作:把你的 .md 内容粘贴到 Markdown 转公众号工具(或导入 .md / .zip / 文件夹),右侧是真实公众号样式的实时预览,点"复制到公众号"再粘进后台即可。关键在于它把所有样式 inline 化,所以标题、代码块、引用块的样式能完整带过去,不会被微信过滤掉。

Markdown 里的本地图片怎么处理?

公众号排版最烦的一环是图片:你 Markdown 里写的是 ![封面](cover.png) 这种本地路径,公众号后台并不知道这张图在哪。

转换工具会自动识别这些本地图片路径并提示上传,上传后图片存进浏览器 IndexedDB(刷新不丢),复制到公众号时图片会随内容一起带出。如果你本来就有"md + 图片"整理好的文件夹或 .zip,直接整包导入,图片会按文件名自动匹配,不用一张张手动传。这一步省掉的是"逐图上传 + 逐图替换链接"的重复劳动。

代码块、表格、流程图、公式能进公众号吗?

分两类看,能不能直接进取决于公众号支不支持对应的呈现方式:

内容类型 能否直接进公众号 做法
代码块 带语法高亮,样式 inline 化后保留
表格 按公众号支持的样式呈现
引用块 用专门设计的左边线样式
Mermaid 流程图 不能直接 先导出 PNG 再插入
LaTeX 公式 不能直接 先导出图片再插入

公众号编辑器对自定义 SVG 不友好,所以流程图和公式必须走"先转图片"的路。如果你的原稿里有 Mermaid 图,先在 Mermaid 绘图工具 里把它渲染好、导出 PNG,再把图片插回 Markdown,转换时就会作为图片一起带进公众号。

反向场景:把已发的公众号文章存回 Markdown

还有一个真实需求是反过来的:文章已经发在公众号,你想把它存成 .md 归档、或迁移到博客、或喂给笔记库做版本管理。这时需要"HTML → Markdown"。

做法是打开公众号文章页 → 查看源代码 → 复制 HTML → 粘进 HTML 转 Markdown 工具。它对公众号 HTML 做了专项处理:识别 figure 包装、合并被 <br> 拆开的代码、剥离冗余内联样式,输出干净的标准 Markdown。这样你的内容就能回到"以 .md 为源"的可管理状态。

边界:什么时候不用这套

如果你的文章几乎没有格式——纯文字、无代码、无表格、无图,那其实直接在公众号后台敲字最快,没必要走转换。这套"Markdown 源稿 + 一键转样式"的价值,体现在有代码块、有图、有结构、且要反复一稿多发的技术与知识类内容上。格式越复杂、发得越频繁,省下的重复排版时间越多。

小结

公众号排版崩掉,是因为它是只认内联样式的富文本编辑器,和 Markdown 不是一回事。正确姿势是:.md 当源稿、写作流程不变,发布前用 Markdown 转公众号 一键转成内联样式再粘贴;本地图片让工具自动匹配上传;流程图/公式先转 PNG 再插入;要存档迁移就用 HTML 转 Markdown 反向回收。抓住"内联样式"这个关键,排版就不会再崩。

本文用到的工具

常见问题

微信公众号后台是富文本(所见即所得)编辑器,只认内联样式的 HTML,不解析 Markdown 语法。所以直接粘贴 .md 源码会原样显示 # 和 *。正确做法是先把 Markdown 渲染成带内联样式的富文本,再粘贴进后台。