我在ShoutWiki上托管了一个MediaWiki网站。我想创建一个模板,它将返回一个表,其中的行由模板的单个参数过滤。该表可以以任何有效的格式存储。它将有三列,只有当模板的参数是行中第一个单元格中文本的子字符串时,我才希望显示行。搜索需要区分大小写。
有JavaScript解决方案,但如果可能的话,我想在服务器上完成。
如果您没有特殊的扩展处理(例如Scribunto添加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,您可以简单地将表保存为HTML表、JSON或您找到的任何解析器。请注意,MediaWiki和用户命名空间中的JSON支持(识别、格式化、验证)正在进行中