Markdown排版进阶指南:从标题层级到导出PDF的完整实践
2026/9/15 9:19:08 网站建设 项目流程

1. 先说结论:Markdown 排版的对象不是“文字”,而是“阅读节奏”

我经常收到同事发来的.md文件,内容很全,但就是不想读。段落像一块砖头一样死死贴在一起,标题一会儿#一会儿####,表格里塞着三行话,代码块没有语言标注,图片路径还是C:\Users\xxx\Desktop\未命名.png。如果你也有类似的文档,那这篇应该能帮到你。

我理解的“Markdown 排版该有的样子”,不是把 Markdown 玩出花来,也不是精通各种语法冷门技巧,而是让读者打开文件的那一刻,能快速抓住三件事:这篇文章在讲什么、哪些是重点、我该从哪一段开始看。Markdown 本身能控制的排版能力其实很有限,没有字距、没有分栏、没有绝对定位,有的只是几十个符号组合出来的结构。但恰恰是这个“有限”,逼着我们把精力放在真正重要的地方:标题层级是否清晰、段落是否简短、列表是否对齐、代码和正文的边界是否明确、导出后是否还能保持可读性。

我把这件事拆成三层来看。

第一层是骨架,也就是标题、段落、列表、引用这些决定文档结构的东西。骨架对了,哪怕风格朴素,文档也不会难看到哪里去。第二层是细节,表格怎么对齐、代码块怎么标注语言、图片路径和 alt 文本怎么写、数学公式怎么排,这些元素在普通文档里出现频率不高,但一旦出现,就特别容易暴露排版问题。第三层是容器,也就是主题、字体、行宽、配色和导出 PDF/Word 时的样式。这一层决定读者最终看到的是编辑器里的源码,还是渲染后的正式文档,也决定了你的 Markdown 是更像一个“待阅读的成品”还是“一团待整理的草稿”。

这篇文章适合所有用 Markdown 写东西的人,无论是写 README、技术博客、笔记、课程讲义,还是拿它做内部日报和项目文档。我会尽量少讲语法本身,多讲为什么这么排、换了工具怎么保住排版、以及我踩过的一些坑。

2. 标题与段落:被浪费最多的第一层排版资产

2.1 标题层级是导航,不是字号装饰

很多人写 Markdown 的时候,标题层级完全凭感觉:想到哪写到哪,#用完了用##,再想不出来了直接加粗。这样写不是不行,但读者体验会非常差。

我建议把标题当成文档的目录来用。正文可以没有目录,但标题本身就是隐形的目录。一个文档有且只有一个一级标题,也就是# 文档标题,它承担的是整篇文章的定位功能。后面的##是一级章节,###是章节下的小节,通常两到三层就足够表达绝大多数内容。层级之间尽量不要跳级,也就是说,别从##直接跳到####,中间可以补一个###,哪怕它的内容只有一句话,也比跳级更符合阅读预期。

还有个细节:标题前后一定要有空行。很多 Markdown 解析器对“标题紧贴正文”这种情况处理得并不一致,尤其在一些严格模式下面,上一行是普通段落、下一行是## 标题时,有可能会被解析成普通文本。更麻烦的是,GitHub 的自动锚点、Typora 的目录、VS Code 的折叠功能,全都依赖标题结构。标题层级一旦乱掉,这些工具全都会跟着乱掉。

标题的长短也有讲究。我见过有人把##写成一句话,甚至两行。这样确实很“醒目”,但目录里会特别冗长。我的习惯是:标题控制在 20 字以内,只写主题,不写结论。比如“环境配置”比“如何在 Windows 和 macOS 上安装并配置开发环境”舒服得多,具体的细节放到正文里讲。

2.2 换行语法:软换行、硬换行、空行分段是三种完全不同的东西

Markdown 里最容易被误解的,大概就是换行规则。很多人从 Word 转过来,习惯按一下回车换一行,结果渲染出来两行还是粘在一起。我第一次接触 Markdown 时也被这个问题卡了很久。

搞清楚这个,你的排版已经好了三分之一。

  • 软换行:在源码里换行,但渲染后不会产生新段落,只是变成空格。普通编辑器里,直接回车产生的就是软换行。
  • 硬换行:在行尾加两个空格再回车。渲染后,这一行后面会有一个换行符,但不会产生新的段落间距。
  • 空行分段:两段之间留一个空行。这个才是避免“段落像砖头”的关键。

