【问题标题】:< has special meaning in markdown?<在markdown中有特殊含义吗?
【发布时间】:2017-03-03 05:09:40
【问题描述】:

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 将

【问题讨论】:

  • 为此片段创建的 HTML 是什么?

标签: markdown grip


【解决方案1】:

作为rules 状态:

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

因此,Markdown 会原封不动地通过 &amp;lt;&gt;。但是,由于这些字符是 HTML 标记分隔符,您的浏览器会将 &amp;lt;&gt; 之间的任何内容解释为 HTML 标记,并且不会显示它。当然,如果您从不打开标签(&amp;lt;),那么浏览器将忽略结束标签(&gt;)。因此,当使用 &amp;lt; 作为纯文本字符时,最好使用 HTML 实体以确保浏览器看到它:&amp;lt;(提示:Less T han => &amp;lt; => &amp;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:paC:pa==pb D:papb

空白92的选择:A:papb B:paC:pa>pb D:pa==pb

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

当然,每次需要 &amp;lt; 字符时都输入 &amp;lt; 并不理想。通常,包含此类字符的文本可以归类为“代码”。因此,通常最好将其包装在 code span(嵌入文本时)或 code block(所有代码都包含一行或多行代码块)中。

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

上面的 Markdown 将导致生成以下 HTML:

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

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

例如,此段落包含&lt;&gt; 个字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 2016-04-01
    • 2013-04-18
    相关资源
    最近更新 更多