以下行是标记setext
标题,使用单个前导backslash
进行转义,此帖子被解析为降价,因此它是一个很好的展示,它适用于h2
级别标题,但h1
级别标题失败。
标记解析之前的文本,换行没有尾随空格:
This is an H1
\=============
This is an H2
\-------------
markdown解析的文本输出:
这是H1 \ =============
这是一个H2 -------------
我知道降价的风味问题,原始缺乏规格和实施产生它们。但是,如果可能的话,在降价时逃避h1
级setext
标题的正确方法是什么?
答案 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标头。但是也可以在各个级别上提供一致的结果,甚至可以保留输出中的换行符。