实际写作中,空行分段是最重要的。每一段表达一个相对独立的意思,段与段之间有空行,阅读时才会有呼吸感。有些人写 Markdown 习惯把一大段连续写十几行,中间一个空行都没有,渲染出来就是一堵墙,读者瞬间就不想读了。

我还有个小习惯:同一个段落内部,尽量控制在四到六行,也就是中文大约两百字以内。如果一段超过八行,我就会看看能不能拆成两段。并不是说长段落一定错,但作为博客、技术文档、协作笔记这类需要扫读的内容,短段落明显更友好。真正写严肃报告或正式文档时,可以把段落拉长些,但那是另一种文体,不是 Markdown 排版的主要场景。

2.3 列表是结构化的最小单元

列表在 Markdown 里最容易写,也最容易被写乱。无序列表用-,有序列表用1.,嵌套列表用两个或四个空格缩进。这个规则不难,但很多人写出来还是乱。

我见过最典型的几个问题:

  • 列表项里塞了完整段落,每条四五行,看着比正文还累;
  • 有序列表和无序列表混用,一会儿1.一会儿-
  • 列表项末尾动不动就加逗号、分号,甚至还有中文顿号。

我的建议是:每条列表控制在两行以内,内容多就拆成“列表项 + 缩进段落”的结构。如果列表里需要放代码块,一定要保证代码块的外围缩进和列表项一致,否则代码块会被解析器踢出去,或者代码块本身带上奇怪的多余缩进。

加粗和斜体的使用也要克制。Markdown 里的加粗应该用来标记“读者需要扫一眼就抓住的词”,比如按钮名、函数名、核心结论,而不是把整整一句话都加粗。整段加粗等于没有加粗,这件事在 Word 里成立,在 Markdown 里更成立。

3. 进阶元素的排版纪律:表格、代码块、图片、引用、公式

3.1 表格:先让内容对齐,再说美观

Markdown 表格写起来有点反人类。它要用管道符|和分隔线把表头、单元格拼出来,源代码里还会因为对齐问题变得歪歪扭扭。但表格恰恰是 Markdown 排版里最值得花精力处理的东西,因为它一旦排好,信息密度极高。

先提一个基础语法问题。写表格时,如果单元格内容里包含管道符|,必须用反斜杠转义,写成\|,否则表格就会被拦腰截断。我写过一篇关于正则表达式的文档,里面全是类似a|b的内容,当时没转义,导出的 PDF 里整个表格碎了一地,后来每次都会检查这一条。

表格里的文字尽量短。一个单元格里如果超过 20 个字,读者读起来就会非常累。如果你发现某个单元格内容特别长,那通常不是表格的问题,而是这段内容本不该放在表格里。把它移到表格下方的段落,或者拆成多行,都比硬塞进去更合适。

列对齐的方式也有讲究。表头分隔线里,:---是左对齐,---:是右对齐,:---:是居中。数值列适合右对齐,短文本列适合居中,长文本列适合左对齐。不要所有列都用同一种对齐方式,那样表格会显得死板。

最后是表格的宽度。我不建议弄一个七八列的宽表格,因为大多数 Markdown 渲染器在小屏设备上不会自动横向滚动,太宽的表格会直接溢出页面。如果你真想做一个宽表格,比如参数对照表或环境变量说明,建议拆成多个小表,或者用链接把详细内容引到后面章节。

3.2 代码块:语言标注、行内代码和代码块的边界

代码块是 Markdown 里另一个高频元素。它的排版问题集中在两点:漏掉语言标注,以及滥用代码块。

漏掉语言标注的后果很直接:代码高亮失效。一坨代码没有颜色,看起来就是密密麻麻的字符,哪怕内容是对的,阅读成本也高出一截。正确写法是在围栏代码块的起始三个反引号后面写上语言名,比如```python```bash```json。如果你在 VS Code 或 Typora 里写,语言名还有自动补全,这是成本最低的一项排版升级。

我还喜欢在技术文档里使用diff语言标注,尤其是在展示“改动建议”的时候。```diff配合以-+开头的行,渲染后会自动变成红绿两色,一眼就能看出哪里删了、哪里加了。这个技巧在看代码审查文档、PR 说明和教程里特别好用。

行内代码和代码块的边界,我建议这样掌握:文件名、命令、变量名、函数名、参数名,用反引号包裹的行内代码;多行代码、配置文件全文、命令行执行过程,用围栏代码块。不要把一句话里的名词整个变成代码块,那是排版灾难。

