美文网首页繁花
Markdown语法 - 清单

Markdown语法 - 清单

作者: 闭环强迫症患者 | 来源:发表于2023-07-27 09:07 被阅读0次

    清单也是我们写文的时候最常用的几个格式之一。而在Markdown语法里,清单的实现则很多样,也很复杂。

    最常用的清单分两种:有序和无序

    有序清单

    有序清单像下面一样正常写,显示自然是正常的。

    1. 有序清单
    2. 嵌套
      1. 有序
      2. 清单
    1. 有序清单
    2. 嵌套
       1. 有序(前面三个空格)
       2. 清单(前面三个空格)
    

    也可以来个不正常的,效果却相同。

    1. 有序清单
    1. 嵌套
       1. 有序(前面三个空格)
       1. 清单(前面三个空格)
    

    或者更不正常的。

    1. 有序清单
    2. 嵌套
      1. 有序
      2. 清单
    1. 有序清单
    7. 嵌套
       3. 有序(前面三个空格)
       6. 清单(前面三个空格)
    

    看出啥名堂了么?对,我真是按着语法块里面那样输入的,但是在显示的时候数字仍然是顺序的。有序清单的起始数字由没一个级别的第一个数字控制,然后顺序进行。

    有序清单也可以使用右一半括号)代替点,跟使用点跟在数字后面效果是一样的,但是同一层级之间点和括号不可以混用,这里就不多说了。这样设计的好处是你不会弄混。

    无序清单

    无需清单比有序清单容易很多,前面可以有三种字符引导,这里只介绍简书APP最简单的一种。

    常见效果

    • 无序清单一
    • 无序清单二
    - 无序清单一
    - 无序清单二
    

    嵌套效果

    • 嵌套
      • 无序
      • 清单
    - 嵌套
      - 无序(前面两个空格)
      - 清单(前面两个空格)
    
    或
    
    - 嵌套
       - 无序(前面三个空格)
       - 清单(前面三个空格)
    

    那么为什么有序清单前面要空三个空格,而无序清单两个空格就可以呢?原因是有序清单的标识由一个数字和一个标点组成,占两个字符,加上一个空格就是三个。而无序清单只有一个减号和一个空格,只占两个字符。前面加入空格,实际目的是让语法标识跟上一级别的文字对齐,达到分级效果。

    无序清单跟有序清单也可以互相嵌套,也可以分更多级。

    • 一级无序清单一
      1. 二级有序清单一
      2. 二级有序清单二
        • 三级无序清单一
        • 三级无序清单二
    • 一级无序清单二
    - 一级无序清单一
      10. 二级有序清单一(前面两个空格)
      20. 二级有序清单二(前面两个空格)
         - 三级无序清单一(前面六个空格)
         - 三级无序清单二(前面六个空格)
    - 一级无序清单二(前面两个空格)
    

    参考上面这个语法块,下一级的标识都是跟上一级的文字对齐的,这样方能正常显示。

    但是你可能问了,也没对齐啊?第三级的减号明明没有跟第二级的文字对齐。那是因为空格的宽度要小于数字,但是在字符数量上是符合对齐这个原则的(英文、符号、空格占一个字符,中文字、中文符号占两个字符)。


    还有一种不太常用的清单:任务清单

    • 未完成
    • 已完成
    - [ ] 未完成
    - [x] 已完成
    

    子任务效果

    • 主任务
      • 子任务一
        • 子任务二
          • 子任务三
            • 子任务四
              • 子任务五
                • 子任务六
                  • 子任务七
                    • 子任务八
                      • 子任务九
                        - [ ] 子任务十
    - [ ] 主任务
      - [x] 子任务一(前面两个空格)
        - [ ] 子任务二(前面四个空格)
          - [ ] 子任务三(前面六个空格)
            - [ ] 子任务四(前面八个空格)
                - [ ] 子任务五(前面十个空格)
                  - [ ] 子任务六(前面十二个空格)
                    - [ ] 子任务七(前面十四个空格)
                      - [ ] 子任务八(前面十六个空格)
                        - [ ] 子任务九(前面十八个空格)
                          - [ ] 子任务十(前面二十个空格)
    

    大家发现了吧,分级不是无限的,最多十个层级。子任务十由于位于第十一层级,无法被识别。

    当然也可以与无序清单或有序清单嵌套。

    • 与无序清单嵌套
      • 已完成
      • 未完成
    - 与无序清单嵌套
      - [x] 已完成(前面两个空格)
      - [ ] 未完成(前面两个空格)
    
    1. 与有序清单嵌套
      • 已完成
      • 未完成
    1. 与有序清单嵌套
       - [x] 已完成(前面三个空格)
       - [ ] 未完成(前面三个空格)
    
    或
    
    1. 与有序清单嵌套
       1. [x] 已完成(前面三个空格)
       2. [ ] 未完成(前面三个空格)
    
    

    大家发现了吧,任务清单没有数字的概念,无论你使用的是无需清单还是有序清单,只要条目是任务,就没有数字在前面。必须注意的是,任务条目必须为清单条目,单独拿出来则没有效果。

    相关文章

      网友评论

        本文标题:Markdown语法 - 清单

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