Запуск скрипта WikiMedia lua или расширение вывода модуля API - PullRequest
0 голосов
/ 10 июня 2018

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

  1. Есть ли способ предоставить библиотеку MediaWiki mw для автономного сценария lua?
  2. Есть ли команда API или свойство, которое отображает выходные данные динамического модуля?

Справочная информация: я пытаюсь выяснить, как получить доступ к выходным данным викисловарного модуля (в данном случае pron-th).Это модуль, который редакторы могут динамически вставлять для отображения транслитерации (произношения) тайских слов.Например, всякий раз, когда редактор добавляет эту строку:

 {{th-pron|ไคฺร่}}

... сервер запускает сценарий Lua, задокументированный как найденный здесь , и выводит таблицу, показывающую различные транслитерации ( пример ).Однако этот вывод специально исключается при выполнении запросов API ( пример ), и я не могу найти конечную точку, которая включает эти данные.А запуск сценария lua напрямую завершается сбоем, потому что в нем отсутствует несколько импортов, таких как mw.ustring, mw.text и т. Д., Которые, как я считаю, определены в PHP, включают в себя более высокий программный стек.У меня есть значительный опыт работы с PHP, но у меня нет опыта работы с Lua, поэтому я немного растерялся.

Если не считать прямой вызов каждой страницы и очистку данных, я не могу придумать, как это сделать.

1 Ответ

0 голосов
/ 11 июня 2018

Библиотека mW MediaWiki является частью расширения Scribunto (см. https://github.com/wikimedia/mediawiki-extensions-Scribunto/tree/master/includes/engines/LuaCommon/lualib),) и имеет много зависимостей обратно в ядро ​​MEdiawikis php, поэтому импортировать ее будет непросто.

Вы можете визуализировать этот викитекст через API, например https://en.wiktionary.org/w/api.php?action=parse&text=%20{{th-pron|%E0%B9%84%E0%B8%84%E0%B8%BA%E0%B8%A3%E0%B9%88}}&contentmodel=wikitext, и проанализировать вывод, или вы можете попытаться заменить вызовы функций MediaWiki другими вызовами функций в какой-либо родной библиотеке Lua.

...