在 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}}}
...
我需要在我的 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}}}
...