Markdown语法汇总

作者: C思考 | 来源:发表于2017-10-09 22:47 被阅读332次

    前言:

    • 本文中所有Markdown语法在有道云笔记的Markdown中全部示范成功,其中的一些语法是简书中实现不了的。
    • 本文是鄙人的学习笔记汇总,素材皆来源于网络。在文末皆载明了出处。希望作为大家学习Markdown的参考资料。


    (1)行内代码

    用法介绍
    Markdown中,我们用一对`表示行间代码,通常行间代码会加上底色。这个标记符号也可用于普通的文字。

    1.代码

    `这是行间代码`
    `This is inline code`
    

    2.效果

    这是行间代码
    This is inline code


    (2)制作标题

    用法介绍
    在Markdown中,我们通过在文字左边添加#来表示标题,且#的数量决定了标题的级别,最多可以表示六级标题,即使用六个#。
    当然也可以在文字左右侧都使用#,比如#这是一级标题#,效果同上

    a.代码

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

    b.效果

    一级标题

    二级标题

    三级标题

    四级标题

    一级标题

    二级标题

    三级标题

    四级标题


    (3)改变字体

    粗体:Markdown中,用一对**表示强调,被强调的文字以粗体显示。
    斜体:Markdown中,用一对*表示斜体。
    

    1.代码

    *要改变字体为斜体的内容*
    **要改变字体为粗体的内容**
    ***要改变字体为斜体+粗体字的内容***
    

    注意符号和文本之间没有空格

    2.效果

    要改变字体为斜体的内容
    要改变字体为粗体的内容
    要改变字体为斜体+粗体字的内容


    (4)代码块工具

    1.代码区域设置符号-```

    用法介绍
    Markdown具有书写代码块(code block)的功能,
    而且可以为不同的语言进行相应的代码高亮。
    代码块用一对```括起来,在第一个```后面紧跟语言的名称即可。
    如果你是个程序猿,需要在文章里优雅的引用代码框,
    在 Markdown 下实现也非常简单,
    只需要用两个` 把中间的代码包裹起来,如 `code`。

    插入代码的方式有两种

    1.在每行代码前加入4个空格或者添加一个制表符(TAB键)
    2.在代码两侧添加三个反引号‘```’。

    • ```代码块```
    • ```
      一整段代码
      ```

    两种方法都有需要注意的地方,很多入门文档未能提及。

    1.其缩进是相对于当前格式状态下的。
    在列表项状态下,需要输入两次TAB键(制表符)才能以代码格式插入。
    例如:

    a.代码:

    •列表项
    •列表项
    [TAB][TAB]printf("hello world!");

    b.效果:
        * 列表项
        * 列表项  
         printf("hello world!");  
    

    2.反引号最好在代码的前后行添加,而不是直接加在代码两边。


    用一个符号也可以制作代码块,看起来不错吧!

    a.代码

    ```
    可以高亮度显示的代码内容
    ```
    

    b.效果

       可以高亮度显示的代码内容
    

    2.段落开头文字前面加四个空格

    3.段落开头文字前面加一个制表符(Tab)

    详细请看markdown如何把代码变成文本

    4.双标记

    既可作为区块标记又可作为行内标记的标记。

    (1). 代码块

    1) 行内代码块

    语法:
    方法一:使用两个 ` 将代码包含起来
    方法二:使用两个```将代码包含起来

    a.示例代码
    在 Java 输出 Hello, world :`System.out.print("Hello, World!");`
    在 Java 输出 Hello, world :```System.out.print("Hello, World!");```
    
    b.效果

    在 Java 输出 Hello, world :System.out.print("Hello, World!");
    在 Java 输出 Hello, world :System.out.print("Hello, World!");

    2) 多行代码块

    语法:
    方法一:只需要每行都缩进 4 个空格即可,
    方法二:使用```框起来。

    a.示例1
    代码 (行前4个空格)
    // JQuery 的 Hello, world
    $(function(){
    alert("Hello, world!")
    });
    
    效果(行前4个空格)
    // JQuery 的 Hello, world
    $(function(){
    alert("Hello, world!")
    });
    
    b.示例2
    代码 (```)
    ```
    // JQuery 的 Hello, world
    $(function(){
    alert("Hello, world!")
    });
    ```
    
    效果 (```)
    // JQuery 的 Hello, world
    $(function(){
        alert("Hello, world!")
    });
    

    3)注意事项:

    在代码区块内部,", <>,& 将会自动转换为转义字符  
    在代码区块内部,Markdown 标记将保持原样,即:星号(*)就是星号(*),不被解释为特殊标记,
    这样就可以不能继续使用 Markdown 语法了
    

    (5)格式工具

    1.换行符

    a.行尾敲击两个空格 ,然后回车键
    

    备注:
    1.单个回车,视为空格。连续回车,才能分段。
    2.行的开头空4个空格/一个tab,表示接下来的内容是程序代码。

    2.底色工具

    尚未确定
    

    3.分隔符

    • tab
    • 三个以上的***
    • 三个以上的---

    4.首行缩进

    由于markdown语法主要考虑的是英文,所以对于中文的首行缩进并不太友好,两种方法都可以完美解决这个问题。
    把输入法由半角改为全角。 两次空格之后就能够有两个汉字的缩进。
    在开头的时候,先输入下面的代码,然后紧跟着输入文本即可。分号也不要掉。
    直接写:

    a.代码:

    半方大的空白 或 
    全方大的空白 或 
    不断行的空白格 或 
    

    b.效果:

    半方大的空白 或 
    全方大的空白 或 
    不断行的空白格 或


    5.Markdown的转义字符

    Markdown 中,如需显示有特定意义的符号,如:*,# 等,可使用 反斜杠 \ 进行转义。可对如下字符进行转义:

    *
    `
    *
    _
    {}
    ()
    #
    +
    -
    .
    !
    

    a.代码

    \*

    b.效果

    *


    6. 特殊字符的自动转换

    在 HTML 文件中,有两个字符需要特殊处理: < 和 &,必须使用转义字符:& lt ; 和 & amp ;
    Markdown 中,你可以自由的书写 < 和 &,编辑器会智能的进行判断:当这些符号用于 HTML 标签中,他们将保留原型;当他们单独使用时,将会转换为字符实体。
    在代码块中,它们将统统被转换为字符实体,即:原样显示。

    7. Markdown 与 HTML 的关系

    HTML 是一种发布的格式,Markdown 是一种书写的格式。
    Markdown 的格式语法只涵盖纯文本可以涵盖的范围。
    在 Markdown 中可直接使用 HTML 标签,但需要注意

    • 对于 HTML 区块元素――如 div、table、pre、p 等标签,必须在前后加上空行与其它内容区隔开,还要求它们的开始标签与结尾标签不能用制表符(tab)或空格来缩进
    • HTML 的行内标签——如 span、cite、del 可以在 Markdown 的段落、列表或是标题里随意使用。
    • 在 HTML 的区块标签中的 Markdown 标签是没有效果的

    8.行内标记

    行内标记和其他标记共处一行。

    (1) 斜体

    语法:使用前后各 1 个 *(或_) 包含的文字是 斜体 文字

    a.示例代码
    *斜体*,   
    _斜体_  
    
    b.效果

    斜体,
    斜体

    (2)粗体

    语法:使用前后各 2 个 (或_) 包含的文字是粗体*文字

    a.示例代码
    **粗体**,  
    __粗体__  
    
    b.效果

    粗体
    粗体

    (3) 删除文字

    语法:使用前后各 2 个 ~ 包含的文字是删除文字

    a.示例代码
    ~~删除~~ 
    
    b.效果

    删除

    (4)粗斜体

    语法:在(或_)中嵌套 (或) 或 在_(或)中嵌套**(或__)即可得到 粗斜体。

    a.示例代码
    _**粗斜体**_, *__粗斜体__*
    **_粗斜体_**, __*粗斜体*__
    
    b.效果

    粗斜体粗斜体
    粗斜体粗斜体

    (6)列表工具

    1. 在Markdown的语法中,我们可以使用1.、2.表示有序列表,
    即数字+点,不过注意序号和后面文字必须得有空格。  
    2.无序列表用“-”或者“*”表示,同样的,-和*和后年的文字间必须有空格。  
    且通过按tab键可以实现列表的嵌套。
    

    1.无序列表

    a.代码

    - 这是无序列表
    - 这是无序列表
        - 这是无序列表
        - 这是无序列表
    - 这是无序列表
    - 这是无序列表
    * 这是无序列表
    * 这是无序列表
    

    b.效果

    • 这是无序列表
    • 这是无序列表
      • 这是无序列表
      • 这是无序列表
    • 这是无序列表
    • 这是无序列表
    • 这是无序列表
      • 这是无序列表

    2.有序列表

    a.代码

    1. 这是有序列表
    2. 这是有序列表
    3. 这是有序列表
    4. 这是有序列表
    

    b.效果

    1. 这是有序列表
    2. 这是有序列表
    3. 这是有序列表
    4. 这是有序列表

    备注

    • 两个列表之间不能相邻,否则会解释为嵌套的列表
    • 无序列表的项目符号可使用 *,+,- 效果是相同的。
    • 列表与后续内容之间需要一个空行隔开,即:列表是一个段落
    • 列表允许多层次嵌套
    • 可以在项目中包含段落,只需将段落前添加一个 tab 或 4 个空格
    • 区块标记:是指内容独占一块,需前后换行,不和其他标记共处一行的标记。
    • 段落:即是一段连续的文字,可包含*、空格、换行、tab等字符。两个段落之间使用空行分隔。注意:换行不是分段的标识,空行才是.

    (7)引用工具

    Markdown中,用符号>开启一行引用,如果文字有多行则用多个>,
    同样地>和文字间必须有空格。
    这里补充一点:在Markdown中,空格+空格+Enter为换行,
    而Enter为另起一段落,这在书写引用时是非常重要的
    

    1.代码

    > 这是引用  
    > 换行请按`空格+空格+Enter`  
    > 这是引用
    

    2.效果

    这是引用
    换行请按空格+空格+Enter
    这是引用

    3.注意事项:

    大于号 和 文字必须有一个空格
    可以在每行之前加 > ,也可以在段落之前加 1 个 >
    引用内部可以使用其他 Markdown 标记

    引用内部可以添加新的引用,只需再加一个大于号


    (8)链接工具(链接网址/链接图片)

    地址:Markdown中,用[文字] (超链接地址) 来表示超链接。
    图片:Markdown中,用![图片名称(图片地址)来**图片。其中图片名称可有可无,没有的情况下用空格代替,图片地址可以为图片的URL,或者本地图片的路径。
    

    1.链接地址

    a.代码

    [ 有道云笔记官网 ](www.baidu.com/)
    

    b.效果

    有道云笔记官网

    2.链接图片

    a.代码

    ![有道云笔记图片](http://note.youdao.com/favicon.ico)
    ![天气预报](http://cdn.heweather.com/cond_icon/309.png)    
    备注:括号一定要是英文字符哦!
    

    b.效果

    天气预报

    所有符号都是非中文的字符


    (9)流程图工具

    1.代码

    ```
    graph TD
    A[NO.1]-->B(No.2)
    B --> C{think}
        C -->|是| C1[No.3]
        C -->|否| C2[No.4]
        C -->|随机|D[No.4]
        
    ```
    

    2.效果

        graph TD
        A[NO.1]-->B(No.2)
        B --> C{think}
            C -->|是| C1[No.3]
            C -->|否| C2[No.4]
            C -->|随机|D[No.4]
            
    

    (10)甘特图工具

    1.代码

    ```
    gantt
    dateFormat YYYY-MM-DD
    title 产品开发计划表
    section 初期阶段  
    明确需求:2017-04-11,10d
    section 中期阶段  
    跟进开发:2017-04-22,10d
    section 后期阶段  
    走查测试:2017-05-03,20d
    
    ```
    

    2.效果

       gantt
       dateFormat YYYY-MM-DD
       title 产品开发计划表
       section 初期阶段  
       明确需求:2017-04-11,10d
       section 中期阶段  
       跟进开发:2017-04-22,10d
       section 后期阶段  
       走查测试:2017-05-03,20d
       
    

    (11)表格工具

    Maekdown中用|来表示表格的行列框线,从而构成表格。
    

    1.代码

        | 序号 | Value | Qty |
        |-|-|-|
        |1|PDF阅读器|正版|
        |2|有道云笔记|正版|
        |3|百度网盘|正版|
        |4|MS office|盗版|
    

    具有对齐功能的表格

    |  序号 |value |  qty  |
    |:-:|:-:|:-:|
    |1|pdf阅读器|正版|
    |2|有道云笔记|正版|
    |3|百度网盘|正版|
    |4|MS office|盗版|
    

    2.效果

    序号 value qty
    1 pdf阅读器 正版
    2 有道云笔记 正版
    3 百度网盘 正版
    4 MS office 盗版
    序号 value qty
    1 pdf阅读器 正版
    2 有道云笔记 正版
    3 百度网盘 正版
    4 MS office 盗版

    (13)待办事项

    1.代码

    - [ ] 未完成的1
    - [ ] 未完成的2
        - [x] 已完成的1
        - [x] 已完成的2
    - [ ] 未完成的3
    - [ ] 未完成的4
    

    2.效果

    • [ ] 未完成的1
    • [ ] 未完成的2
      • [x] 已完成的1
      • [x] 已完成的2
    • [ ] 未完成的3
    • [ ] 未完成的4

    (14)添加脚注

    1.代码

    Markdown[^mark]
    [^mark]: 《Markdown让文字更加精致》
    
    语法:
    待解释文字[^脚注 id]
    [^脚注 id]:注释内容
    

    2.效果

    Markdown[1]

    待解释文字[2]

    3.注意事项

    脚注 id 必须唯一  
    无论脚注 id 如何起名,显示时一律标为数字,并且按出现顺序排列  
    


    (15)分隔符

    分割线的语法只需要另起一行,连续输入三个及以上 星号 *** 即可。
    或者是三个及以上 下划线符号---即可。
    

    1.代码

    -----------
    ********
    

    2.效果



    (16)首行缩进

    写文章时,我们常常希望能够首行缩进,这时可以在段首加入 来输入一个空格.加入 来输入两个空格。
    

    a.代码

    一语未了,只听后院中有人笑声,说:“我来迟了,不曾迎接远客!"

    b.效果

    一语未了,只听后院中有人笑声,说:“我来迟了,不曾迎接远客!"


    (17)添加空行

    在markdown中添加空行可以结束先前的格式状态。个人建议在改变格式时,均添加一个空行。

    a.代码

    >引用状态
    [空行]
    ###标题状态
    [空行]
    ------
    [空行]
    - 列表状态
    - 列表状态
    
    

    b.效果

    引用状态

    标题状态


    • 列表状态
    • 列表状态

    (18)限制图片大小并居中

    许多 MarkDown 编辑器中直接按原图大小显示图片,造成版面凌乱。  
    如何让图片像简书中那样大小一致居中显示呢?使用该命令  
    <img src="图片地址" width="图片显示宽度" height="显示高度"  
    alt="图片名称"/>设置图片大小,再用<div align=center></div>命令包裹达到居中效果。
    

    a.代码

    <img src="http://ww2.sinaimg.cn/bmiddle/88070423gw1ep30aw8an  
    7g204d04gkgd.gif" width="400" height="400" alt="亦菲表演机器猫"/>
    
    如果你使用的是 Mou,那么还可以使用如下语法 ![](链接地址 =宽x高)
    
    
    ![亦菲表演机器猫](http://ww2.sinaimg.cn/bmiddle/88070423gw1ep  
    30aw8an7g204d04gkgd.gif =400x400)
    

    b.效果

    亦菲表演机器猫
    简书中默认就是居中显示,展示的图片大小也是固定的,而且貌似不能使用div标签。。在此仅仅给大家展示下写法,效果就在其他编辑器的预览上看一下好了。
    

    <div align=center>


    亦菲表演机器猫

    </div>

    参考文献

    1.Markdown | 让文本更加精致【语法篇】
    2.Markdown入门指南
    3.Markdown写作浅谈
    4.认识与入门Markdown
    5.怎样引导新手使用 Markdown?
    6.Markdown 语法写作入门指南 by ibuick
    7.图灵社区 - 怎样使用 Markdown
    8.人人能学会的极客语法Markdown-有道云笔记官方
    9.Markdown功能
    10.怎样使用有道云笔记markdown
    11.MarkDown使用小技巧
    12.markdown语法小结
    13.使用pandoc Markdown进行学术论文写作
    14.使markdown文档中的图片居中
    15.一段JS代码让Markdown自动生成侧边栏目录
    16.如何用markdown生成多级有序列表?
    17.如何阅读一本书
    18.markdown入门指南
    19.从markdown到Gitbook,高逼格协作工具
    20.简书 Markdown 语法详解

    细节要点

    1. 首行缩进:在段首加入"”、“&emsp"、“&nbsp”来输入一个空格
    2. 普通段落尽量不用空格或制表符来缩进,即使使用它们后得到的效果看似是对的。
    3. [数字] + ‘.’ + [空格]的形式会呼出有序的项目列表。因此如果你在正文中恰好出现这种形式,那么可以在‘.’的前面加上‘\’来避免出现有序列表。
    4. 引用区块“>”和代码区块“```”有不同的用途:“>”引用区块中的文本保留Markdown语法,而“```”代码块中的文本不保留Markdown语法。

    Markdown的局限性

    1.Markdown没有居中和右对齐功能,除非做扩展。
    2.不同的Markdown工具功能会不一样,高级功能并不是都有的。
    3.markdown 是个顺手的工具,但是简书不支持语法高亮,不显示代码行号
    4.目录索引很重要,写技术类文章条理很重要,在开篇有个目录,非常有必要
    5.简书尚不支持的标记和不足

    1. 用于生成目录索引的 [TOC]
    2. 用于说明文章标签的 tags
    3. 定义列表和待办事宜 Todo 列表
    4. 数学公式
    5. 各种图形:流程图、时序图、甘特图
    6. 其他技术,如:{mermaid}
    7. 区块代码中不显示行号

    6.给简书的一点建议

    1. 对于普通用户来讲,定义列表、生成目录索引和文章标签功能是十分必要的,希望能够尽快增加这些功能。希望能够实现预览图和编辑器的同步滚动功能。
    2. 对于理工狗来讲,编辑 LaTex数学公式是非常必要的功能,希望能够尽快增加这个功能。
    3. 对于代码狗来讲,区块代码中显示行号,以及流程图、时序图是非常必要的功能,希望能够尽快增加这些功能。
    4. 其他的诸如:待办事宜列表、甘特图,mermaid等功能,可以慢慢实现。

    1. 《Markdown让文字更加精致》

    2. 注释内容

    相关文章

      网友评论

      本文标题:Markdown语法汇总

      本文链接:https://www.haomeiwen.com/subject/lrqmyxtx.html