dev

Поддержка Lua в MediaWiki реализована при помощи Scribunto, а все страницы со скриптами хранятся в пространстве имён Модуль: (Module:).[1]

Создание вашего первого Lua скрипта

Чтобы создать первый скрипт на Lua:

  1. Пройдите на страницу Модуль:Песочница/Имя_пользователя, где имя пользователя — ваш никнейм на Fandom.
    1. Если ваша вики не русскоязычная, то пройдите на страницу Module:Песочница/Имя_пользователя.
  2. Эта страница-песочница. Каждый может экспериментировать как он хочет в своих песочницах.
  3. Очистите весь существующий код на этой странице (если он был). Добавьте следующий код на страницу:
local p = {}
 
function p.hello()
    return 'Привет!'
end
 
return p

Протестируйте ваш скрипт

Чтобы протестировать ваш скрипт:

  1. Пройдите на другую страницу-песочницу, которая не находится в пространстве имён Модуль: (это может быть шаблон, страница пользователя и т.д.)
  2. Добавтье код ниже:
{{#invoke:Песочница/<Имя_пользователя>|hello}}

Результатом должен быть следующий текст:

Привет!

Редактирование вашего первого скрипта

Чтобы отредактировать ваш первый скрипт:

  1. Вернитесь на страницу модуля-песочницы.
  2. Отредактируйте строчку return 'Привет!' и добавьте ваше имя внутри кавычек. Вы должны получить что-то вроде return 'Привет Lua!'.
  3. Сохраните страницу.
  4. Вернитесь на ту страницу, где вы тестировали модуль.
  5. Обновите вашу страницу.

Результат должен быть примерно таким:

Привет Lua!

Понимание работы вашего скрипта

После того, как вы увидели результат его работы, давайте разберёмся как он устроен.

  1. local p = {} создаёт локальную таблицу в вашем коде, которая называется p.
  2. function p.hello() добавляет функцию под названием hello в таблицу. Функции можно вызывать по их названию вне модуля.
  3. return 'Привет!' возвращает строку Привет!, когда вы вызываете функцию.
  4. end завершает функцию.
  5. return p возвращает таблицу с функциями на страницу, которая вызвала этот модуль.

Код, который запускает скрипт, включает в себя следующее:

  1. invoke: вызывает модуль.
  2. Sandbox определяет название модуля, который нужно вызвать.
  3. hello определяет название функции, которую нужно вызвать.
{{#invoke:Sandbox|hello}} Ключевое слово Первый параметр Второй параметр
Код #invoke: Sandbox hello
Что это делает Задает действие — загружаем модуль. Задаёт название модуля, который нужно вызвать. Задаёт название функции, которую нужно вызвать.

Заключение

Поздравляем! Вы создали, протестировали, отредактировали и поняли принцип работы своего первого скрипта на Lua!

См. также

Примечания