Открыть меню
Переключить меню настроек
Открыть персональное меню
Вы не представились системе
Ваш IP-адрес будет виден всем, если вы внесёте какие-либо изменения.

Модуль:Infobox: различия между версиями

Материал из YastreWiki
Новая страница: «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...»
 
Нет описания правки
Строка 3: Строка 3:
local function addRow(builder, label, data)
local function addRow(builder, label, data)
     local trimmedData = (data or ''):gsub("^%s*(.-)%s*$", "%1")
     local trimmedData = (data or ''):gsub("^%s*(.-)%s*$", "%1")
function p.youtubeChannel(frame)
    local args = frame:getParent().args


     if trimmedData ~= '' then
     if trimmedData ~= '' then
Строка 21: Строка 17:
     end
     end
end
end
function p.youtubeChannel(frame)
    local parent = frame:getParent()
    local args = {}
    if parent then
        args = parent.args
    end
    local currentTitle = mw.title.getCurrentTitle()
    local titleText = 'Инфобокс'
    if currentTitle then
        titleText = currentTitle.text
    end
     local root = mw.html.create('table')
     local root = mw.html.create('table')
     root:addClass('infobox-youtube-channel')
     root:addClass('infobox-youtube-channel')


     local title = args['название'] or mw.title.getCurrentTitle().text
     local title = args['название'] or titleText
     root:tag('caption')
     root:tag('caption')
         :addClass('infobox-title')
         :addClass('infobox-title')

Версия от 16:44, 26 сентября 2025

Для документации этого модуля может быть создана страница Модуль:Infobox/doc

local p = {}

local function addRow(builder, label, data)
    local trimmedData = (data or ''):gsub("^%s*(.-)%s*$", "%1")

    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

function p.youtubeChannel(frame)
    local parent = frame:getParent()
    local args = {}
    if parent then
        args = parent.args
    end

    local currentTitle = mw.title.getCurrentTitle()
    local titleText = 'Инфобокс'
    if currentTitle then
        titleText = currentTitle.text
    end

    local root = mw.html.create('table')
    root:addClass('infobox-youtube-channel')

    local title = args['название'] or titleText
    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