Модуль:Участник:BabylonAS/Nova/ШаблонКод

Этот модуль реализует шаблоны {{Шаблон}}, {{ШаблонСсылка}} и {{ШаблонКод}}. Лучше этот модуль использовать именно через них.

-- Модуль для реализации шаблонов {{Шаблон}}, {{ШаблонКод}} и {{ШаблонСсылка}} -- Экспортируемые настройки local p = {} function p.temp(f) -- Вычислить аргументы -- Допускается передача аргументов через аргумент функции f в другом модуле Lua, -- через вызов {{#invoke: модуль | функция | аргумент1 | агрумент2 | ... }} или через -- вызывающий шаблон local args = f.args or f-- аргументы через {{#invoke:}} или вызов из другого модуля if f == mw.getCurrentFrame() and args[1] == nil then args = f:getParent().args-- аргументы через вызывающий шаблон end args[1] = mw.text.trim(args[1]) local type = mw.text.trim(args["тип"] or '') -- тип вывода local tag = (type == 'code') and 'code' or 'kbd' -- теги -- Теги для окраса в серый local grayStart = '<span style="color: #696969">' local grayEnd = '</span>' -- Выводимый код local wikicode = '<' .. tag .. '>' .. grayStart .. '{{' .. grayEnd -- Добавление ссылки (если используется тип link) if type == 'link' then -- Открывающие скобки ссылки wikicode = wikicode .. '[[' local colon = args[1]:find(':') -- местоположение первого двоеточия if colon == nil then -- Если в первом аргументе нет двоеточия, то ищем шаблон в пространстве имён Шаблон wikicode = wikicode .. 'Шаблон:' .. args[1] .. '|' .. args[1] else if colon > 1 then -- Если перед двоеточием есть префикс, то перед ним ставим двоеточие, чтобы избавиться -- от проблем с интервики, категориями или файлами wikicode = wikicode .. ':' .. args[1] else wikicode = wikicode .. args[1] .. '|' .. args[1] end end -- Закрывающие скобки ссылки wikicode = wikicode .. ']]' else wikicode = wikicode .. args[1] end -- Добавление параметров if args[2] ~= nil then for i, v in ipairs(args) do if i > 1 then -- добавляем параметр wikicode = wikicode .. grayStart .. '&#124;' .. grayEnd .. mw.text.trim(v) end end end -- Закрывающие скобки и тег wikicode = wikicode .. grayStart .. '}}' .. grayEnd .. '</' .. tag .. '>' return wikicode end -- Экспорт return p 
В данной статье используются материалы из статьи «Модуль:Участник:BabylonAS/Nova/ШаблонКод» с вики-сайта Minecraft Wiki, расположенного на Фэндоме, и они распространяются согласно лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0. Авторы статьи.