banner

什么是 Markdown

Markdown 是一种有着纯文本格式化语法的轻量级的标记语言,可以方便地转为 HTML 和其他格式。它是由 John Gruber 在 2004 年创建的。它的目标是让人们使用易读、易写的纯文本格式去写作,将排版、美化等工作交给软件去做。这种专注于写作内容而不是排版的理念,使它在程序员、文字工作者的圈子里火了起来。

为什么是 Markdown

  • 纯文本

    这是我比较看好的地方,如果使用 Word 这类格式写文档,文档的格式是二进制的,在比较版本间的差异时就比较难做了。

  • 轻标记

    如果直接使用 HTML 标记语言来写文档,先不说难易度,仅仅是大量标签与内容混合呈现的效果,读起来就会让人觉得如鲠在喉。

  • 专注于写作内容而不是排版的理念

语法

  1. 段落

    开始一个新的段落,只需创建一个以上的空行。

  2. 标题

    Markdown 支持 6 级标题,标记语法为:

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

    格式化效果:

    一级标题

    二级标题

    三级标题

    四级标题

    五级标题
    六级标题
  3. 列表

    使用 *+- 三种符号来表示无序列表,使用数字加点号来表示有序列表:

    无序列表标记语法:

    * 苹果
    + 橘子
    - 香蕉
    

    格式化效果:

    • 苹果
    • 橘子
    • 香蕉

    有序列表标记语法:

    1. 苹果
    2. 橘子
    3. 香蕉
    

    格式化效果:

    1. 苹果
    2. 橘子
    3. 香蕉

    列表中也许要包含多个段落、列表、代码块等,可以通过将他们缩进来实现。

  4. 代码块

    文中插入代码对于程序员来说是司空见惯的,怎么实现呢?

    行内代码块语法:

    `code`
    

    格式化效果: code

    代码段语法:

    ```language
    code...
    ```
    

    格式化效果:

    /**
    * 求字符串的长度
    * @param  str 待处理字符串指针
    * @return     字符串长度
    */
    int mstrlen(const char *str)
    {
       const char *start;
    
       start = str;
       while(*str != '')
       {
           str++;
       }
    
       return str - start;
    }
    
  5. 引用

    如果需要引用一段别处的文字,那么就要用到引用。

    标记语法:

    > 引用内容
    >> 二级引用
    >>> 三级引用
    

    格式化效果:

    引用内容

    二级引用

    三级引用

  6. 表格

    表格稍微麻烦些,标记语法实例如下:

    |column1|column2|column3|
    |:-|:-:|-:|
    |row1|苹果|100|
    |row2|橘子|200|
    |row3|香蕉|300|
    

    格式化效果(若显示不正常,说明本站还没有支持):

    column1 column2 column3
    row1 苹果 100
    row2 橘子 200
    row3 香蕉 300

    可以总结为:

    • 第一行为表头;
    • 第二行是对齐控制,横线至少一个,横线两侧都有冒号表示居中显示;
    • 其他行为内容行。
  7. 链接

    链接有三种方式:行内式、参考式、自动式。行内式和参考式链接文字都是用 [链接文字]来标记。

    行内式标记语法:

    This is an [example link](https://www.mculoop.com/ "Title").
    

    链接的标题可以不要,格式化效果:

    This is an example link.

    自动式标记语法:

    <https://www.mculoop.com/>
    

    格式化效果:

    https://www.mculoop.com/

  8. 图片

    图片的语法与链接的语法是非常相似的,不同之处是在最前边加上感叹号!

    例如:

    ![不能显示时的替代文字](/path/to/img "可选标题")
    

    或:

    ![不能显示时的替代文字][id]
    //...
    //内容底部
    [id]: url/to/image  "可选标题"
    

    格式化效果:

    不能显示时的替代文字

  9. 粗体与斜体字

    粗体标记语法:

    **粗体字内容**
    

    斜体标记语法:

    *斜体字内容*
    

    除了星号 * 也可以使用下划线 _。文字内容两侧不加空格。

  10. 脚注

    标记语法:

    text[^id]
    [^id]:脚注内容
    

    格式化效果(若显示不正常,说明本站还没有支持):

    待注释文字1

  11. 水平分割线

    在一行中使用三个以上的星号、减号或下划线可标记一个水平分隔线,标记语法:

    ***
    ---
    ___
    

    格式化效果:




  12. 转义符

    当标记符与现实内容发生矛盾的时候,不妨试试转义符 \

  13. HTML标记

    Markdown 对 HTML 标记的支持,使得它更为强大,但应当尽量少使用,不然就失去 Markdown 存在的意义了。

编辑器

  1. 在线编辑器

  2. 离线编辑器

    • Sublime + Markdown Editing + Markdown Preview
    • Typora
    • Ulysses


  1. 脚注内容