帮助:解析函数/listfilter
listfilter是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。
listfilter
列表过滤。出自扩展 ParserPower。
支持保留/排除项、模板条件等多种过滤方式,输出格式化后的新列表。
- 官方文档:ParserPower扩展文档
- wiki.gg文档:wiki.gg support wiki - ParserPower
语法
{{#listfilter:
|list=
|insep=
|outsep=
|keep=
|keepsep=
|keepcs=
|remove=
|removesep=
|removecs=
|token=
|tokensep=
|fieldsep=
|indextoken=
|pattern=
|template=
|counttoken=
|intro=
|outro=
|default=
}}
核心参数:
- list: 列表。如
item 1,item 2,item 3
- insep: 可选,输入分隔符,默认逗号
,
。用于分割参数list
,构建列表
输出格式控制,可选:
- outsep: 输出分隔符,默认逗号。用作输出时列表项的分隔符。
- intro, outro: 输出时指定前置和后置内容,列表为空时不输出。用于避免在列表前后使用if来控制前后内容。
- counttoken: 占位符,用于在intro, outro参数中填充过滤后的列表项数量
- default: 过滤后列表如果为空时的输出。
过滤参数,可选:
- keep: 指定保留值,默认不区分大小写。指定此参数将无视
remove
、template
、pattern
参数。- keepsep: 指定保留值分隔符,默认为逗号
- keepcs: 设为
yes
时,保留值keep
将区分大小写
- remove: 指定移除值,默认不区分大小写。指定此参数将无视
template
、pattern
参数。- removesep: 指定多个移除值的分隔符,默认为逗号
- removecs: 设为
yes
时,移除值remove
将区分大小写
- token, pattern: token作为占位符,pattern是条件wikitext,每个列表项都将被代入pattern中占位符的位置计算结果,如果是
remove
,对应项将被移出- indextoken: pattern中的token将被替换为(列表项的)序号而不是值
- tokensep, fieldsep: fieldsep是用于列表项的分隔符,此时token可指定多个占位符(默认分隔符是逗号,也可通过tokensep指定),pattern能单独针对列表项的一部分做筛选
- template: 通过模板处理列表项,每个列表项被作为参数1传入模板。如果模板返回值是
remove
,此项会被移除。使用参数会忽略token、tokensep和pattern- fieldsep: 列表项分隔符,将每个列表项分割为多个参数传入模板
过滤参数优先级:keep > remove > template > pattern
示例
{{#listfilter:list=Apple,Orange,Banana|keep=apple,banana}}
→ Apple, Banana{{#listfilter:list=1,10,100,1000|token=@|pattern=\{\{#ifexpr:@\g99\!remove\!keep\}\} }}
→ 1, 10- 其中,pattern是手动转义的条件,
{{#ifexpr:@>123|remove|keep}}
- 获得方式:
<esc>{{#ifexpr:@>123|remove|keep}}</esc>
→ \{\{#ifexpr:@\g123\!remove\!keep\}\} - 对于其他平台,可以直接用esc标签包裹条件作为参数,bwiki需要手动转义(这是一个
bug特性)
- 其中,pattern是手动转义的条件,
尚需进一步测试来了解平台bug对参数造成的限制。
底层代码
实际用例
- 一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时,仅供批判性参考。
- 尚未收录