如何使用MediaWiki中的Lua模块来显示图形



我目前有一个Lua模块,它对传递的数据进行一些操作,然后我希望它在文章中显示一个图形。

我在正确显示图形时遇到了问题,但到目前为止我已经尝试了几种方法:

以{{Graph:Chart|variablesHere}}的形式输出,使用扩展页上推荐的图形模板,通常效果良好。这种方法的问题是(我认为(因为它来自一个模块,文本实际上并没有被MediaWiki处理,因此显示明文。

使用require("Module:Graph"(并将输出打印到页面上,但它也不能正确地生成图形,因为它的格式不正确,而且我还不能理解如何像Template:Graph:Chart那样转换

只是想从这里找到任何建议。

使用frame:preprocess(string_containing_templates)展开包含模板(如Template:Graph:Chart(的字符串。

如果你想避免预处理,你可以调用Module:Graph的chart函数,但要得到与展开Template:Graph:Chart相同的结果很复杂,因为你必须将Template:Chart:Graph的内容转换为Lua。要生成与frame:preprocess("{{Graph:Chart|width=100|height=100|x=1|y=1}}")相同的内容,您需要执行以下操作:

frame:extensionTag("templatestyles", nil, { src = "Graph:Chart/styles.css" })
.. frame:extensionTag (
"graph",
require("Module:Graph").chart { args = { width = '100', height = '100', x = '1', y = '1' } }
)

这里frame必须是一个帧对象。不是很漂亮,如果对模板进行了任何更改,它们都不会反映在模块代码中。因此,最好只是对模板进行预处理。

最新更新