Lua脚本错误:找不到模块:文档,尽管模块:文档是从维基百科导入的

时间:2016-08-21 17:01:43

标签: mediawiki

如标题所示, 我正在遵循本指南: https://m.mediawiki.org/wiki/Manual:Importing_Wikipedia_infoboxes_tutorial

我按照说明wikipedias模块导出:文档 然而,当我去各种信息框模板,如Template:Infobox_tool时,我看到的是 脚本错误:没有这样的模块“文档”。

不太清楚我做错了什么。

1 个答案:

答案 0 :(得分:0)

我想我可以猜出问题是什么。

在维基百科上,页面名称始终以大写字母开头。因此,如果您转到https://en.wikipedia.org/wiki/apple,它会将您重定向到https://en.wikipedia.org/wiki/Apple。这同样适用于模板名称和模块名称,因此Module:documentation会将您重定向到Module:Documentation

但是,如果在LocalSettings.php中将$wgCapitalLinksthis option设置为false,则可以覆盖此行为,并使所有页面名称完全区分大小写。我猜这就是你在装置中所做的。

如果是这种情况,那么您将破坏从维基百科导入的任何模板,这些模板假定页面名称始终以大写字母开头(即他们使用{{#invoke:documentation|main}}而不是{{#invoke:Documentation|main}}之类的代码。根据我的经验,有很多模板可以做到这一点。它不仅仅是Lua模块;当您转换模板时会发生同样的事情。

这个问题有两种解决方案 - 简单的解决方案和困难的解决方案。简单的方法是通过在LocalSettings.php中设置$wgCapitalLinks = true;(或者只删除$wgCapitalLinks = false;)使所有页面名称以大写字母开头。如果您不想这样做,那么您就会遇到困难的问题:检查您导入的所有模板,并确保它们使用模块名称的正确大写。

在您的情况下,转到Template:Documentation并将代码从{{#invoke:documentation|main}}更改为{{#invoke:Documentation|main}}可能会解决您的问题。

还可以使用maintenance script来修复页面中断开的链接以及损坏的模板转换。但是,此刻,此脚本不会修复损坏的#invoke语句,因为正常的重定向在Module命名空间中不起作用,因此您必须手动执行这些操作。