Markdown 1.0.1
阅读原文时间:2023年07月09日阅读:1

简介

Markdown 是由 John Gruber 于2004年开发一种轻量级标记语言,它是一个面向web作者的 text-to-HTML 转换工具。Markdown编辑器允许您使用纯文本格式编写,然后将其转换为结构有效的XHTML或者HTML,再用各种CSS美化就可以显示出不同的样式。https://daringfireball.net/projects/markdown/dingus 网站可以查看Markdown转换后的HTML源码。

Markdown的格式化语法的主要设计目标是使其尽可能具有可读性,Markdown格式的文档应该可以以纯文本发布,而不是看起来像是由许多标签或格式化指令组成。Markdown语法的最大灵感来源是纯文本电子邮件的格式。Markdown是自由软件,可以在BSD-style的开放源码许可下使用。

标准化

Markdown 的语法分为标准语法和扩展语法。Markdown 标准语法自从 V1.0.1(2004)后就再没有更新了,标准语法适用于所有 Markdown 工具。扩展语法可能每个编辑器都不一样,这是由于Markdown 标准语法功能有限,很多需求无法被满足,因此产生了许多第三方的扩展语法,比较流行的扩展语法是 Github 风格的:GitHub Flavored Markdown(GFM)。大部分第三方的扩展语法并不互相兼容,因此若干来自 GitHub、Reddit、Stack Exchange 以及开源社区的重要代表组成了一个小型非公开工作组,打算将 Markdown 标准化,并为了进一步的改进开放该标准。工作组发布了 Standard Markdown 并且有专门的网站 standardmarkdown.com,但发布几天后应 John Gruber 的要求被迫关闭网站和将 Standard Markdown 改名为CommonMark,这个可以参考http://commonmark.org/。

编辑器

Typora是免费的,支持 Github 风格的扩展语法GFM。

MarkdownPad2免费版只支持标准语法,专业版支持扩展语法,但是要收费。

语法

HTML特殊标签与字符

Markdown 不是想要取代 HTML,它的语法很少,只对应 HTML的一小部分。HTML 是一种发布的格式,Markdown 是一种书写的格式。不是Markdown语法范围内的HTML标签,可以直接在文档中书写。

在HTML块状元素之间的Markdown文本不会被转换为HTML,例如

**测试**
会保持原样,但是在行内元素之间的Markdown文本会被转换为HTML,例如 **测试** 会被转换为

测试

在 HTML 中,某些字符是预留的,例如 < 和 >,如果直接使用,浏览器会误以为它们是标签的一部分。要正确显示这些字符,必须在HTML中使用字符实体,比如 > 号的字符实体为 【<】 或 【<】。在Markdown文档中书写的 < 和 & 会被转换为 【<】 和 【&】,如果书写的是 < 则会保持原样。

段落

段落是指HTML中的

标签。空行是指行内什么都没有,或者只有空格和制表符。如果行与行之间有一个以上的空行,则会被转换为不同的

标签,即被视为不同的段落,否则被视为同一段落。

例如:

1

2

3

转换为:

1 2

3

换行

换行是指HTML中的
标签。如果想在同一个段落中换行,那么需要在上一行的结尾输入两个以上的空格然后回车,Markdown会在上一行的结尾插入

标题

标题是指HTML中的

标签等。Markdown支持两种格式的标题语法。

第一种是在标题的下一行使用任何数量的=表示一级标题,任何数量的-表示二级标题,最多就两级。

例如:

标题1

=

标题2

-

转换为:

标题1

标题2

第二种是使用#,格式为#标题内容,#的数量表示标题的级别,最多6个#。

例如:

#标题

##标题

###标题

####标题

#####标题

######标题

#######标题

转换为:

标题

标题

标题

标题

标题
标题
#标题

列表

列表分为无序列表和有序列表。

无序列表

