1

tmp.md:

Choices for blank 91:       __A__:  pa>pb      __B__:  pa<pb      __C__: pa==pb      __D__: pa<>pb

Choices for blank 92:       __A__:  pa<>pb      __B__:  pa<pb      __C__:  pa>pb      __D__: pa==pb

使用 'grip --export tmp.md' 编译并得到意想不到的结果:

Choices for blank 91: A: pa>pb B: papb

Choices for blank 92: A: pa<>pb B: papb D: pa==pb

看起来 GRIP 将 < 视为元字符。但是markdown手册没有这么说?我在这里错过了什么吗?

4

1 回答 1

2

正如规则所述:

对于 Markdown 语法未涵盖的任何标记,您只需使用 HTML 本身。无需为它加上前缀或定界以表明您正在从 Markdown 切换到 HTML;您只需使用标签。

因此,Markdown 原封不动地通过<>通过。但是,由于这些字符是 HTML 标记分隔符,您的浏览器会将 a<和 a之间的任何内容解释>为 HTML 标记,并且不会显示它。当然,如果您从不打开标签(带有),则浏览器将忽略<关闭标签( )。>因此,当使用 a<作为纯文本字符时,最好使用 HTML 实体以确保浏览器看到它:(&lt;提示:L ess T han => &lt;=> <

因此,要使用您的示例输入:

Choices for blank 91:       __A__:  pa>pb      __B__:  pa&lt;pb      __C__: pa==pb      __D__: pa&lt;>pb

Choices for blank 92:       __A__:  pa&lt;>pb      __B__:  pa&lt;pb      __C__:  pa>pb      __D__: pa==pb

输出将如下所示:

空白 91 的选择: A : pa>pb B : pa<pb C : pa==pb D : pa<>pb

空白 92 的选择: A : pa<>pb B : pa<pb C : pa>pb D : pa==pb

请注意,这是您的浏览器的行为。Markdown 无法改变这一点,除非它不允许/支持在 Markdown 文档中使用原始 HTML。

当然,&lt;每次你想要一个<字符时都输入并不理想。通常,包含此类字符的文本可以归类为“代码”。因此,通常最好将其包装在代码跨度(当它嵌入到文本中时)或代码块中(当所有代码由一行或多行的块组成时)。

For example, this paragraph contains `<>` characters.

上述 Markdown 将导致生成以下 HTML:

<p>For example, this paragraph contains <code>&lt;&gt;</code> characters.</p>

请注意,尖括号已为您转换&lt;&gt;为(并包含在<code>标签中)。浏览器会将其呈现为:

例如,此段落包含<>字符。

于 2016-04-14T23:42:23.190 回答