Как я могу использовать модуль Lua в MediaWiki для отображения графиков - PullRequest
0 голосов
/ 03 декабря 2018

В настоящее время у меня есть модуль Lua, который выполняет некоторые манипуляции с данными, которые передаются, и я хотел бы, чтобы он отображал график в статье.

У меня возникают проблемы с отображением графика должным образом, однако я пыталсяпара подходов на данный момент:

Вывод в виде {{Graph: Chart | variableHere}} с использованием шаблона графа, как рекомендуется на странице расширения, которая обычно работает нормально.Проблема с этим подходом состоит в том, что (я предполагаю), потому что это происходит из модуля, текст на самом деле не обрабатывается MediaWiki и, следовательно, отображает открытый текст.

Использование require ('Module: Graph') и печатьвывод на страницу, однако он также неправильно отображает график, так как он не отформатирован должным образом, и я не смог понять, как преобразовать его, как шаблон: График: Диаграмма:

Просто ищу какие-либо предложения о том, куда идти отсюда.

1 Ответ

0 голосов
/ 04 декабря 2018

Используйте frame:preprocess(string_containing_templates), чтобы развернуть строку, содержащую шаблоны, такие как Шаблон: График: Диаграмма .

Если вы хотите избежать предварительной обработки, вы можете вызвать функцию 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 должен быть объектом фрейма.Не очень красиво, и если в шаблон будут внесены какие-либо изменения, они не будут отражены в коде вашего модуля.Так что, вероятно, лучше всего предварительно обработать шаблон.

...