Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

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

Материал из wiki.iccup.org
Новая страница: «local p = {} function p.renderSubnotes(frame, prefix, index) local result = {} local i = 1 while true do local subnote = frame.args[prefix .. "_" .. index .. "_" .. i] if not subnote then break end table.insert(result, string.format("<li>%s</li>", subnote)) i = i + 1 end if #result > 0 then return string.format("<ul>%s</ul>", table.concat(result, "\n")) end return nil end function p.rend...»
 
Нет описания правки
Строка 1: Строка 1:
local p = {}
local p = {}
function p.renderSubnotes(frame, prefix, index)
    local result = {}
    local i = 1
    while true do
        local subnote = frame.args[prefix .. "_" .. index .. "_" .. i]
        if not subnote then break end
        table.insert(result, string.format("<li>%s</li>", subnote))
        i = i + 1
    end
    if #result > 0 then
        return string.format("<ul>%s</ul>", table.concat(result, "\n"))
    end
    return nil
end


function p.renderNotes(frame)
function p.renderNotes(frame)
     local result = {}
     local rootHtml = mw.html.create('ul')  -- Создаем корневой элемент списка
     local i = 1
     local index = 1
   
     while true do
     while true do
         local note = frame.args["note_" .. i]
         local note = frame.args['note_' .. index]
       
         if not note then break end
         if not note then break end
          
          
         -- Render the main note
         local li = rootHtml:tag('li'):wikitext(note)  -- Основное примечание
         local noteItem = string.format("<li>%s", note)
        local subIndex = 1
 
         local hasSubNotes = false
         -- Render subnotes if they exist
       
         local subnotes = p.renderSubnotes(frame, "note", i)
         -- Проверяем на наличие вложенных примечаний
        if subnotes then
         while true do
             noteItem = noteItem .. subnotes
            local subNote = frame.args['note_' .. index .. '_' .. subIndex]
           
            if not subNote then break end
           
            -- Если есть вложенные, создаем вложенный список
            if not hasSubNotes then
                hasSubNotes = true
                subUl = li:tag('ul')
            end
           
            subUl:tag('li'):wikitext(subNote)  -- Вложенное примечание
             subIndex = subIndex + 1
         end
         end
 
          
         noteItem = noteItem .. "</li>"
         index = index + 1
        table.insert(result, noteItem)
 
         i = i + 1
     end
     end
     return table.concat(result, "\n")
   
     return tostring(rootHtml)
end
end


return p
return p

Версия от 13:17, 28 сентября 2024

Описание

Модуль RenderSubnotes используется для рендеринга примечаний и действий с изображениями в карточках героев или других информационных блоках. Этот модуль предоставляет две основные функции: renderNotes для отображения примечаний и renderItemsAction для рендеринга действий с изображениями.

Использование

Функция renderNotes

Функция renderNotes используется для отображения примечаний, где примечания могут быть как основными, так и вложенными. Основные примечания задаются параметрами вида note_1, note_2 и так далее. Вложенные примечания задаются параметрами вида note_1_1, note_1_2 и так далее.

Пример использования:

{{#invoke:RenderSubnotes|renderNotes
| note_1 = Примечание 1
| note_1_1 = Подпримечание 1.1
| note_1_2 = Подпримечание 1.2
| note_2 = Примечание 2
}}

Функция renderItemsAction

Функция renderItemsAction используется для отображения действий с изображениями. Описание действия задается параметром вида itemsActionDescr_1, а изображение – параметром itemsActionImage_1_1, где числа после символа подчеркивания должны совпадать для правильной привязки изображения к действию.

Пример использования:

{{#invoke:RenderSubnotes|renderItemsAction
| itemsActionDescr_1 = Описание действия 1
| itemsActionImage_1_1 = action_image_1.png
| itemsActionImage_1_2 = action_image_2.png
| itemsActionDescr_2 = Описание действия 2
| itemsActionImage_2_1 = action_image_3.png
}}

Параметры

Параметры для renderNotes

  • note_X – основное примечание, где X – порядковый номер.
  • note_X_Y – вложенное примечание, где X – номер основного примечания, а Y – номер вложенного примечания.

Параметры для renderItemsAction

  • itemsActionDescr_X – описание действия, где X – порядковый номер.
  • itemsActionImage_X_Y – изображение для действия, где X – номер действия, а Y – номер изображения для данного действия.

Примечания

  • Основные примечания могут иметь несколько уровней вложенности.
  • Изображения для действий должны быть привязаны к правильным действиям с помощью одинаковых порядковых номеров в параметрах.



local p = {}

function p.renderNotes(frame)
    local rootHtml = mw.html.create('ul')  -- Создаем корневой элемент списка
    local index = 1
    
    while true do
        local note = frame.args['note_' .. index]
        
        if not note then break end
        
        local li = rootHtml:tag('li'):wikitext(note)  -- Основное примечание
        local subIndex = 1
        local hasSubNotes = false
        
        -- Проверяем на наличие вложенных примечаний
        while true do
            local subNote = frame.args['note_' .. index .. '_' .. subIndex]
            
            if not subNote then break end
            
            -- Если есть вложенные, создаем вложенный список
            if not hasSubNotes then
                hasSubNotes = true
                subUl = li:tag('ul')
            end
            
            subUl:tag('li'):wikitext(subNote)  -- Вложенное примечание
            subIndex = subIndex + 1
        end
        
        index = index + 1
    end
    
    return tostring(rootHtml)
end

return p