You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用pandoc将reStructuredText转Markdown时标题转换不符合预期

这是因为你对reStructuredText(rst)的标题级别规则,以及pandoc默认的Markdown转换逻辑不熟悉,pandoc的转换结果是完全符合规范的。

1. rst的标题级别不是固定绑定下划线字符

rst里的标题级别不取决于你用的是=/-/+这类字符,而是由文档中首次出现的下划线样式的顺序来决定优先级:

  • 第一个出现的下划线样式(你的例子里是=)对应最高级别(一级标题)
  • 第二个出现的(你的例子里是-)对应二级标题
  • 第三个出现的(你的例子里是+)对应三级标题

2. pandoc默认的Markdown转换规则

Markdown原生的Setext标题(即文本下方加下划线的格式)只支持两级:=对应一级,-对应二级,没有第三级的Setext格式。所以pandoc默认会做如下处理:

  • 将rst中的前两级标题,转换成对应的Setext样式Markdown标题(也就是你看到的Heading 1加=、Heading 2加-的格式)
  • 第三级及以下的rst标题,自动转为Atx样式(即#开头的格式),也就是你看到的### Heading 3

3. 如何得到你预期的全Atx格式标题

如果你希望所有标题都转换成#开头的Atx格式,只需要在转换命令中添加--markdown-headings=atx参数:

pandoc test.rst -f rst -t markdown --markdown-headings=atx --output test.md

执行这个命令后,输出结果就会和你预期的完全一致。

内容的提问来源于stack exchange,提问作者buhtz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 16:20:35