代码块内部的语言选择也要注意。JSON、YAML、TOML 这类配置格式,直接标注对应语言名即可。如果代码里没有语法,比如一段纯文本的日志,我倾向于不标注语言,或者用text,避免高亮插件错误地去解析普通文本。

3.3 图片路径与 alt 文本:排版里最容易被忽略的细节

图片在 Markdown 里的排版问题,常常不在渲染效果,而在路径管理。我记得早年间写过一份文档,图片全都放在桌面,结果从同事电脑上一打开,图全裂了。后来我养成一个习惯:每个文档单独建一个assets目录,图片全部丢进去,正文里统一用相对路径引用。这样整个文档目录拷到哪里都能正常显示。

Markdown 图片的语法是![alt 文本](图片路径)。alt 文本不是可有可无的,它在图片加载失败时起到占位说明作用,同时也是无障碍阅读的基础。我建议 alt 文本写图片内容的简要描述,而不是写“图片”“截图”这种废话。比如“配置环境变量后的终端输出”就比“图片1”强得多。

还有一个常见需求是控制图片尺寸。Markdown 原生语法不支持设置宽高,所以不同工具会给出不同的扩展方案。Typora 支持在图片路径后面写{width=600},GitHub 和很多渲染器支持在img标签里写width属性,例如:

<img src="assets/demo.png" width="600" alt="示例图">

如果你要导出 PDF,这一点尤其重要。一张好几兆的截图直接铺满整页,常常会打乱分页,后面会出现大段空白。提前把图片压缩到合适尺寸,再统一设置宽度,导出效果会稳定很多。

3.4 引用块是强调工具,不是装原文的筐

Markdown 的>引用块,很多人的用法是把一大段文字、邮件内容甚至聊天记录整个粘进去。这种排版方式下,引用块看起来像一个巨大的灰色色块,很难受。

我理解引用块的作用是“把某一段话从正文里单独拉出来强调”。适合放的内容包括:结论摘要、注意事项、来自其他文档的短引用、经典语录。一两句就够,不要超过四五句。如果你想引用一段很长的原文,更合适的做法是用正文段落正常展示,或者把长文拆成小段,一段一段引用。

Obsidian 里有一个> [!note]的 callout 语法,比普通引用块更醒目,能做提示、警告、成功等不同样式。GitHub 上虽然没有这套语法,但可以通过> **注意**这种方式模拟一个带加粗标题的提示块。这些都是在普通引用块基础上的优化,但核心原则不变:少而精。

3.5 数学公式:从$$$的排版规则

写数学公式,Markdown 本身是不支持的,需要依赖 MathJax 或 KaTeX 这类渲染引擎。Typora、Obsidian、GitHub 阅读模式都内置了支持,但写法上有一些差异。

行内公式用单个美元符号包裹,例如$e^{i\pi} + 1 = 0$。块级公式用两个美元符号包裹,单独成段,例如:

$$ \int_0^1 x^2 dx = \frac{1}{3} $$

这里面最需要注意的是:行内公式不要嵌套在中文标点中间太紧。比如“其中 $x$ 表示长度”这种写法没问题,但“其中$x$表示长度”这样的,在部分渲染器里会把紧邻的中文和公式黏在一起,看起来很不整齐。我习惯在公式前后各留一个空格,肉眼可见地舒服很多。

块级公式前后空行、独立成段,是必须养成的习惯。公式本身不要和正文混在一个段落里,否则导出的 PDF 可能会出现奇怪的垂直对齐问题。

