Для документации этого модуля может быть создана страница Модуль:TitleIcons/doc
-- [[Template:Игры]] — Отрисовываем иконки, используя [[template:Abb]]
local p = {}
function p.split (inputstr, sep) --> Функция разделения строки на массив
local t = {}
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
table.insert(t, str)
end
return t
end
function p.getabb(frame, name, size) --> Template: Abb
return frame:expandTemplate{ title = 'Abb', args = { mode = 'icon', icon_size = size, name } }
end
function p.titleicons(frame) --> Точка входа. Формируем списки иконок
local preview = ''
local fullsize = ''
local list = p.split(frame.args[1], ',')
for key,value in pairs(list) do
fullsize = fullsize .. p.getabb(frame, value, '64x64px')
if key <= 5 then --> Максимальное число иконок в превью
preview = preview .. p.getabb(frame, value, '48x48px')
end
end
return p.render(preview, fullsize)
end
function p.render(preview, fullsize) --> Выводим результат
local result = [[
<div id="va-titleicons-section" style="display:none">
<div class="va-titleicons">
<div class="va-titleicons-preview">
]] .. preview .. [[
</div>
<div class="va-titleicons-fullsize"><div class="va-titleicons-fullsize-content">
]] .. fullsize .. [[
</div></div>
</div>
</div>
]]
result = string.gsub(result, '[\n\t] *', '') --> Оптимизируем html для устранения пустых строк
return result
end
return p