Markdown 规范

作者: kiki
日期: 2017/9/26

编辑器

基本技巧

标题

Markdown 支持两种标题的语法,类 Setext 和类 atx 形式。

类 atx 形式则是在行首插入 1 到 6 个 # ,对应到标题 1 到 6 阶(可以在行尾加上 #)。

# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

类 Setext 形式是用下划线的形式,利用 = (最高阶标题)和 - (第二阶标题)(任何数量的 = 和 - 都可以有效果)。

一级标题
========
二级标题
-------

段落

空出一行,即可新起一个段落

粗斜体

Markdown 使用星号和下划线作为标记强调字词的符号。

  • 一个星号或一个下划线:斜体 斜体
  • 两个星号或一个下划线:粗体 粗体
  • 三个星号或一个下划线:粗斜体 粗斜体

代码

  • 行内代码:用反引号标记行内代码,如

    • 单个反引号:function_name()
    • 两个反引号:包含反引号`的代码
  • 代码段,通常编辑器根据代码片段适配合适的高亮方法。

    • 可以用三个反引号包裹一段代码,并指定一种语言。

      int test()
      {
        return 0;
      }
      
    • 也可以使用 4 空格或 1 个制表符缩进,再贴上代码,实现相同的的效果。

      int test()
      {
        return 0;
      }
      

链接

  • 行内式链接
  • 参考式链接:在链接文字的括号后面再接上另一个方括号,而在第二个方括号里面要填入用以辨识链接的标记,然后在文件的任意处为标记变量赋值(网址)
    • 隐式链接标记:可以省略指定链接标记,这种情形下,链接标记会视为等同于链接文字
    • 这个链接用 Google 作为网址变量 Google
    • 这个链接用 yahoo 作为网址变量 Yahoo!
    • 链接标记的内容定义的形式为:[链接文字]: 链接地址 "title"
      • 方括号(前面可以选择性地加上至多三个空格来缩进),里面输入链接文字
      • 接着一个冒号
      • 接着一个以上的空格或制表符
      • 接着链接的网址(链接网址也可以用尖括号包起来)
      • 选择性地接着 title 内容,可以用单引号、双引号或是括弧包着

列表

普通无序列表

  • 无序列表,文本前使用[减号+空格]
  • 无序列表,文本前使用[加号+空格]
  • 无序列表,文本前使用[星号+空格]

普通有序列表

  1. 列表前使用[数字+英文句点+空格]
  2. 可以自动添加数字
  3. 数字不对显示的时候回自动调整
  4. 文档开始如果出现 1986. blabla 要写成 1986\. blabla

列表嵌套

  1. 列出所有元素:

    • 无序列表元素 A
      1. 元素 A 的有序子列表
      2. 元素 A 的有序子列表
    • 前面加 4 个空格或 1 个制表符
  2. 列表里的多段换行: 前面必须加 4 个空格或 1 个制表符, 这样换行,整体的格式不会乱

  3. 列表里引用:

    前面空一行 仍然需要在 > 前面加 4 个空格或 1 个制表符

  4. 列表里代码段:

    前面加 4 个空格或 1 个制表符,之后按三个`代码语法

表格

默认:左对齐 | --- | :---: | ---: |

| 左对齐 | 中间对齐 | 右对齐 | | —– | :—–: | —–: | | col1 | col2 | col3 | | col1,col1 | col2,col2 | col3,col3 | | col1,col1,col1 | col2,col2,col2 | col3,col3,col3 |

引用

普通引用

引用前使用[大于号+空格] 换行可以不加
新起一行需要加上

引用嵌套引用

最外层引用

多一个[大于号+空格]嵌套一层引用

可以嵌套很多层

引用嵌套列表

  • 这是引用里嵌套的一个列表
  • 还可以有子列表
    • 子列表需要从[减号、加号、星号]之后延后 4 个空格或 1 个制表符开始

图片

跟链接的方法区别在于前面加了个感叹号。行内式的图片语法 ![图片名称](图片链接地址/图片相对路径)

皮卡丘__1图片名称

../_images/natsume.jpg夏目友人帐__2

分隔符

在新起一行输入三个减号、星号、下划线,即可实现分割线。当前后都有段落时,请空出一行。

段落 1 (三个减号)


段落 2 (三个星号)


段落 3 (三个下划线)


高级技巧

行内 HTML 元素

目前只支持段内 HTML 元素效果,包括 kbd/b/i/em/sup/sub/br 等。现不建议使用 HTML 元素。

符号转义

在符号前加反斜杠可以避免被转义。如:

