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

时间:2018-12-03 19:10:42

标签: lua mediawiki

我目前有一个Lua模块,可以对传递的数据进行一些处理,然后希望在文章上显示图形。

我无法正确显示图形,但是到目前为止,我已经尝试了几种方法:

  

使用扩展模板上建议的图形模板,以{{Graph:Chart | variablesHere}}的形式输出,通常效果很好。这种方法的问题是(我认为),因为它来自模块,所以MediaWiki实际上并未处理文本,因此显示纯文本。

     

使用require('Module:Graph')并将输出打印到页面上,但是由于格式不正确而且我也无法理解如何转换它,所以它不能正确地制作图形就像Template:Graph:Chart一样

只需寻找有关从此处出发的建议。

1 个答案:

答案 0 :(得分:0)

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

如果要避免进行预处理,可以调用Module:Graphchart函数,但是要获得与扩展Template:Graph:Chart相同的结果很复杂,因为您必须翻译内容的模板:图表:图形到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必须是框架对象。不是很漂亮,如果对模板进行了任何更改,它们也不会反映在您的模块代码中。因此,最好只对模板进行预处理。