Дополнительные действия
DarkMuse (обсуждение | вклад) Новая страница: «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...» |
DarkMuse (обсуждение | вклад) Нет описания правки |
||
| Строка 1: | Строка 1: | ||
local p = {} | local p = {} | ||
function p.renderNotes(frame) | function p.renderNotes(frame) | ||
local | local rootHtml = mw.html.create('ul') -- Создаем корневой элемент списка | ||
local | local index = 1 | ||
while true do | while true do | ||
local note = frame.args[ | local note = frame.args['note_' .. index] | ||
if not note then break end | if not note then break end | ||
-- | local li = rootHtml:tag('li'):wikitext(note) -- Основное примечание | ||
local | local subIndex = 1 | ||
local hasSubNotes = false | |||
-- | |||
local | -- Проверяем на наличие вложенных примечаний | ||
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 | end | ||
index = index + 1 | |||
end | end | ||
return | |||
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