zoukankan      html  css  js  c++  java
  • Markdown温故知新(2):详解七大标准语法

    说明:在 Markdown 中,一行是指由换行符或回车符之外的字符构成的行,而不包含字符的行或仅包含空格或制表符的行则称之为空行。

    1、标题

    每篇文章都需要标题,不同的层级需要不同大小的标题。要在 Markdown 中实现这种分级标题的效果,只需要在标题前加上井号和空格即可,井号越多,标题越小,最多 6 个井号。具体规则如下:

    • 在文本前加 1 个#和 1 个空格,文本就会变成一级标题(对应 HTML 中的 H1)
    • 在文本前加 2 个#和 1 个空格,文本就会变成二级标题(对应 HTML 中的 H2)
    • 在文本前加 3 个#和 1 个空格,文本就会变成三级标题(对应 HTML 中的 H3)
    • 在文本前加 4 个#和 1 个空格,文本就会变成四级标题(对应 HTML 中的 H4)
    • 在文本前加 5 个#和 1 个空格,文本就会变成五级标题(对应 HTML 中的 H5)
    • 在文本前加 6 个#和 1 个空格,文本就会变成六级标题(对应 HTML 中的 H6)

    一般来说,四级标题就足够用了,所以有些 Markdown 的样式默认只对前 4 级标题做区分。

    示例一下,输入文本如下:

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

    显示效果如下:

    一级标题

    二级标题

    三级标题

    四级标题

    五级标题
    六级标题

    另外,一级标题还可以在标题的下一行用等号来标识,二级标题还可以在标题的下一行用减号来标识。需要注意的是,这种语法在不同平台会有差异,有些平台只需要一个等号或减号就行,也有些平台至少需要两个,还有些平台则至少需要三个。

    换句话说,你至少需要写三个等号或减号才能确保在多数平台上都有效果。当等号或减号的数量达到三个之后,再多写就不会有额外效果了,所以有些人会疯狂的写上很多个等号或减号,其实没必要。

    示例一下,输入文本如下:

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

    显示效果如下:
    一级标题

    二级标题

    2、强调(粗体 & 斜体)

    如果不写任何标记符号,那 Markdown 编辑器对你来说就约等于记事本,可能唯一不同的地方就是无论你在 Markdown 编辑器中输入多少个空格,最终只会呈现一个。

    Markdown 默认只支持粗体和斜体,大多数时候这已经足够了。只需要在文本前后都加上星号,星号中的文本就会自动变粗或倾斜。具体规则如下:

    • 1、在文本前后各加 1 个*,文本就会变成斜体
    • 2、在文本前后各加 2 个*,文本就会变成粗体
    • 3、在文前前后各加 3 个*,文本就会变成粗斜体

    另外,也可以用下划线来代替星号,效果是一样的。

    示例一下,输入文本如下:

    科技*改变*生活,代码_改变_世界
    科技**改变**生活,代码__改变__世界
    科技***改变***生活,代码___改变___世界
    

    显示效果如下:
    科技改变生活,代码_改变_世界
    科技改变生活,代码__改变__世界
    科技改变生活,代码___改变___世界

    注意:强调效果可以嵌套到列表行和引用段落中,但不能应用到标题或代码块中。我的理解是因为标题和代码块本身就有强调的意味。

    3、列表

    Markdown 中的列表有两种,有序列表和无需列表。有序列表的每一行用一个数字、一个英文句点及一个空格来标识,无序列表的每一行用一个减号和一个空格来标识。

    有序列表,示例一下,输入文本如下:

    1. 长江
    2. 珠江
    2. 黄河
    

    显示效果如下(你有没有发现黄河前面的 2 被自动纠正为 3 了?):

    1. 长江
    2. 珠江
    3. 黄河

    无序列表,示例一下,输入文本如下:

    - 重复言说多半是时间上的损失。
    - 教育的目的在于使人能够继续教育自己。
    - 怕什么真理无穷,进一寸有一寸的欢喜。
    

    显示效果如下:

    • 重复言说多半是时间上的损失。
    • 教育的目的在于使人能够继续教育自己。
    • 怕什么真理无穷,进一寸有一寸的欢喜。

    其实,无序列表除了可以用减号来标识之外,还可以用加号或星号来标识。比如上例中的-就可以换成+*,效果完全一样,甚至可以混用这 3 种符号。

    列表嵌套,示例一下,输入文本如下:

    - 1、第一章
        - 1.1、第一节
        - 1.2、第二节
            1. 人不仅有好奇心,还有求知欲
            2. 追问事物的原理,是为了控制和利用
            3. 人发明了巫术,又从中分离出了科学
    - 2、第二章
        - 2.1、第一节
        - 2.2、第二节
    - 3、第三章
    

    显示效果如下:

    • 1、第一章
      • 1.1、第一节
      • 1.2、第二节
        1. 人不仅有好奇心,还有求知欲
        2. 追问事物的原理,是为了控制和利用
        3. 人发明了巫术,又从中分离出了科学
    • 2、第二章
      • 2.1、第一节
      • 2.2、第二节
    • 3、第三章

    引用列表,并且在列表中使用标题、粗体和斜体,示例一下,输入文本如下:

    > ## 五大联合国常任理事国
    - **中华人民共和国**
    - *美利坚合众国*
    - 俄罗斯联邦
    - 大不列颠及北爱尔兰联合王国
    - 法兰西共和国
    

    显示效果如下:

    五大联合国常任理事国

    • 中华人民共和国
    • 美利坚合众国
    • 俄罗斯联邦
    • 大不列颠及北爱尔兰联合王国
    • 法兰西共和国

    列表中还可以包含代码块,需要在代码块的前面加上 8 个空格或 2 个制表符。

    4、链接 & 图片

    文本链接的写法是用一对中括号包裹链接文本,紧接着用一对小括号包裹链接地址,即[链接文本](链接地址)。另外,还可以给链接加 title,用双引号或单引号包裹并放在链接地址后面,即[链接文本](链接地址 "title文本")

    示例一下,输入文本如下:

    [万能的淘宝](https://www.taobao.com/)
    [百度一下](https://www.baidu.com/ "你就知道")
    

    显示效果如下:
    万能的淘宝
    百度一下

    图片链接的写法只需要在文本链接的前面加上一个感叹号即可。当然链接地址得是图片地址,链接文本可写可不写,因为不会显示出来,而且不写也不影响图片的显示。

    示例一下,输入文本如下:

    ![博客园Logo](https://www.cnblogs.com/images/logo_small.gif)
    ![百度Logo](https://www.baidu.com/img/baidu_jgylogo3.gif "百度一下,你就知道")
    

    显示效果如下:
    博客园Logo
    百度Logo

    如果你在本地写作,也想看图片链接的效果,那么你需要把图片拷贝到 Markdown 文件所在的目录中,假如这个图片名称是kid.jpg,那么写法就是![](kid.jpg)。或者拷贝到所在目录的子目录中也行,加入子目录名称是imgs,那么写法就是![](imgs/kid.jpg)

    引用链接
    在实际应用中,链接地址往往是比较长的,而且有时候还需要文章中多次引用某个链接,这时候可以在 Markdown 文件末尾定义一下该链接,并设置一个简短的链接文本,然后就可以在上文中通过链接文本来引用该链接了。

    示例一下,输入文本如下:

    部分中文搜索用[百度][bd]效果更好,多数英文搜索用[谷歌][gg]效果更好,技术搜索[谷歌][gg]的效果往往要比[百度][bd]的效果好很多。
    然而遗憾的是,在中国访问[谷歌][gg]需要翻墙。
    [bd]: https://www.baidu.com/ "百度一下,你就知道"
    [gg]: https://www.google.com/ "墙外更精彩"
    

    显示效果如下:
    部分中文搜索用[百度][bd]效果更好,多数英文搜索用[谷歌][gg]效果更好,技术搜索[谷歌][gg]的效果往往要比[百度][bd]的效果好很多。
    然而遗憾的是,在中国访问[谷歌][gg]需要翻墙。
    [bd]: https://www.baidu.com/ "百度一下,你就知道"
    [gg]: https://www.google.com/ "墙外更精彩"

    上面示例的是如何引用文本链接,引用图片链接的方式与引用文本链接的方式完全相同。

    自动链接指的是当你输入一个 url 或邮箱地址等链接时,Markdown 会自动将其转换为可访问的链接,写法是将链接地址置于一对尖括号之中。

    示例一下,输入文本如下:

    <https://www.cnblogs.com/>
    https://www.cnblogs.com/ 效果对比行
    <luck@qq.com>
    luck@qq.com 效果对比行
    

    显示效果如下:
    https://www.cnblogs.com/
    https://www.cnblogs.com/ 效果对比行
    luck@qq.com
    luck@qq.com 效果对比行

    可能你会发现,在你使用的编辑器中写不写尖括号效果都一样,那是因为你使用的编辑器自带了链接识别功能。在很多博客或网络笔记中,要想链接显示成链接的效果,还是得加尖括号。

    5、代码块

    在 Markdown 的所有语法中,代码快大概是最能打动程序员的。尽管在程序员之外的人看来,代码快的效果不过是给文本加了个框,但写过文档的程序员都知道 Word 等文字处理软件中代码的显示效果和编辑效果有多糟糕。

    代码块有两种:一种是行内代码块,用两个反单引号(也称重音符)包裹一下即可;另一种是多行代码快,在每行代码前加四个空格或一个制表符(Tab)的缩进,然后与上一行文本之间保留一个空行即可。

    行内代码块,示例一下,输入文本如下:

    JavaScript 在控制台输出消息的语法是 `console.log(message)`。
    

    显示效果如下:
    JavaScript 在控制台输出消息的语法是 console.log(message)

    多行代码快,示例一下,输入文本如下:

        class Program {
            static void Main(string[] args) {
                Console.WriteLine("Hello World!");
            }
        }
    

    显示效果如下:

    class Program {
        static void Main(string[] args) {
            Console.WriteLine("Hello World!");
        }
    }
    

    有些工具或平台支持很多语言的代码高亮,现实效果非常好。常见标准中都没有规定这一块,所以如果你想要代码高亮,就得按你所用工具的语法规则来写了。

    关于多行代码快,CommonMark 标准中定义了一个相对来说更加方便书写的语法,就是以三个独占一行的反单引号开头,并且以三个独占一行反单引号结尾。这样就不用写缩进了,而且代码块与上一行之间也不必再保留一个空行了。而且常见的各种工具基本都支持,似乎已经成为事实上的标准了。

    示例一下,输入文本如下:
    class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } }
    显示效果如下:

    class Program {
        static void Main(string[] args) {
            Console.WriteLine("Hello World!");
        }
    }
    

    6、引用

    如果需要在文中引入一段有出处的话,就可以采用引用的方式实现。实现的方式是在这段话的开头或上一行加上一个尖括号和一个空格。虽然 Markdown 的引用语法很简洁,但用法却很灵活,几乎可以和任何语法连用,而且很强大,能够逐级嵌套引用。

    普通引用,示例一下,输入文本如下:

    > 普通文本 **加粗文本** *斜体文本*
    > ## 二级标题
    > #### 四级标题
    

    显示效果如下:

    普通文本 加粗文本 斜体文本

    二级标题

    四级标题

    嵌套引用,示例一下,输入文本如下:

    > 一层引用
    >> 两层引用
    >>> 三层引用
    >>>> 四层引用
    >>>>> 五层引用
    

    显示效果如下:

    一层引用

    两层引用

    三层引用

    四层引用

    五层引用

    7、分割线

    有些作者很喜欢用水平分割线,也称分隔符或横线,在 Markdown 中,分割线的写法与标题的第二种写法十分相似,在新的一行连续输入 3 个或 3 个以上的星号即可。

    星号之间可以有空格,且星号还可以用减号或下划线来代替。需要注意的是,如果用减号,那分割线与上面的段落之间需要空出一行,否则分割线就会与上面的段落组成二级标题了。

    示例一下,输入文本如下:

    ***
    * * *
    
    ---(注意:此行的上一行是空着的)
    ___
    

    显示效果如下:





    8、总结

    本文主要讲解了 Markdown 的七大标准语法的用法。掌握了这七大标准语法,就足够应对 Markdown 的一般写作需求了。

    通过本文示例可见,Markdown 的语法完全由标点符号构成,且标点符号经过精心挑选,看起来比较直观形象。例如,文本周围的*看起来像是在强调,分割线看起来就像是横线,列表排列看起来就像是列表。

    本文链接http://www.cnblogs.com/hanzongze/p/markdown-standards.html
    版权声明:本文为博客园博主 韩宗泽 原创,作者保留署名权!欢迎通过转载、演绎或其它传播方式来使用本文,但必须在明显位置给出作者署名和本文链接!个人博客,能力有限,若有不当之处,敬请批评指正,谢谢!

  • 相关阅读:
    团队冲刺第二阶段4
    团队冲刺第二阶段3
    Kibana客户端安装
    Elasticsearch安装IK分词器
    ElasticSearch 安装笔记
    smtp邮件发送
    5.28 vue2的diff算法
    4.24observer中并不会出现类似obj.data.name读取时,obj的data与data的name都出现被读取的现象。(改正错误!)
    4.1 原来cookie由浏览器管理!(服务端返回cookie后,浏览器保存cookie,再次发起http请求时会包含一个cookie的头部)
    4.1 HTTP请求中的Form Data与Request Payload的区别
  • 原文地址:https://www.cnblogs.com/hanzongze/p/markdown-standards.html
Copyright © 2011-2022 走看看