Tools 是非官方社区Wiki。社区文档正在编写中,欢迎参与。 Wiki编辑答疑群:717421103
版本250722.2
全站通知:

帮助:解析函数/listunique

来自WIKI实验室WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

listunique是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。

listunique

列表去重。出自扩展 ParserPower

支持按照指定wikitext操作列表项作为对比键。

语法

{{#listunique:
  |list=
  |insep=
  |outsep=
  |uniquecs=
  |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: 过滤后列表如果为空时的输出。

去重参数,可选:

  • uniquecs: 设为yes时,区分大小写
  • token, pattern: token作为占位符,pattern是格式wikitext,每个列表项都将被代入pattern中占位符的位置,展开后作为去重键
    • indextoken: pattern中的token将被替换为(列表项的)序号而不是值
  • tokensep, fieldsep: fieldsep是用于列表项的分隔符,此时token可指定多个占位符(默认分隔符是逗号,也可通过tokensep指定),pattern能单独针对列表项的一部分处理
  • template: 通过模板处理列表项,每个列表项被作为参数1传入模板。使用参数会忽略token、tokensep和pattern
    • fieldsep: 列表项分隔符,将每个列表项分割为多个参数传入模板

示例

  • {{#listunique:list=Apple,Apple,Orange,Banana,Orange,Banana}} → Apple, Orange, Banana

底层代码

请参阅: https://gitlab.com/hydrawiki/extensions/ParserPower/-/blob/master/includes/ParserPowerLists.php?ref_type=heads#L1307

实际用例

一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时仅供批判性参考