还有一个容易踩的坑是反斜杠转义。Markdown 里反斜杠本身是转义字符,如果你写 LaTeX 命令时常需要处理\{这类内容,或者是编写包含下划线、星号的公式,偶尔会被 Markdown 提前处理掉。通常的解决办法是给公式指定独立的语言类型,或者用更完整的$$块并检查源码里有没有意外的转义。

4. 编辑器、导出和“任意格式转 Markdown”的真实工作流

4.1 三大编辑器:Typora、VS Code、Obsidian 怎么选

Markdown 排版离不开编辑器。我能连续用很多年的主力编辑器有三个。

Typora 是那种特别适合写文章的编辑器:你在里面输入#加空格,立刻变成标题样式;输入|就会生成表格;所见即所得。它的默认主题已经足够美观,导出 PDF 也很方便。它是付费商业软件,但如果你的预算有限,可以先试用官方版本,或者把 Markdown 编辑器换成完全开源的替代品。我身边不少人用 VS Code + 预览插件,就已经能完成绝大多数写作任务。

VS Code 本身不是专门的 Markdown 编辑器,但通过插件组合,它是排版自由度最高的环境。我的常用组合是:Markdown All in One(负责目录、列表、快捷键)、markdownlint(负责格式规范检查)、Markdown Preview Enhanced(负责预览和导出)。这三个插件装完,VS Code 的 Markdown 体验可以超过很多专用编辑器。

Obsidian 更适合做知识库,它把 Markdown 当成自己的底层存储格式,所有内容都是本地.md文件。它的双链、标签、关系图谱在长时间积累笔记时很有价值。但我必须提醒一句:Obsidian 的双链语法[[...]]和 callout 语法,换到别的 Markdown 渲染器里是不会生效的。如果你写的东西将来要发到 GitHub、博客或转交他人,尽量少用这些工具专属语法。

4.2 VS Code 把 Markdown 导出 PDF:PrinceXML 这条路怎么走

“VS Code 要将 Markdown 文件导出 PDF,需要下载 PrinceXML,如何操作”这个问题,在网络搜索里出现频率极高。我实际走了一遍流程,在这里分享下我的经验。

如果只是导出 PDF,我的第一推荐其实是 Markdown PDF 插件。安装完插件后,打开.md文件,按Ctrl+Shift+P,输入 “Markdown PDF” 并选择 “Export (pdf)”,几秒后就会在同一个目录下生成 PDF 文件。这个插件的默认行为是用 Chromium(通过 Puppeteer)做渲染,对大多数人的 Markdown 文档来说效果已经很好,而且不需要手动安装任何其他软件。

但有些人希望用 PrinceXML 作为渲染引擎,理由是它在 CSS Paged Media 方面的支持更好,可以做页眉页脚、页码、页边距这些更精细的控制。操作起来并不复杂。先去官网把 Prince 下载安装好,然后打开 VS Code 的设置,搜索markdown-pdf.engine,把值从puppeteer改成prince。接着在设置里找到markdown-pdf.executablePath,把它指向 Prince 的可执行文件路径。之后再执行 “Export (pdf)”,插件就会调用 Prince 完成渲染。

用 Prince 的好处是分页控制更稳,特别适合那种需要生成正式报告的场景。但代价是:一旦文档里用了非标准 HTML 标签或非常规 Markdown 扩展语法,Prince 的渲染结果可能会和预览时不一样。所以我通常的做法是:先用标准 Markdown 语法写,导出前在预览里检查一遍,再选择用 Chromium 还是 Prince。

4.3 Markdown 转 Word:Pandoc 与 Coze 工作流

通常需要把 Markdown 转成 Word,是因为对方不认 Markdown。这部分我最常用的工具是 Pandoc。它是一个命令行文档转换工具,一条命令就能完成转换。

pandoc input.md -o output.docx

默认情况下,Pandoc 生成的 docx 会套用一套相当朴素的 Word 样式,适合快速交稿。如果你希望 docx 里的标题、字体、颜色和团队模板一致,就需要先生成一个参考模板:

pandoc -o custom-reference.docx --print-default-data-file reference.docx

然后用 Word 打开custom-reference.docx,修改里面的样式,保存后再用 Pandoc 转换:

pandoc input.md -o output.docx --reference-doc=custom-reference.docx

如果你不习惯命令行,或者想把这种转换能力集成进自动化工作流里,也可以考虑用 Coze 这类编排平台来做。流程大致是:接收 Markdown 文本,拆解标题和段落,用插件把 Markdown 转 HTML,再把 HTML 转成带样式的 docx。本质上 Coze 只是把 Pandoc 或类似转换器封装成了一系列节点,核心逻辑并没有变。

我自己试过一条很简单的 Coze 工作流:用户发一个 Markdown 文件,工作流里的代码节点调用 pandoc 或第三方转换服务,输出 docx 保存到对象存储,最后返回下载链接。这个流程对非技术用户非常友好,但要注意一点:如果 Markdown 里有复杂的表格、数学公式或自定义 HTML,转换结果经常需要人工检查,别指望工作流全自动搞定一切。

4.4 PDF 和 Word 转回 Markdown:反向操作没那么美好

有人问“任何格式转换为 Markdown 开源项目怎么做”,我得先泼一盆冷水:从 PDF 转 Markdown 目前没有一把万能钥匙。

Word 转 Markdown 相对简单一些。Pandoc 可以直接把 docx 转成 md,但生成的 Markdown 会有大量的换行、缩进以及样式残留,需要再次清洗。我自己常用的是先把 docx 用 Word 或 LibreOffice 另存为纯文本,再用回归格式化手段整理标题和段落,但这一步对没有技术背景的读者来说成本偏高。

PDF 转 Markdown 则更麻烦。如果一个 PDF 是文本型 PDF,也就是可以选中复制文字的,可以用pdftotext或一些开源工具先提取文本,再用规则正则整理。但遇到扫描版 PDF,只能依赖 OCR,而 OCR 对排版复杂文档的效果时好时坏。我的通用建议是:如果需要“从任意格式转 Markdown”,把 Pandoc 作为第一候选,把大模型作为兜底辅助。先让工具把文档转换成结构清晰但不完美的 Markdown,再让 AI 整理标题层级和段落,往往比直接让 AI 从 PDF 里“凭空”生成 Markdown 更靠谱。

4.5 顺带说说 AI 翻译为什么能保持排版

“AI 翻译保持原有排版的原理”这个问题,我在用过几次带翻译功能的工作流之后,才真正体会到里面的门道。

Markdown 文档在 AI 看来,其实是一组“标记 + 文本”的混合体。比如# 标题里的#是标记,标题是文本;表格里的管道符是标记,单元格内容才是文本。现代大语言模型在训练过程中见过大量带 Markdown 格式的数据,已经学到了这种模式。所以当它翻译时,会倾向于保留#*|这些标记不变,只替换其中的自然语言文本。

但这不是 100% 可靠的。表格单元格比较多的时候,模型偶尔会把管道符数量弄错,导致整个表格结构被破坏;翻译长段落时,也可能把换行符位置改掉。所以我的做法是:每次翻译完,都要在 Typora 或 VS Code 里预览一遍,重点检查标题层级、表格行列数和代码块完整性。排版信息在 AI 眼里是“结构”,结构一旦丢了,内容再漂亮也是白搭。

5. 审美缺省值:主题、字体、行宽和配色不必从零开始

5.1 改主题不如用对默认主题

很多人在开始用 Markdown 编辑器时,第一件事就是折腾主题。我从折腾里学到的教训是:主题只解决 20% 的观感问题,剩下的 80% 取决于内容结构和排版习惯。

以 Typora 为例,默认的 GitHub 主题就是一个很好的起点,它的标题、代码块、引用块样式都比较克制,不会喧宾夺主。VS Code 里我也倾向先装一个和 GitHub 风格接近的主题,别一上来就换深色、高饱和的背景。写作编辑器是每天要看几个小时的东西,越安静越好。

Obsidian 的主题生态更丰富,可以玩出很多花样。但同样,如果这些主题里的正文字体太大、标题间距太小,文章读起来反而累。审美的缺省值应该是“内容能见度”优先,而不是“外观冲击力”优先。

5.2 行宽和段间距是可以量化的

排版里最容易被忽略、但影响最大的一个量是行宽。在浏览器和桌面应用里,一行文字太长,读者的视线从行尾跑到下一行行首时会很累;一行太短,又会频繁换行,让阅读节奏变得零碎。我的经验值是:中文正文的行宽控制在 700 到 800 像素之间,大约相当于一行 40 到 50 个汉字。Typora 在设置里直接调 “Max Width”,VS Code 的 Markdown 预览也可以设置markdown-preview-enhanced.previewTheme以及自定义的.markdown-preview { max-width: 800px; }

段间距我一般用 1.5 倍行高和 8 到 12 像素的段后距离。标题和正文之间的间距要比段间距更大一些,这样才能让人一眼看出层级关系。这些值你不需要背,但如果某个渲染结果看起来不舒服,优先去调整这三个变量:行宽、行高、段间距。

5.3 中文字体与西文等宽字体的搭配

Markdown 文档里经常混排中文和英文,字体的选择直接决定阅读的连贯性。很多 Windows 系统里的旧默认字体在渲染中文时比较生硬,英文字体和中文字体的基线高度不一致,混排时看起来歪歪扭扭。

我的搭配习惯是:正文中文字体优先选用思源黑体、思源宋体这类开源字体,西文部分搭配 Inter、Source Sans 等无衬线字体。代码块用等宽字体,比如 JetBrains Mono 或 Fira Code,这些字体对0O1l的区分做得比默认的宋体好很多。

如果你用的是 Typora,主题里可以自定义字体配置;VS Code 里需要在设置的markdown-preview-enhanced.fontFamilyeditor.fontFamily配置上分别写中英文字体。一个简单的做法是:

"editor.fontFamily": "'JetBrains Mono', 'Noto Sans CJK SC', monospace"

这样英文和代码用等宽字体,中文回落使用思源黑体。字体文件过大或者加载慢的问题,在网络不好的环境下,比排版问题更容易影响体验,所以如果只是内部文档,建议优先用系统自带的微软雅黑或者苹方,效果稳定而且零成本。

5.4 配色:对比度优先于花哨

Markdown 渲染的配色,总原则是“黑白灰为底,单一色点缀”。正文用接近黑色的深灰,比如#24292e;背景用纯白或极浅的灰,比如#ffffff#f6f8fa;链接用一个中等深度的蓝色,避免用纯蓝亮蓝。代码高亮的配色不要太花,选择一个低饱和的暖色系或冷色系,整体保持一致即可。

如果文档要导出 PDF,还要考虑打印场景。打印时深色背景通常会浪费墨水,也不利于阅读。我一般会为主题里的代码块单独设一个浅灰背景,正文里不出现大面积深色色块。这些都可以通过在 Typora 的base.user.css或 VS Code 的自定义 CSS 里覆盖实现。

6. 可以直接抄的排版验收清单

6.1 一份自查清单

每次写完 Markdown,在发布或导出之前,我会按照下面的清单过一遍。如果你的文档能全部通过,那排版就已经达到一个很稳妥的水平了。

  • [ ] 全文只有一个#一级标题,剩余层级从##开始,不跳级;
  • [ ] 每个标题前后都有空行,标题本身是一行短句;
  • [ ] 段落之间有空行,单个段落不超过六行;
  • [ ] 列表项不塞长段落,嵌套层级用统一缩进;
  • [ ] 代码块标注了语言类型,行内代码只包裹命令、文件名和变量名;
  • [ ] 图片放在统一的assets目录,路径用相对路径,alt 文本有实际描述;
  • [ ] 表格单元格简短,表头分隔线对齐合理;
  • [ ] 引用块不超过三行,用于强调而不是粘贴原文;
  • [ ] 数学公式前后有空格,块级公式独立成段;
  • [ ] 编辑器预览效果正常,导出 PDF/Word 后无分页错乱或溢出现象。

6.2 从“能看”到“好看”的示例改动

与其抽象地讲规则,不如直接看一个例子。

这是很多人会写出来的“能看”版本:

## 环境配置 首先执行npm install安装依赖然后打开vscode按F5调试 ### 目录结构 src/ lib/ test/

这段内容有几个典型问题:标题后面没有空行,正文和标题粘在一起;安装步骤和调试步骤没有被明确分成不同段落;目录结构只是一行孤零零的路径,读者不知道它们分别是什么。按我的排版习惯,会改成下面这样:

# 项目开发指南 ## 1. 环境配置 先安装依赖: ```bash npm install

安装完成后,打开 VS Code,按F5启动调试。

2. 目录结构

  • src/:前端源码
  • lib/:业务工具库
  • test/:测试用例
改动后,读者扫一眼就从标题、代码块、列表里拿到了全部关键信息。排版并没有让你的内容变多,它只是让内容之间的逻辑关系变得更明确。 ### 6.3 我的个人技巧与扩展想法 最后分享几个我在实际使用中沉淀下来的小技巧。 我在本地存了一个 Markdown 模板,每次新建文档都会从模板开始。模板里只有标题骨架、一个表格、一个代码块、一个引用块,我把它当成“格式提示器”,写的时候看到哪些位置该放什么,自然就不会把结构写乱。这个模板你也可以自己建,不需要复制别人的,关键是建立触发自己排版习惯的锚点。 另一个建议是安装 markdownlint。VS Code 里的 markdownlint 插件会根据一系列规则实时标出格式问题,比如标题前缺少空行、一个文档里出现了多个 H1、列表标记不一致等。刚开始会觉得它烦人,但用久了之后,你会形成条件反射,写出来的 Markdown 永远都在一种相对规范的轨道上。 如果你在团队里经常协作写 Markdown 文档,不妨把这份验收清单稍作修改,放进仓库的 `CONTRIBUTING.md` 里。这样大家写文档的标准是统一的,Review 时也不需要反复指出同一个格式问题。 Markdown 排版不是一个值得天天研究的高级技巧,它是一个让人把注意力从排版本身移开、回到内容上去的护栏。把结构做扎实、把细节做规则、把导出路径跑通,你的文档就已经比大多数人的漂亮了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询