返回介绍

3 区段元素

发布于 2023-07-19 19:53:39 字数 7236 浏览 0 评论 0 收藏 0

3.1 链接

Markdown 支持两种形式的链接语法:行内式和参考式。通常参考式的链接更易于阅读 Markdown 源码。

  • 行内式的语法为: [The text of link](http://example.net/ "Title") inline link , 输出 HTML<p><a href="http://example.net/" title="Title">The text of link</a> inline link</p>

    • ]( 之间必须没有空隙,否则 Markdown 生成器无法正确解析
    • title 属性用双引号或单引号括起来
    • 若 url 为同主机的资源,则可以用相对路径 [About](/about)
  • 参考式的语法为: This is [The text of link][link-id] reference-style link

    • [link-id] 为链接标记,名字由你指定,由字母、数字、空白和标点符号组成,但并不区分大小写
    • ][ 之间最多可以有一个空格,否则 Markdown 生成器无法正确解析

    然后在文件的任意地方,你可以将这个标记 link-id 的链接内容定义出来。定义语法为: [link-id]: http//example.com/ "Optinal title here"

    • 链接内容定义必须在某一行的起始处,或者左侧最多可以有 3 个空格。若有 4 个空格则解析为代码区块。
    • ]: 之间必须没有空格,否则 Markdown 生成器无法正确解析
    • title 左侧必须有空格,否则就成为了 url 的一部分
    • title 内容可以用双引号或单引号或圆括号等包围
    • url 与 : 之间可以没有空隔,也可以有空隔
    • tile 属性可以放到下一行,也可以增加一些缩进。因为 Markdown 中段落中的换行符并不影响 HTML 输出

    参考式还有一种隐式链接标记:当省略链接标记时,默认链接标记等于链接文字。如 This is [Google][] website 等价于 This is [Google][Google] website

3.2 强调

Markdown 用星号 * 和底线 _ 作为标记强调的符号。

  • 被星号 * 或者底线 - 包围的文字,在 HTML 中会被 <em> 标签包围。如: *em text* , _em text_
  • 被两个星号 * 或两个底线 _ 包围的文字,在 HTML 中会被 <strong> 标签包围。如: **strong text** , __strong text__
  • 被三个星号 * 或三个底线 _ 包围的文字,在 HTML 中会被 <strong><em> 标签包围。如: ***strong em text*** , ___strong em text___
  • 被四个星号 * 或四个底线 _ 包围的文字,在 HTML 中会被 <strong><strong> 标签包围。如: ****strong strong text**** , ____strong strong text____

其中,星号 * 和底线 _ 与内容之间可以有空隔。

当想在文字某行中同时插入多个星号 * 或者同时插入多个底线 _ 时,需要用反斜线转义。如 \* insert 2 asterisks \*

3.3 删除线

Markdown 中,被两个或两个以上的 ~ 包围的文本或空隔会生成删除线,如 ~~~text~~~ ,其 HTML 输出为 text

  • 删除线的起始 ~ 标记之后的内容必须不能以空隔开始,否则 Markdown 生成器无法正确解析
  • 删除线的结束 ~ 标记之前的内容最好不以空隔结尾,因为这会让空隔中出现删除线,如 ~~text ~~。

3.4 行内代码

Markdown 的行内代码语法简单,即用反引号 ` 来包围行内代码,如 `code text` 。被包围的文字在 HTML 中会被 <code> 标签包围。

  • 开启代码片段的反引号和结束代码片段的反引号前后可以有空隔,也可以无空隔。
  • 代码片段内, & , < , > 等均自动转成 HTML 实体而不 HTML 标记。
  • 代码片段内若出现反引号,则要注意:
    • 若想在行内代码中插入反引号,则可以用多个反引号来开启和结束代码片段。如 ``code text``
    • 若开启代码片段用两个反引号,结束代码片段用一个反引号,则相当于向代码中插入一个反引号。如 ``code text `
    • 若开启代码片段用一个反引号,结束代码片段用两个反引号,则 Markdown 并不会将它解析为 <code> 标签。
    • 若想在代码片段中插入两个反引号,则要留意开启代码片段的反引号之后,结束代码片段的反引号之前要有空隔, 如 `` `code text` ``

