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

公众号为什么不认 Markdown?
因为微信公众号后台是富文本编辑器,只接受带内联样式的 HTML,而 Markdown 是一套需要先渲染的纯文本标记语法。你把 ## 标题 直接粘进去,编辑器不会把它当标题,而是当普通文字,于是 # 原样显示。
更隐蔽的问题是:即使你在某个 Markdown 渲染器里排好版、复制渲染结果粘过去,样式也常常丢失——因为公众号会过滤掉外部 CSS 和 class,只保留写在元素 style 属性里的内联样式。普通渲染器的样式大多挂在 class 上,一过滤就只剩裸文字。所以"排版崩掉"有两种:一种是粘了源码,一种是粘了带 class 的渲染结果。
正确做法:源稿不变,最后一步转公众号样式
稳定的思路是把你的 .md 当作唯一源稿,写作工作流完全不变,只在发布前的最后一步把内容转成公众号能吃的内联样式富文本。这样做的好处是:你不必为了公众号改变写作习惯,也不必每篇都在后台从零排版。
具体操作:把你的 .md 内容粘贴到 Markdown 转公众号工具(或导入 .md / .zip / 文件夹),右侧是真实公众号样式的实时预览,点"复制到公众号"再粘进后台即可。关键在于它把所有样式 inline 化,所以标题、代码块、引用块的样式能完整带过去,不会被微信过滤掉。
Markdown 里的本地图片怎么处理?
公众号排版最烦的一环是图片:你 Markdown 里写的是  这种本地路径,公众号后台并不知道这张图在哪。
转换工具会自动识别这些本地图片路径并提示上传,上传后图片存进浏览器 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 反向回收。抓住"内联样式"这个关键,排版就不会再崩。