如何使用 pod 生成编号列表?

How do I generate numbered lists with pod?

正在查看 https://docs.raku.org/language/pod#Lists。我没有找到创建编号列表的方法:

  1. 一个
  2. 三个
  3. 四个

是否有未记录的方法?

就用一个list and a loop?

    my @list = [ (1, 2, 3), (1, 2, ),
               [<a b c>, <d e f>],
               [[1]]];

    for @list -> @element {
        say "{@element} → {@element.^name}";
        for @element -> $sub-element {
            say $sub-element;
        }
    }
    
    # OUTPUT: 
    #1 2 3 → List 
    #1 
    #2 
    #3 
    #1 2 → List 
    #1 
    #2 
    #a b c d e f → Array 
    #(a b c) 
    #(d e f) 
    #1 → Array 
    #1

目前(截至 2022 年 1 月)没有在 Pod6 中使用有序列表的实现方法。

historical design documents 包含有序列表的 Pod6 语法,据我所知,这仍然是我们想要添加的内容。实现该语法后,您将能够编写如下内容:

=item1 # Animal 
=item2    # Vertebrate 
=item2    # Invertebrate 
 
=item1 # Phase 
=item2    # Solid 
=item2    # Liquid 
=item2    # Gas

这将产生如下输出:

1. Animal 
   1.1     Vertebrate 
   1.2     Invertebrate 
 
2. Phase 
   2.1     Solid 
   2.2     Liquid 
   2.3     Gas

(虽然渲染列表的确切语法将取决于 Pod 渲染器的实现。)

但在实现之前,没有任何方法可以使用 Pod6 语法来创建有序列表。

编辑:

我刚刚检查了实际解析的 Pod6,看起来(令我惊讶的是)我上面显示的有序列表语法实际上 内部解析的。例如,Pod6 的 运行 say $=pod[5].raku 显示以下内容(基于 =item2 # Liquid 行):

Pod::Item.new(level => 2, config => {:numbered(1)}, contents => [Pod::Block::Para.new(config => {}, contents => ["Liquid"])])

所以解析工作已经到位;只是 Pod::To::_ 渲染器需要添加支持。 (甚至可能有一些支持。我知道 Rakudo 的 Pod::To::Text nor Raku's Pod::To::HTML (v0.8.1) 目前都不会呈现有序列表。)

解决方法

根据您的目标输出格式,您当然可以自己编写有序列表(如果您要呈现为纯文本,这很容易,如果您要打印到 HTML).当然,这确实牺牲了 Pod6 的多输出格式支持,这是其主要功能之一。

对于不牺牲 Pod 多输出特性的解决方法,您可能希望以编程方式查看 manipulating/reformatting Pod 文本。如果这样做,开始的文档是 accessing Pod and the (unfortunately very short) section on the DOC phaser.

上的 Pod6 部分