Модуль:Переключатель проекта: различия между версиями
Материал из Space Station 14 Вики
Pok (обсуждение | вклад) Нет описания правки |
Pok (обсуждение | вклад) Нет описания правки |
||
| (не показана 1 промежуточная версия этого же участника) | |||
| Строка 3: | Строка 3: | ||
local DEFAULT_VALUE = 'Corvax, Goob' | local DEFAULT_VALUE = 'Corvax, Goob' | ||
local function trim(s) | local function trim(s) | ||
| Строка 18: | Строка 17: | ||
end | end | ||
return out | return out | ||
end | end | ||
function p.main(frame) | function p.main(frame) | ||
local args = getArgs(frame, { removeBlanks = false }) | local args = getArgs(frame, { removeBlanks = false }) | ||
local raw = args[1] | local raw = args[1] or DEFAULT_VALUE | ||
local projects = splitProjects(raw) | local projects = splitProjects(raw) | ||
| Строка 38: | Строка 29: | ||
local first = projects[1] | local first = projects[1] | ||
local result = '{{#vardefine:JsonPath|' .. first .. '}}' | local result = '' | ||
result = result .. '{{#vardefine:JsonPath|' .. first .. '}}' | |||
result = result .. '<div style="display:none;" class="js-project-selection-generator">' | result = result .. '<div style="display:none;" class="js-project-selection-generator">' | ||
.. mw.text.encode(table.concat(projects, ', ')) | .. mw.text.encode(table.concat(projects, ', ')) | ||
Текущая версия от 19:23, 19 марта 2026
Для документации этого модуля может быть создана страница Модуль:Переключатель проекта/doc
local p = {}
local getArgs = require('Module:Arguments').getArgs
local DEFAULT_VALUE = 'Corvax, Goob'
local function trim(s)
return mw.text.trim(s or '')
end
local function splitProjects(text)
local out = {}
for part in mw.text.gsplit(text or '', ',', true) do
part = trim(part)
if part ~= '' then
table.insert(out, part)
end
end
return out
end
function p.main(frame)
local args = getArgs(frame, { removeBlanks = false })
local raw = args[1] or DEFAULT_VALUE
local projects = splitProjects(raw)
if #projects == 0 then
return ''
end
local first = projects[1]
local result = ''
result = result .. '{{#vardefine:JsonPath|' .. first .. '}}'
result = result .. '<div style="display:none;" class="js-project-selection-generator">'
.. mw.text.encode(table.concat(projects, ', '))
.. '</div>'
return frame:preprocess(result)
end
return p