针对特殊字符的自动转义

在 HTML 中,有两个字符需要进行特殊处理:<&。左尖括号用于开始标记;& 符号用于表示 HTML 实体。如果要将其用作字面量字符,您必须将其作为实体进行转义(例如,<&)。

尤其是 & 符号,对于网页编写者来说尤其如此。如果您想撰写“AT&T”内容,则需要写上“AT&T”。您甚至需要对网址中“&”符号进行转义。因此,如果您想链接到:

http://images.google.com/images?num=30&q=larry+bird

您需要将网址编码为:

http://images.google.com/images?num=30&q=larry+bird

href 属性中。毋庸置疑,这很容易忘记,并且很可能是在其他标记明确的网站上最常见的 HTML 验证错误来源。

借助 Markdown,您可以自然地使用这些字符,为您处理所有必要的转义。如果您使用 & 作为 HTML 实体的一部分,& 会保持不变;否则,& 会转换为 &

因此,如果您想在文章中添加版权符号,则可以编写:

©

而 Markdown 则置之不理。但是,如果您写的是:

AT&T

Markdown 会将其翻译成:

AT&T

同样,由于 Markdown 支持内嵌 HTML,因此如果您使用尖括号作为 HTML 标记的分隔符,Markdown 会对其进行处理。但是,如果您写的是:

4 < 5

Markdown 会将其翻译成:

4 &lt; 5

不过,在 Markdown 代码 span 及代码块内,尖括号和 & 符号一律会自动编码。这样,您就可以使用 Markdown 轻松编写 HTML 代码。(这与原始 HTML 恰好相反,它是一种关于 HTML 语法的可怕格式,因为示例代码中的每个 <& 都需要转义。)

反斜杠转义

Markdown 可让您使用反斜杠转义来生成文字字符,这些字符在 Markdown 的格式语法中具有特殊含义。例如,如果您想用实际星号(而不是 HTML <em> 标记)将字词括起来,可以在星号前使用反斜杠,就像这样:

\*literal asterisks\*

Markdown 为以下字符提供反斜杠转义:

\   backslash
`   backtick
*   asterisk
_   underscore
{}  curly braces
[]  square brackets
()  parentheses
#   hash mark
+   plus sign
-   minus sign (hyphen)
.   dot
!   exclamation mark