Поддержка Lua в MediaWiki реализована при помощи Scribunto, а все страницы со скриптами хранятся в пространстве имён Модуль: (Module:).[1]
Создание вашего первого Lua скрипта
Чтобы создать первый скрипт на Lua:
- Пройдите на страницу Модуль:Песочница/Имя_пользователя, где имя пользователя — ваш никнейм на Fandom.
- Если ваша вики не русскоязычная, то пройдите на страницу Module:Песочница/Имя_пользователя.
- Эта страница-песочница. Каждый может экспериментировать как он хочет в своих песочницах.
- Очистите весь существующий код на этой странице (если он был). Добавьте следующий код на страницу:
local p = {} function p.hello() return 'Привет!' end return p
Протестируйте ваш скрипт
Чтобы протестировать ваш скрипт:
- Пройдите на другую страницу-песочницу, которая не находится в пространстве имён Модуль: (это может быть шаблон, страница пользователя и т.д.)
- Добавтье код ниже:
{{#invoke:Песочница/<Имя_пользователя>|hello}}
Результатом должен быть следующий текст:
Привет!
Редактирование вашего первого скрипта
Чтобы отредактировать ваш первый скрипт:
- Вернитесь на страницу модуля-песочницы.
- Отредактируйте строчку
return 'Привет!'и добавьте ваше имя внутри кавычек. Вы должны получить что-то вродеreturn 'Привет Lua!'. - Сохраните страницу.
- Вернитесь на ту страницу, где вы тестировали модуль.
- Обновите вашу страницу.
Результат должен быть примерно таким:
Привет Lua!
Понимание работы вашего скрипта
После того, как вы увидели результат его работы, давайте разберёмся как он устроен.
local p = {}создаёт локальную таблицу в вашем коде, которая называетсяp.function p.hello()добавляет функцию под названиемhelloв таблицу. Функции можно вызывать по их названию вне модуля.return 'Привет!'возвращает строкуПривет!, когда вы вызываете функцию.endзавершает функцию.return pвозвращает таблицу с функциями на страницу, которая вызвала этот модуль.
Код, который запускает скрипт, включает в себя следующее:
invoke:вызывает модуль.Sandboxопределяет название модуля, который нужно вызвать.helloопределяет название функции, которую нужно вызвать.
| {{#invoke:Sandbox|hello}} | Ключевое слово | Первый параметр | Второй параметр |
| Код | #invoke: | Sandbox | hello |
| Что это делает | Задает действие — загружаем модуль. | Задаёт название модуля, который нужно вызвать. | Задаёт название функции, которую нужно вызвать. |
Заключение
Поздравляем! Вы создали, протестировали, отредактировали и поняли принцип работы своего первого скрипта на Lua!
См. также
- См. Wikiversity:Lua чтобы изучить больше уроков (английский)
- См. Wikibooks:Lua чтобы изучить основы Lua (английский)