如何使用 pod 生成编号列表?
How do I generate numbered lists with pod?
正在查看 https://docs.raku.org/language/pod#Lists。我没有找到创建编号列表的方法:
- 一个
- 三个
- 四个
是否有未记录的方法?
就用一个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 部分
正在查看 https://docs.raku.org/language/pod#Lists。我没有找到创建编号列表的方法:
- 一个
- 三个
- 四个
是否有未记录的方法?
就用一个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 部分