Модуль Mediawiki scribunto lua не знает встроенных функций
У меня проблема с вызовом встроенных функций Lua с помощью Scribunto.
Я создал базовый модуль Module:Item
local p = {};
function p.test(frame)
print("Hello World!")
end
return p
Который я называю на другой странице как {{#invoke: Item | test}}
и я получаю следующую ошибку:
Lua error in Module:Item at line 3: attempt to call global 'print' (a nil value).
Backtrace:
1. (tail call): ?
2. Module:Item:3: in function "chunk"
3. mw.lua:511: ?
4. (tail call): ?
5. [C]: in function "xpcall"
6. MWServer.lua:99: in function "handleCall"
7. MWServer.lua:313: in function "dispatch"
8. MWServer.lua:52: in function "execute"
9. mw_main.lua:7: in main chunk
10. [C]: ?
Поскольку печать - это встроенная функция Lua, я чувствую, что проблема будет где-то при настройке на компьютере. Однако, когда я импортировал инфобоксы вики, они работали нормально.
Версии:
Linux Mint Tara - Cinnamon на базе Ubuntu 18
MediaWiki 1.31.7
Скрибунто (106fbf4) 17:24, 15 мая 2018 г.
Lua 5.1.5
Любая помощь, указывающая на то, где может быть проблема, приветствуется.
1 ответ
Scribunto намеренно не включает print
. В разделе "Удаленные функции и пакеты" в руководстве об этом сказано:
Это обсуждалось на wikitech-l, и было решено, что его следует опустить в пользу возвращаемых значений, чтобы улучшить качество кода. При необходимости можно использовать mw.log() для вывода информации в консоль отладки.