Markdown语法解析

作者: 7aa386aee7ca | 来源:发表于2017-12-08 09:56 被阅读38次

    Markdown 是一种「电子邮件」风格的「标记语言」。不过良好的可读性更加应该被关注. 一个Markdown格式的文档应该就像普通文本一样容易(排版)打印, 而不是用各种标签和格式指令来标记. 现有的一些文本-HTML过滤器(text-to-HTML filters)对Markdown的语法有着重要的影响, 包括Setext, atx, Textlie, reStructuredText, Grutatext, 和EtText, 不过Markdown语法最大的灵感则来自于纯文本邮件的格式.

    鉴于此, Markdown的语法完全由标点字符组成, 这些字符经过精心挑选, 就是为了能够让它们起到它们看起来应该起的作用. 比如一个单词两边的星号看起来就像emphasis. Markdown(语法的)列表就应该看起来就像是(实际的)列表. 如果你此前使用的email, 那么即使是Markdown的引用也能够看起来就像是实际的对一段文字的引用一样. Markdown 的优点如下:

    1. 纯文本,所以兼容性极强,可以用所有文本编辑器打开。
    2. 让你专注于文字而不是排版。
    3. 格式转换方便,Markdown 的文本你可以轻松转换为 html、电子书等。
    

    Markdown 的标记语法有极好的可读性。
    首先,将编辑器切换到Markdown模式,也就是点击右上角的预览模式:


    预览模式

    1. 标题

    在 Markdown 中,你只需要在文本前面加上 # 即可,同理、你还可以增加二级标题、三级标题、四级标题、五级标题和六级标题,总共六级,只需要增加 # 即可,标题字号相应降低。例如:

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

    注:# 和「一级标题」之间建议保留一个字符的空格,这是最标准的 Markdown 写法。

    2. 列表

    2.1 无序列表

    列表格式也很常用,在 Markdown 中,你只需要在文字前面加上 - 就可以了,例如:

    - 文本一
    - 文本二
    - 文本三
    

    在文本前面加上“- ”,就可以显示为如下的列表形式:

    • 文本一
    • 文本二
    • 文本三

    2.2 有序列表

    如何需要生成有序列表,也可以直接在文本前面加上“数字. ”,例如:“1. ”,现实为如下的列表形式

    1. 文本一
    2. 文本二
    3. 文本三

    2.3 列表自定义

    定义型列表由名词和解释组成。一行写上定义,紧跟一行写上解释。解释的写法:紧跟一个缩进(Tab)
    Markdown
    : 轻量级文本标记语言,可以转换成html,pdf等格式(左侧有一个可见的冒号和四个不可见的空格)

    2.4 列表缩进

    • 轻轻的我走了, 正如我轻轻的来; 我轻轻的招手, 作别西天的云彩。
      那河畔的金柳, 是夕阳中的新娘; 波光里的艳影, 在我的心头荡漾。
      软泥上的青荇, 油油的在水底招摇; 在康河的柔波里, 我甘心做一条水草!
    • 那榆荫下的一潭, 不是清泉, 是天上虹; 揉碎在浮藻间, 沉淀着彩虹似的梦。
      寻梦?撑一支长篙, 向青草更青处漫溯; 满载一船星辉, 在星辉斑斓里放歌。
      但我不能放歌, 悄悄是别离的笙箫; 夏虫也为我沉默, 沉默是今晚的康桥!
      悄悄的我走了, 正如我悄悄的来; 我挥一挥衣袖, 不带走一片云彩。

    3. 插入链接和图片

    3.1 行内式

    3.1.1 插入链接

    在 Markdown 中,插入链接不需要其他按钮,你只需要使用 [显示文本](链接地址) 这样的语法即可, ()中的”“中可以为链接指定title属性,title属性可加可不加。title属性的效果是鼠标悬停在链接上会出现指定的 title文字。[链接文字](链接地址 “链接标题”)’这样的形式。链接地址与链接标题前有一个空格。例如:

    [Markdown语法浅析](http://www.jianshu.com/p/7aec157c395f "Markdown语法手册")
    

    实际的文本的显示:
    Markdown语法浅析

    3.1.2 插入图片

    在 Markdown 中,插入图片不需要其他按钮,你只需要使用![] (http:https://img.haomeiwen.com/i8045074/74f928e25da4cc33.jpg) 这样的语法即可,例如:

    ![](http:https://img.haomeiwen.com/i8045074/74f928e25da4cc33.jpg "中山大学")
    

    实际的显示为:


    国家超算广州中心

    3.2 参考式

    参考式超链接一般用在学术论文上面,或者另一种情况,如果某一个链接在文章中多处使用,那么使用引用 的方式创建链接将非常好,它可以让你对链接进行统一的管理。

    语法说明:
    参考式链接分为两部分,文中的写法 [链接文字][链接标记],在文本的任意位置添加[链接标记]:链接地址 “链接标题”,链接地址与链接标题间有一个空格

    如果链接文字本身可以做为链接标记,你也可以写成[链接文字][]
    [链接文字]:链接地址的形式,见代码的最后一行。
    链接地址要与前面的内容间空一行

    1. 我经常去的几个网站[Google][1]、[Leanote][2]以及[自己的博客][3]
    2. [Leanote 笔记][2]是一个不错的[网站][]。
    3.
    4. [1]:http://www.google.com "Google"
    5. [2]:http://www.jianshu.com/ "简书"
    6. [3]:http://www.jianshu.com/u/7aa386aee7ca "梵居小镇"
    7. [网站]:http://http://blog.leanote.com/freewalk
    

    显示的效果:
    我经常去的几个网站Google简书以及自己的博客梵居小镇
    虎扑步行街是一个不错的网站

    3.3 自动链接式

    语法说明:
    Markdown 支持以比较简短的自动链接形式来处理网址和电子邮件信箱,只要是用<>包起来, Markdown 就会自动把它转成链接。一般网址的链接文字就和链接地址一样,例如:
    代码:

    - <http://example.com/>
    - <address@example.com>
    

    显示效果:
    http://example.com/
    address@example.com

    4. 引用

    在 Markdown 中,你只需要在引用的文字前面加上 > 就好,比如:

    4.1 普通引用

    >Markdown语法浅析
    

    实际显示为:

    Markdown语法浅析

    4.2 代码引用

    需要引用代码时,如果引用的语句只有一段,不分行,可以用将语句包起来。
    如果引用的语句为多行,可以将置于这段代码的首行和末行。
    比如:
    Markdown语法浅析

    Markdown语法浅析
    

    4.3 引用的多层嵌套

    区块引用可以嵌套(例如:引用内的引用),只要根据层次加上不同数量的 > :

    >>> 请问 Markdwon 怎么用? - 小白
    >> 自己看教程! - 愤青
    > 教程在哪? - 小白
    

    显示效果为:

    请问 Markdwon 怎么用? - 小白

    自己看教程! - 愤青
    教程在哪? - 小白

    4.4 引用其它要素

    引用的区块内也可以使用其他的 Markdown 语法,包括标题、列表、代码区块等:

    > 1.   这是第一行列表项。
    > 2.   这是第二行列表项。
    > 
    > 给出一些例子代码:
    > 
    >     return shell_exec("echo $input | $markdown_script");
    

    显示效果为:

    1. 这是第一行列表项。
    2. 这是第二行列表项。

    给出一些例子代码:

    return shell_exec("echo $input | $markdown_script");
    

    5. 粗体和斜体以及删除线

    Markdown 的粗体和斜体非常简单,用两个 * 包含一段文本就是粗体的语法,用一个 * 包含一段文本就是斜体的语法。例如:
    代码:

    **Markdown语法浅析**
    *Markdown语法浅析*
    ***Markdown语法浅析***
    ~~Markdown语法浅析~~
    

    显示效果

    Markdown语法浅析
    Markdown语法浅析
    Markdown语法浅析
    Markdown语法浅析

    6. 表格

    相关的代码为:

    | Tables        | Are           | Cool  |
    | ------------- |:-------------:| -----:|
    | col 3 is      | right-aligned | $1600 |
    | col 2 is      | centered      |   $12 |
    | zebra stripes | are neat      |    $1 |
    
    Tables Are Cool
    col 3 is right-aligned $1600
    col 2 is centered $12
    zebra stripes are neat $1

    实际的显示为:

    Tables Are Cool
    col 3 is right-aligned $1600
    col 2 is centered $12
    zebra stripes are neat $1

    又例如:

    教程标题| 主要内容
    -------|----------
    关于Markdown | 简介Markdown,Markdown的优缺点
    Markdown基础 | Markdown的**基本语法**,格式化文本、代码、列表、链接和图片、分割线、转义符等
    Markdown表格和公式 | Markdown的**扩展语法**,表格、公式
    
    教程标题 主要内容
    关于Markdown 简介Markdown,Markdown的优缺点
    Markdown基础 Markdown的基本语法,格式化文本、代码、列表、链接和图片、分割线、转义符等
    Markdown表格和公式 Markdown的扩展语法,表格、公式

    6.锚点(简书好像不支持)

    网页中,锚点其实就是页内超链接,也就是链接本文档内部的某些元素,实现当前页面中的跳转。比如我这里写下一个锚点,点击回到目录,就能跳转到目录。 在目录中点击这一节,就能跳过来。还有下一节的注脚。这些根本上都是用锚点来实现的。

    注意: Markdown Extra 只支持在标题后插入锚点,其它地方无效。
    语法描述:
    在你准备跳转到的指定标题后插入锚点{#标记},然后在文档的其它地方写上连接到锚点的链接。

    ## 0. 目录{#index}
    跳转到[目录](#index)
    

    显示结果为:
    跳转到目录

    7.注脚

    在需要添加注脚的文字后加上脚注名字[^注脚名字],称为加注。 然后在文本的任意位置(一般在最后)添加脚注,脚注前必须有对应的脚注名字。
    注意:经测试注脚与注脚之间必须空一行,不然会失效。成功后会发现,即使你没有把注脚写在文末,经Markdown转换后,也会自动归类到文章的最后。脚注自动被搬运到最后面,请到文章末尾查看,并且脚注后方的链接可以直接跳转回到加注的地方。

    使用 Markdown[^1]可以效率的书写文档, 直接转换成 HTML[^2], 你可以使用 Leanote[^Le] 编辑器进行书写。
    [^1]:Markdown是一种纯文本标记语言
    [^2]:HyperText Markup Language 超文本标记语言
    [^Le]:开源笔记平台,支持Markdown和笔记直接发为博文
    

    显示效果为:
    使用 Markdown[1]可以效率的书写文档, 直接转换成 HTML[2], 你可以使用 Leanote[3] 编辑器进行书写。

    8. 分割线

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

    显示效果为:可以看出都是一样的






    9. 代码

    对于程序员来说这个功能是必不可少的,插入程序代码的方式有两种,一种是利用缩进(Tab), 另一种是利用”`”符号(一般在ESC键下方)包裹代码。

    9.1 行内式

    1. C语言里的函数 `scanf()` 怎么使用?
    

    显示效果为:
    C语言里的函数 scanf() 怎么使用?

    9.2 缩进式多行代码

    缩进 4 个空格或是 1 个制表符一个代码区块会一直持续到没有缩进的那一行(或是文件结尾)。

        #include <stdio.h>
        int main(void)
        {
            printf("Hello world\n");
        }
    

    显示结果为:

    #include <stdio.h>
    int main(void)
    {
        printf("Hello world\n");
    }
    

    另一方法:

    ···
    #include <stdio.h>
    int main(void)
    {
        printf("Hello world\n");
    }
    ···
    

    显示结果为:

    #include <stdio.h>
        int main(void)
        {
            printf("Hello world\n");
        }
    

    10. HTML 原始码(好像简书没有支持)

    在代码区块里面, & 、 < 和 > 会自动转成 HTML 实体,这样的方式让你非常容易使用 Markdown 插入范例用的 HTML 原始码,只需要复制贴上,剩下的 Markdown 都会帮你处理,例如:

    <div class="footer">
       © 2004 Foo Corporation
    </div>
    
    <table>
        <tr>
            <th rowspan="2">值班人员</th>
            <th>星期一</th>
            <th>星期二</th>
            <th>星期三</th>
        </tr>
        <tr>
            <td>李强</td>
            <td>张明</td>
            <td>王平</td>
        </tr>
    </table>
    

    1. Markdown是一种纯文本标记语言

    2. HyperText Markup Language 超文本标记语言

    3. 开源笔记平台,支持Markdown和笔记直接发为博文

    相关文章

      网友评论

        本文标题:Markdown语法解析

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