Модуль 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() для вывода информации в консоль отладки.

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