3.5 图片

Markdown 用一种与链接相似的语法来标记图片。图片同样也允许两种样式:行内式与参考式。

  • 行内式语法为: ![Alt text](/path/to/img.jpg "Optional title") ,其中:
    • ![ 之间必须没有空隔, ]( 之间必须没有空格, "Optional title" 与 url 之间可以有空隔也可以没有空 隔。
    • "Optional title" 是可选的,可以没有。
    • title 属性用双引号或单引号括起来
  • 参考式的语法为: ![Alt text][img-id] ,其中:
    • ![ 之间必须没有空隔, ][ 之间最多可以有一个空格
    • img-id 为图片参考标记,其要求和语法与链接的参考标记一样。语法为 [img-id]: /path/to/img.ipg "Optional title" 。其中:
      • 链接内容定义必须在某一行的起始处,或者左侧最多可以有 3 个空格。若有 4 个空格则解析为代码区块。
      • ]: 之间必须没有空格,否则 Markdown 生成器无法正确解析
      • title 内容可以用双引号或单引号或圆括号等包围
      • url 与 : 之间可以没有空隔,也可以有空隔
      • tile 属性可以放到下一行,也可以增加一些缩进。因为 Markdown 中段落中的换行符并不影响 HTML 输出

目前无法在 Markdown 中指定图片的宽高,因此如果有这个需求,则可以用 HTML 中的 <img> 标签来达到目的。

3.6 自动链接

Markdown 中的网址和电子邮箱地址会自动转换成链接。

  • 网址的链接文字会与链接地址相同,如 http://www.google.comHTML 输出为 <a href="http://www.google.com"> http://www.google.com</a>

  • 邮件的自动链接会有一个编码转换过程,这是为了垃圾邮件机器人抓取邮箱地址。如 huaxz1986@163.comHTML 输出为

      <a href="&#109;&#97;&#105;&#108;&#x74;&#x6f;&#58;&#104;&#117;&#x61;&#120;&#122;&#x31;&#57;&#x38;&#54;&#64;&#49;&#x36;&#x33;&#x2e;&#99;&#x6f;&#x6d;">&#x68;&#x75;&#97;&#120;&#122;&#x31;&#x39;&#x38;&#x36;&#x40;&#49;&#x36;&#51;&#46;&#x63;&#111;&#109;</a>
    

3.7 脚注

Markdown 中脚注的语法是: text [^note_id]

  • text[ 之间可以有空隔,也可以无空隔。若有空隔,则 HTML 输出文档中脚注的链接文字与 text 之间也会有空格。
  • [^ 之间必须没有空隔,否则 Markdown 生成器无法正确解析
  • ^] 之间出现的文字都是 note_id 的组成部分,包括空隔字符,因此 note_id 最好不要以空隔结尾

在当前 Markdown 文件的某个地方,给出 note_id 的定义,语法是: [^note_id]: foot_note descrption text

  • 必须有 note_id 的定义,脚注的语法才完整,否则 Markdown 生成器无法正确解析
  • [^ 之间必须没有空隔,否则 Markdown 生成器无法正确解析
  • ^] 之间出现的文字都是 note_id 的组成部分,包括空隔字符,因此 note_id 最好不要以空隔结尾
  • ]: 之间必须没有空格,否则 Markdown 生成器无法正确解析
  • :foot_note descrption text 之间可以有空隔,也可以没有空隔

3.8 转义字符

Markdown 支持利用反斜线 \ 来转义字符。如 \# 会转义作为标题起始标记的 # 字符。

3.9 首行缩进

Markdown 可以利用 HTML 中的 &ensp; 在输出的 HTML 中产生一个空格符,利用 &emsp; 在输出的 HTML 中产生两个空格符。 如 &ensp;first lineHTML 输出为 first line, &emsp;first lineHTML 输出为 first line。

3.10 技巧

  • 添加空行可以结束当前的格式状态从而启用新的格式状态,建议改变格式时均添加一个空行
  • 普通段落尽量不用空隔或制表符来缩进,即使其缩进后的 HTML 输出结果看起来是对的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文