_不想这里的文本变斜体_**不想这里的文本被加粗**

Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号:

\ 反斜线

` 反引号

* 星号

_ 下划线

{} 花括号

[] 方括号

() 括弧

# 井字号

+ 加号

- 减号

. 英文句点

! 惊叹号

公式

当需要在编辑器中插入数学公式时,可以使用两个美元符包裹 TeX 或 LaTeX 格式的数学公式来实现。提交后,问答和文章页会根据需要加载 Mathjax 对数学公式进行渲染。如:

$$ x = {-b \pm \sqrt{b^2-4ac} \over 2a}. $$

脚注

Markdown 官网^markdown

文档规范

统一使用下面的规范。

  • 标题用#,右边的#不加
  • 行内代码:单个或两个反引号
  • 代码段:三个反引号
  • 无序列表、段落分割线:减号(不使用加好和星号)
  • 粗体/斜体/粗斜体:星号(不使用下划线)

上述文档原文

    # Markdown 规范

    ```text
    作者: kiki
    日期: 2017/9/26
    ```

    ## 编辑器

    - Mac
      - [Mou](http://25.io/mou/)
    - Windows
      - [MarkdownPad](http://www.markdownpad.com/)
      - [MarkPad](http://code52.org/MarkPadRT/)
    - Linux
      - [ReText](https://github.com/retext-project/retext)
      - Vim+[Vimwiki](http://xbeta.info/vimwiki.htm)
    - 在线编辑器
      - [markable](https://markable.in/)
      - [dillinger](https://dillinger.io/)
    - 浏览器插件
      - MaDe(chrome)
      - [马克飞象](https://maxiang.io/)
    - 高级应用
      - [Sublime Text 2](http://www.sublimetext.com/2) + [MarkdownEditing](http://ttscoff.github.io/MarkdownEditing/) / [教程](https://lucifr.com/2012/07/12/markdownediting-for-sublime-text-2/)

    ## 基本技巧

    ### 标题

    Markdown 支持两种标题的语法,类 [Setext](http://docutils.sourceforge.net/mirror/setext.html) 和类 [atx](http://www.aaronsw.com/2002/atx/) 形式。

    类 atx 形式则是在行首插入 1 到 6 个 # ,对应到标题 1 到 6 阶(可以在行尾加上 #)。

    ```md
    # 一级标题
    ## 二级标题
    ### 三级标题
    #### 四级标题
    ##### 五级标题
    ###### 六级标题
    ```

    类 Setext 形式是用下划线的形式,利用 = (最高阶标题)和 - (第二阶标题)(任何数量的 = 和 - 都可以有效果)。

    ```md
    一级标题
    ========
    二级标题
    -------
    ```

    ### 段落

    空出一行,即可新起一个段落

    ### 粗斜体

    Markdown 使用星号和下划线作为标记强调字词的符号。

    - 一个星号或一个下划线:*斜体*  _斜体_  
    - 两个星号或一个下划线:**粗体**  __粗体__  
    - 三个星号或一个下划线:***粗斜体*** ___粗斜体___

    ### 代码

    - 行内代码:用反引号标记行内代码,如
      - 单个反引号:`function_name()`
      - 两个反引号:``包含反引号`的代码``
    - 代码段,通常编辑器根据代码片段适配合适的高亮方法。
      - 可以用**三个反引号**包裹一段代码,并指定一种语言。
      
        ```cpp
        int test()
        {
          return 0;
        }
        ```
      
      - 也可以使用 4 空格或 1 个制表符缩进,再贴上代码,实现相同的的效果。
      
            int test()
            {
              return 0;
            }

    ### 链接

    - 行内式链接
      - 文字链接:方括号(链接名称)+圆括号(链接地址),即 `[链接名称](http://链接地址)`
        - [google](https://translate.google.com/)
        - [gmail](https://mail.google.com/mail/u/0/)
      - 自动链接:Markdown 支持以比较简短的自动链接形式来处理网址和电子邮件信箱,尖括号+(链接地址),即 `<http://链接地址>`
        - <https://translate.google.com/>
        - <https://mail.google.com/mail/u/0/>
    - 参考式链接:在链接文字的括号后面再接上另一个方括号,而在第二个方括号里面要填入用以辨识链接的标记,然后在文件的任意处为标记变量赋值(网址)
      - 隐式链接标记:可以省略指定链接标记,这种情形下,链接标记会视为等同于链接文字
      - 这个链接用 Google 作为网址变量 [Google][]
      - 这个链接用 yahoo 作为网址变量 [Yahoo!][yahoo]
      - 链接标记的内容定义的形式为:`[链接文字]: 链接地址 "title"`
        - 方括号(前面可以选择性地加上至多三个空格来缩进),里面输入链接文字
        - 接着一个冒号
        - 接着一个以上的空格或制表符
        - 接着链接的网址(链接网址也可以用尖括号包起来)
        - 选择性地接着 title 内容,可以用单引号、双引号或是括弧包着

    [Google]: http://www.google.com/ "Hi, Google"
    [yahoo]: http://www.yahoo.com/ "Hi, Yahoo"

    ### 列表

    #### 普通无序列表

    - 无序列表,文本前使用[减号+空格]
    + 无序列表,文本前使用[加号+空格]
    * 无序列表,文本前使用[星号+空格]

    #### 普通有序列表

    1. 列表前使用[数字+英文句点+空格]
    2. 可以自动添加数字
    3. 数字不对显示的时候回自动调整
    4. 文档开始如果出现 `1986. blabla` 要写成 `1986\. blabla`

    #### 列表嵌套

    1. 列出所有元素:
        - 无序列表元素 A
          1. 元素 A 的有序子列表
          2. 元素 A 的有序子列表
        - 前面加 4 个空格或 1 个制表符
    2. 列表里的多段换行:
        前面必须加 4 个空格或 1 个制表符,
        这样换行,整体的格式不会乱
    3. 列表里引用:

        > 前面空一行
        > 仍然需要在 > 前面加 4 个空格或 1 个制表符

    4. 列表里代码段:

        ```前面加 4 个空格或 1 个制表符,之后按三个`代码语法```

    ### 表格

    默认:左对齐 `| --- | :---: | ---: |`

    | 左对齐 | 中间对齐 | 右对齐 |
    | ----- | :-----: | -----: |
    | col1 | col2 | col3 |
    | col1,col1 | col2,col2 | col3,col3 |
    | col1,col1,col1 | col2,col2,col2 | col3,col3,col3 |

    ### 引用

    #### 普通引用

    > 引用前使用[大于号+空格]
    换行可以不加

    > 新起一行需要加上

    #### 引用嵌套引用

    > 最外层引用
    > > 多一个[大于号+空格]嵌套一层引用
    > > > 可以嵌套很多层

    #### 引用嵌套列表

    > - 这是引用里嵌套的一个列表
    > - 还可以有子列表
    >   - 子列表需要从[减号、加号、星号]之后延后 4 个空格或 1 个制表符开始

    ### 图片

    跟链接的方法区别在于前面加了个感叹号。行内式的图片语法 `![图片名称](图片链接地址/图片相对路径)`:

    ![图片名称](http://media.52poke.com/wiki/0/0d/025Pikachu.png "皮卡丘__1")

    ![夏目友人帐__2](ref/natsume.jpg)

    ### 分隔符

    在新起一行输入三个减号、星号、下划线,即可实现分割线。当前后都有段落时,请空出一行。  

    段落 1 (三个减号)

    ---

    段落 2 (三个星号)

    ***

    段落 3 (三个下划线)

    ___

    ## 高级技巧

    ### 行内 HTML 元素

    目前只支持段内 HTML 元素效果,包括 kbd/b/i/em/sup/sub/br 等。现不建议使用 HTML 元素。

    ### 符号转义

    在符号前加反斜杠可以避免被转义。如:

    \_不想这里的文本变斜体\_  
    \*\*不想这里的文本被加粗\*\*

    Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号:

    \\   反斜线

    \`   反引号

    \*   星号

    \_   下划线

    \{\}  花括号

    \[\]  方括号

    \()  括弧

    \#   井字号

    \+   加号

    \-   减号

    \.   英文句点

    \!   惊叹号

    ### 公式

    当需要在编辑器中插入数学公式时,可以使用两个美元符包裹 TeX 或 LaTeX 格式的数学公式来实现。提交后,问答和文章页会根据需要加载 Mathjax 对数学公式进行渲染。如:

    $$ x = {-b \pm \sqrt{b^2-4ac} \over 2a}. $$

    ### 脚注

    Markdown 官网[^markdown]

    [^markdown]: <https://daringfireball.net/projects/markdown/>

    ## 文档规范

    统一使用下面的规范。

    - 标题用\#,右边的\#不加
    - 行内代码:单个或两个反引号
    - 代码段:三个反引号
    - 无序列表、段落分割线:减号(不使用加好和星号)
    - 粗体/斜体/粗斜体:星号(不使用下划线)