Модуль:Infobox
Материал из YastreWiki
Дополнительные действия
Для документации этого модуля может быть создана страница Модуль:Infobox/doc
local p = {}
local function addRow(builder, label, data)
local trimmedData = (data or ''):gsub("^%s*(.-)%s*$", "%1")
function p.youtubeChannel(frame)
local args = frame:getParent().args
if trimmedData ~= '' then
builder:tag('tr')
:addClass('infobox-row')
:tag('th')
:addClass('infobox-label')
:wikitext(label)
:done()
:tag('td')
:addClass('infobox-data')
:wikitext(trimmedData)
:done()
end
end
local root = mw.html.create('table')
root:addClass('infobox-youtube-channel')
local title = args['название'] or mw.title.getCurrentTitle().text
root:tag('caption')
:addClass('infobox-title')
:wikitext(title)
local image = (args['изображение'] or ''):gsub("^%s*(.-)%s*$", "%1")
if image ~= '' then
root:tag('tr')
:addClass('infobox-image-row')
:tag('td')
:attr('colspan', 2)
:addClass('infobox-image')
:wikitext('[[Файл:' .. image .. '|frameless|280px|' .. (args['подпись'] or '') .. ']]')
if args['подпись'] and args['подпись']:match('%S') then
root:wikitext('<div class="infobox-caption">' .. args['подпись'] .. '</div>')
end
end
addRow(root, 'Имя', args['имя'])
addRow(root, 'Дата создания', args['дата создания'])
addRow(root, 'Подписчики', args['подписчики'])
addRow(root, 'Просмотры', args['просмотры'])
addRow(root, 'Ссылка', args['ссылка'])
addRow(root, 'Ссылки', args['ссылки'])
return tostring(root)
end
return p