Pandoc Lua 过滤器 - pandoc.list 模块
这是一个定义 Pandoc 列表类型的模块。它包含了一些实用的方法和便利函数。
构造器 Constructor
pandoc.List([table])
创建一个新的列表。如果提供了可选参数 table
,则设置该值的元表为 pandoc.List
。这是 pandoc.List:new([table]) 的别名。
元方法 Metamethods
pandoc.List:__concat (list)
将两个列表连接在一起。
参数 | 描述 |
---|---|
list |
连接到第一个列表的第二个列表 |
- 返回: 包含两个列表所有元素的新列表
pandoc.List:__eq (a, b)
比较两个列表是否相等。只有当两个列表具有相同的类型(即,具有相同的非空元表),长度相同,并且所有元素都相等时,才认为它们相等。
参数 | 描述 |
---|---|
a , b |
任何 Lua 对象 |
- 返回:
true
如果两个列表相等,否则返回false
方法 Methods
pandoc.List:clone ()
返回列表的一个(浅)拷贝。(要获得列表的深拷贝,请使用 walk
并附加一个空过滤器。)
pandoc.List:extend (list)
将给定的列表添加到当前列表的末尾。
参数 | 描述 |
---|---|
list |
要附加的列表 |
pandoc.List:find (needle, init)
返回给定项首次出现的值和索引。
参数 | 描述 |
---|---|
needle |
要搜索的项 |
init |
开始搜索的索引 |
- 返回: 第一个等于
needle
的项,如果没有这样的项,则返回nil
pandoc.List:find_if (pred, init)
返回满足给定谓词的第一个元素的值和索引。
参数 | 描述 |
---|---|
pred |
谓词函数 |
init |
开始搜索的索引 |
- 返回: 第一个使
test
成功的项,如果没有这样的项,则返回nil
pandoc.List:filter (pred)
返回一个新的列表,其中包含满足给定条件的所有项。
参数 | 描述 |
---|---|
pred |
项必须满足的条件 |
- 返回: 一个新列表,其中包含所有使
test
为真的项
pandoc.List:includes (needle, init)
检查列表中是否有等于给定 needle
的项。
参数 | 描述 |
---|---|
needle |
要搜索的项 |
init |
开始搜索的索引 |
- 返回: 如果列表中的某个项等于
needle
则返回true
,否则返回false
pandoc.List:insert ([pos], value)
在列表的指定位置 pos
插入元素 value
,必要时将其他元素向后移动。
此函数与 table.insert 相同。
参数 | 描述 |
---|---|
pos |
新值的索引,默认为列表长度加一 |
value |
要插入列表的值 |
pandoc.List:map (fn)
通过将给定函数应用于所有元素,返回当前列表的副本。
参数 | 描述 |
---|---|
fn |
应用于所有列表项的函数 |
pandoc.List:new ([table])
创建一个新的列表。如果提供了可选参数 table
,则设置该值的元表为 pandoc.List
。
参数 | 描述 |
---|---|
table |
应被视为列表的表,默认为空表 |
- 返回: 更新后的输入值
pandoc.List:remove ([pos])
删除位置 pos
处的元素,并返回被删除的值。
此函数与 table.remove 相同。
参数 | 描述 |
---|---|
pos |
将被删除的列表值的位置,默认为最后一个元素的索引 |
- 返回: 被删除的元素
pandoc.List:sort ([comp])
根据给定顺序对列表元素进行排序。如果提供了 comp
,那么它必须是一个接收两个列表元素并返回布尔值的函数,当第一个元素在最终顺序中应该排在第二个元素之前时返回 true
(因此,排序后,如果 i < j
,则意味着 not comp(list[j],list[i])
)。如果未提供 comp
,则使用标准的 Lua 操作符 <
。
注意
comp
函数必须在列表的元素上定义一个严格的偏序关系;也就是说,它必须是非对称的和传递的。否则,可能无法进行有效的排序。
排序算法不是稳定的:根据给定的顺序被认为相等的元素,它们之间的相对位置可能会因排序而发生变化。
此函数与 table.sort
完全相同。
参数 | 描述 |
---|---|
comp |
如上所述的比较函数 |