用于过滤 table 内容的 MediaWiki 模板

MediaWiki template to filter table contents

我在 ShoutWiki 上托管了一个 MediaWiki 站点。我想创建一个模板,它将 return 和 table,其中的行由模板的单个参数过滤。 table 可以以任何有效的格式存储。它将有三列,我只想在模板的参数是行中第一个单元格中文本的子字符串时显示行。搜索需要区分大小写。

有 JavaScript 个解决方案,但如果可能,我想在服务器上进行。

如果您没有特殊的扩展处理(例如 Scribunto adding Lua 支持,因此没有真正的 MediaWiki 编程语言),您需要将每一行封装到自己的模板调用中.

示例:

模板:FilteredRow

{{#ifeq:{{{1|}}}|{{{2|}}}|<tr><td>{{{2|empty row}}}</tr></td> }}

模板:A_Table

<table>
{{FilteredRow|1={{{filter|}}}|2=some content here}}
{{FilteredRow|1={{{filter|}}}|2=some content here in row 2}}
{{FilteredRow|1={{{filter|}}}|2=some content here in row 3}}
{{FilteredRow|1={{{filter|}}}|2=baz}}
</table>

使用:

{{A_Table|filter=baz}}

结果:

<table>
<tr><td>baz</td></tr>
</table>

使用 Scribunto,您可以简单地将 table 保存为 HTML table, or JSON, or whatever parser you find. Note that JSON support (recognition, formatting, validation) in MediaWiki and user namespace is being worked on