无序列表是指HTML中的

    标签,格式为* 列表内容,*可以用+和-代替。

    例如:

    * Red

    * Green

    * Blue

    转换为:

    • Red
    • Green
    • Blue

    有序列表

    有序列表是指HTML中的

      标签,格式为数字英文句号 列表内容,数字不必按顺序,但是推荐按顺序书写。

      例如:

      1. Red

      1. Green

      2. Blue

      转换为:

      1. Red
      2. Green
      3. Blue

      特殊用法

      列表中的每一项都可以包含多个段落,每一段最好缩进一样的空格,空格数小于4。

      例如:

      * 第一段

      第二段

      转换为:

      • 第一段

        第二段

      列表可限无限嵌套列表,只需要每次多加4个空格既可。

      例如:

      * 1

      * 2

      * 3

      转换为:

      • 1
        • 2
          • 3

      块引用

      即HTML中的

      标签,格式为>引用内容。在每个段落的第一行最前面加上> ,就可以引用整个段落,当然也可以在段落的每一行最前面加上> ,效果是一样的。块引用可以无限嵌套块引用,只需要每次多加一个>既可。块引用中可以使用其他Markdown格式如标题、列表等。

      例如:

      >引用1

      >>引用2

      >>>引用3

      转换为:

      引用1

      引用2

      引用3

      代码区块

      即HTML中的

      标签和标签,只需要缩进4个空格即可,从最开始缩进4个空格的那一行到第一次没有缩进4个空格的那一行或者文档末尾都会被转换。

      例如:

      这是一个普通段落:

      这是一个代码区块

      1

      2

      3

      转换为:

      这是一个普通段落:

      这是一个代码区块
      
      1
      
      2
      
      

      3

      分隔线

      即HTML中的


      标签,格式为一行中用三个以上的星号、减号、下划线,行内不能有其他东西,也可以在星号或是减号中间插入空格。

      例如:

      * * *

      ***

      *****

      - - -

      ---------------------------------------

      链接

      即HTML中的标签,Markdown支持两种形式的链接语法,行内链接和参考链接。

      行内链接

      在方块括号后面紧接着圆括号并插入网址链接,如果你还想要加上链接的 title属性,只要在网址后面,用双引号把文字包起来即可。

      例如:

      [百度](https://www.baidu.com "百度")一下

      转换为:

      百度一下

      参考链接

      参考链接是在链接文字的方括号后面再接上另一个方括号,而在第二个方括号里面写入链接标记,在文件的任意处,你可以把这个链接标记的内容定义出来。链接标记内容的形式为:

      方括号,里面输入链接文字;

      接着一个英文冒号;

      接着一个以上的空格;

      接着链接的网址;

      紧接着 title 属性,可选,可以用单引号、双引号或是圆括号包着。

      例如:

      [bd]: https://www.baidu.com "百度"

      [百度][bd]一下

      转换为:

      百度一下

      隐式链接标记功能让你可以省略指定链接标记,这种情形下,链接标记会视为等同于链接文字,要用隐式链接标记只要在链接文字后面加上一个空的方括号,

      例如:

      [bd]: https://www.baidu.com "百度"

      [bd][]一下

      转换为:

      bd一下

      强调

      即HTML中的标签,Markdown使用*和_作为强调的符号,被*和_包围的会被转换成用 标签包围,用两个*和_包围的会被转换成用 标签包围。

      例如:

      *斜体*,**粗体**

      转换为:

      斜体粗体

      代码

      即HTML中的标签,被反引号`包围的会被转换成用 标签包围。

      例如:

      `代码`

      转换为:

      代码

      图片

      即HTML中的标签,Markdown支持两种形式的图片语法,行内图片和参考图片。

      行内图片

      格式如下:

      一个英文感叹号;

      接着一个方括号,里面放上图片的替代文字;

      接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上可选的 title属性。

      例如:

      ![图片](https://t10.baidu.com/it/u=178918326,3666119923&fm=173&app=12&f=JPEG?w=550&h=367&s=ACD21DC78C5295C647F1F93A0300F012 "图片")

      转换为:

      图片

      参考图片

      参考图片是在图片替代文字的方括号后面再接上另一个方括号,而在第二个方括号里面写入图片标记,在文件的任意处,你可以把这个图片标记的内容定义出来。图片标记内容的形式为:

      方括号,里面输入图片替代文字;

      接着一个英文冒号;

      接着一个以上的空格;

      接着链接的网址;

      紧接着 title 属性,可选,可以用单引号、双引号或是圆括号包着。

      例如:

      [img]: https://t10.baidu.com/it/u=178918326,3666119923&fm=173&app=12&f=JPEG?w=550&h=367&s=ACD21DC78C5295C647F1F93A0300F012 "参考图片"

      ![图片][img]

      转换为:

      图片

      自动链接

      即HTML中的标签,用尖括号括起来的URL和邮箱地址会被自动转换为超链接,其中邮件地址会被转换为实体编号。

      例如:

      https://www.baidu.com

      转换为:

      https://www.baidu.com

      address@example.com

      转换为:

      address@example.com

      转义

      Markdown 可以利用反斜杠来插入一些在语法中有特殊意义的符号,格式为\特殊字符,比如以下这些符号:

      \ 反斜线

      ` 反引号

      * 星号

      _ 底线

      {} 花括号

      [] 方括号

      () 括弧

      # 井字号

      + 加号

      - 减号

      . 英文句点

      ! 惊叹号