markdown escape setext h1

时间:2016-01-12 10:29:52

标签: escaping markdown

以下行是标记setext标题,使用单个前导backslash进行转义,此帖子被解析为降价,因此它是一个很好的展示,它适用于h2级别标题,但h1级别标题失败。

标记解析之前的文本,换行没有尾随空格:

This is an H1
\=============

This is an H2
\-------------

markdown解析的文本输出:

这是H1 \ =============

这是一个H2 -------------

我知道降价的风味问题,原始缺乏规格和实施产生它们。但是,如果可能的话,在降价时逃避h1setext标题的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

这里有很多事情发生。

首先,由于额外的字符,这两行都不被识别为setext标题。换句话说,您可以使用任何不是=-的字符,这会导致解析器将文本视为段落而不是标题。

其次,连字符(-)是escapable character,而等号(=)则不是。但是,此处理很可能是作为内联标记完成的,而不是在块级别(解析标题与段落时)。所有其他处理完成后,字符串\-将替换为-。换句话说,它对于2级标题是有效的。

如果你想要horizontal rules,那么你需要在行之前有一个空行,这样就不需要转义任何东西(或者转义过程也会导致解析器不能将该行识别为水平规则) 。顺便说一句,只有连字符(下划线和星号),而不是等号,可以用于水平规则,这就是为什么不能避免等号。

如果您只想在段落中显示原始字符,请避免使用换行符,换行符也不会显示在浏览器中。像这样:

This is an H1 =============

This is an H2 -------------

如果您希望该行实际显示在单独的行中,那么您可以使用一些原始HTML来插入<br>标记:

This is an H1<br>=============

This is an H2<br>-------------

甚至可能:

This is an H1
<br>=============

This is an H2
<br>-------------

请注意,在最后一种情况下,您可以轻松阅读Markdown,<br>标记与反斜杠完成相同的操作。它导致解析器不将其视为setext标头。但是也可以在各个级别上提供一致的结果,甚至可以保留输出中的换行符。