在 MediaWiki 上使用模块

Working with modules on MediaWiki

我需要在我的 wiki 上重复一个字符串 n 次。

看来我可以使用 Module:String

{{#invoke:String|rep|hello|3}}

但我得到的不是 hellohellohello,而是 {{#invoke:String|rep|hello|3}}

我需要安装或开启模块吗?我熟悉 MediaWiki 扩展,但我以前从未接触过模块,也找不到任何文档。

是的,您需要安装 Extension:Scribunto — 这就是在 wiki 上创建模块命名空间、#invoke 函数和 Lua 模块的原因。

那么你应该能够从 mediawiki.org 等导入模块并在本地使用它们。

如果您不太关心解析性能/不使用大量重复,您可以做一些像

这样的骇人听闻的事情
<!-- Template:Repeat -->
{{#ifexpr:{{{2}}}|{{{1}}}{{repeat|{{{1}}}|{{#expr:{{{2}}}-1}}}}}}

<!-- Template:Repeat -->
{{#switch: {{{2}}}
| 0 =
| 1 = {{{1}}}
| 2 = {{{1}}}{{{1}}}
| 3 = {{{1}}}{{{1}}}{{{1}}}
...