代码之家  ›  专栏  ›  技术社区  ›  Daniel Kaplan

当第一个元素是多行的时,如何在10或更大的时候开始一个降价列表?

  •  1
  • Daniel Kaplan  · 技术社区  · 1 年前

    我知道如何从大于9的数字开始编号列表。我知道如何创建多行列表元素。但我还没有找到同时做这两件事的方法。 I've also tested this on GitHub 它的行为方式与StackOverflow相同 * :

    渲染列表

    1. 项目

    2. 项目

      项目

    3. 项目

    4. 项目

      This is some typescript code:
      
      function fn(a: string) {
        console.log(a);
      }
      
    5. 项目

    此行在任何列表之外

    1. 项目

      项目

    2. 项目

    3. 项目

      项目

    4. 项目

    5. 项目

      项目

    此行不在任何列表中。

    1. 项目

    项目

    1. 项目

      项目

    2. 项目

      项目

    降价

    1. item
    1. item
    
       item
    1. item
    1. item
    
       ```ts
       This is some typescript code:
    
       function fn(a: string) {
         console.log(a);
       }
       ```
    1. item
    
    This line is outside of any list
    
    6. item
    
       item
    1. item
    1. item
    
       item
    1. item
    1. item
    
       item
    
    This line is outside of any list.
    
    11. item
    
       item
    1. item
    
       item
    1. item
    
       item
    

    问题

    如何获得要点 11. 以及接下来要正确渲染的内容?


    * :只有一个例外。 StackOverflow lacks syntax highlighting on the code block, which I believe is a bug. 但这与这个帖子无关。

    2 回复  |  直到 1 年前
        1
  •  2
  •   jsejcksn    1 年前

    缩进很重要 这在定义的规则中进行了描述 list items 在CommonMark规范(v0.30)中:

    基本情况。 如果一系列行 ls 构成一个区块序列 Bs 以空格或制表符以外的字符开头,以及 M 是宽度的列表标记 W 然后是1 N 缩进4个空格,然后是预处理的结果 M 和以下空格到Ls*的第一行,并缩进的后续行 ls 通过 W+N 空格,是一个列表项 Bs 作为其内容。列表项的类型(项目符号或排序)由其列表标记的类型决定。如果列表项已排序,则还会根据已排序的列表标记为其指定一个起始编号。

    在您的示例中 item 以下有序列表项11没有缩进到足以被视为列表项的子内容,因此它被解析为新段落:


    代码:

    This line is outside of any list.
    
    11. item
    
       item is now child content
    1. item
    
       item
    1. item
    
       item
    

    提供:

    此行不在任何列表中。

    1. 项目

    项目<-

    1. 项目

      项目

    2. 项目

      项目


    通过添加额外的空格,该项目将缩进到足以被解析为列表项目的子内容,并且以下列表项目将继续作为同一列表的一部分(不再被段落打断):


    代码:

    This line is outside of any list.
    
    11. item
    
        item is now child content
    1. item
    
       item
    1. item
    
       item
    

    提供:

    此行不在任何列表中。

    1. 项目

      项目现在是子内容

    2. 项目

      项目

    3. 项目

      项目

        2
  •  0
  •   Daniel Kaplan    1 年前

    好吧,我发现我做错了什么:我用3个空格代替4个空格进行缩进。出于某种原因,在遇到这种非常特殊的情况之前,3可以很好地工作。以下是相同的列表,其中有4个空格,而不是3个空格:

    渲染列表

    1. 项目

    2. 项目

      项目

    3. 项目

    4. 项目

      This is some typescript code:
      
      function fn(a: string) {
        console.log(a);
      }
      
    5. 项目

    此行在任何列表之外

    1. 项目

      项目

    2. 项目

    3. 项目

      项目

    4. 项目

    5. 项目

      项目

    此行不在任何列表中。

    1. 项目

      项目

    2. 项目

      项目

    3. 项目

      项目