Использование модулей lua из википедии в скрипте

Итак, позвольте мне сначала прояснить, что я понятия не имею, как на самом деле работает Lua, никогда не писал в нем более 10 строк кода, и что я вообще запутался в том, как работает MediaWiki + Scribunto + Lua...

Так...

У меня есть этот модуль/шаблон викисловаря:

https://en.wiktionary.org/w/index.php?title=Module:pl-IPA&action=edit

Мне это кажется совершенно правильным кодом lua.

Когда я пытаюсь запустить какой-нибудь простой пример (например, вызов функции export.convert_to_IPA("something")), Lua, кажется, жалуется, что не знает, что такое mw.

Насколько я знаю, mw означает MediaWiki и является ссылкой на модуль Scribunto.

Вопрос в том... как мне найти и импортировать этот mw модуль в простой скрипт Lua, работающий с терминала... с помощью интерпретатора Lua на Mac?

Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
227
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В общем, вы не можете использовать mw в автономном Lua без MediaWiki. Почти все функции, которые он предоставляет, являются обратными вызовами в PHP MediaWiki. Однако похоже, что вы просто хотите использовать convert_to_IPA, а не template_IPA, и единственное использование mw, которое есть у первого, это эта строка: for ch in mw.ustring.gmatch(mw.ustring.lower(word), ".") do. Вам повезло: mw.ustring является исключением из правил, и у него есть реализация на чистом Lua: https://github.com/wikimedia/mediawiki-extensions-Scribunto/tree/master/includes/engines/LuaCommon /луалиб/ustring

Вот пример того, как вы можете его использовать (при условии, что ваш текущий каталог содержит как pl-IPA.lua, так и каталог ustring, который я связал):

$ lua5.1
Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio
> mw = {ustring = require 'ustring/ustring'}
> export = require 'pl-IPA'
> =export.convert_to_IPA("something")
sɔˈmɛt.xʲink
>

Большое спасибо. Потрясающий ответ. Тем временем я также нашел это: (по сути, это часть парсера Викисловаря на Python — почти то, над чем я работаю, но на Ruby) github.com/tatuylonen/wikitextprocessor

Dr.Kameleon 15.12.2020 09:16

Другие вопросы по теме