首页 > 解决方案 > Markdown 子标题被解释为纯文本

问题描述

我有一个 Markdown 文档,其中我的标题被奇怪地解释了。我在网上找不到任何解决方案,因为我对哪些关键词对我有帮助感到困惑。

这是我的问题:

我有 2 级标题(atx 样式),并在最后一个 2 级标题内嵌套了 3 级标题。这是这样的:

## First title

... lorem ...

## Second title

... lorem ...

### Sub-title 1

... lorem ...

... 等等。

由于某些原因,字幕不会被这样解释。我尝试修改级别(h2 和 h3 -> h1 和 h2),并尝试将副标题移动到文档中的其他位置。当我尝试从头开始重现该问题以在此处发布问题时,我找不到成功重现此行为的方法。

我使用 Pandoc 将 Markdown 转换为 HTML5,因此我开始使用“pandoc”作为搜索关键字进行搜索,但没有任何结果。然后我注意到在 Visual Studio Code 中,标题也不会在“大纲”面板中正确解析。我得出的结论是,这可能是我的文档的问题,而不是我没有遵守的 Markdown 规则。

vs代码不显示子标题大纲 pandoc的html输出

标签: encodingmarkdown

解决方案


好的,所以我在写这篇文章时找到了解决方案。无论如何,我决定发布它,以便其他人可以从我调试此问题的时间中受益。

我用十六进制编辑器打开了我的文件,这是我###标题附近的内容:

bless hex 编辑器下的文件

23对应于三#,而53对应于大写S。但在这两者之间,我有C2A0C2是 "Â" 并且A0是一个不间断的空格。诀窍是一个规则的空间,0A所以乍一看并不明显。

这就是 Markdown 解析器无法将我的行解释为标题的原因。事实上,我只需要用常规空间替换非中断空间,它就可以正常工作。

vs 代码正确显示子标题大纲


推荐阅读