Модуль:TemplateStyles: различия между версиями
Внешний вид
Spark108 (обсуждение | вклад) Новая страница: «local p = {} -- Инициализация хранилища статических данных local static = require("Модуль:Статические данные") if not static.TemplateStyles then static.TemplateStyles = { loadedTS = {} } elseif not static.TemplateStyles.loadedTS then static.TemplateStyles.loadedTS = {} end -- Осуществляет загрузку function p.load(name) local name = mw.text.trim(name or '') if name == '' t...» |
Spark108 (обсуждение | вклад) м 1 версия импортирована |
(нет различий)
|
Текущая версия от 10:42, 26 марта 2025
Для документации этого модуля может быть создана страница Модуль:TemplateStyles/doc
local p = {}
-- Инициализация хранилища статических данных
local static = require("Модуль:Статические данные")
if not static.TemplateStyles then
static.TemplateStyles = { loadedTS = {} }
elseif not static.TemplateStyles.loadedTS then
static.TemplateStyles.loadedTS = {}
end
-- Осуществляет загрузку
function p.load(name)
local name = mw.text.trim(name or '')
if name == '' then
return nil
end
-- Инициализация подтаблицы для текущей страницы (возможно, не нужно)
local pagename = mw.title.getCurrentTitle()
if not static.TemplateStyles.loadedTS[pagename] then
static.TemplateStyles.loadedTS[pagename] = {}
end
-- Нормализация названия
if not mw.ustring.find(name, '^%w*:') then
name = 'Шаблон:' .. mw.ustring.gsub(name, "^%l", mw.ustring.upper)
else
name = mw.ustring.gsub(name, "^:?%l", mw.ustring.upper)
end
-- Загрузка либо пропуск
if static.TemplateStyles.loadedTS[pagename][name] == true then
return ''
else
static.TemplateStyles.loadedTS[pagename][name] = true
return mw.getCurrentFrame():extensionTag{ name = "templatestyles", args = { src = name } }
end
end
-- Обёртка для использования вне модулей
function p.main(f)
local args = f.args or f
if f == mw.getCurrentFrame() then
args = f:getParent().args
end
return p.load(args[1])
end
return p