Модуль:Переключатель проекта: различия между версиями

Материал из Space Station 14 Вики
Новая страница: «local p = {} local DEFAULT_VALUE = 'Goob, Corvax' local SPECIAL_SKIP_VALUE = 'Corvax' 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 local function isSkipValue(value) return mw.ustring.lower(trim(value)) == mw.ustring.lower(SPECIAL_SKIP_VALUE) end...»
 
Нет описания правки
 
(не показано 5 промежуточных версий этого же участника)
Строка 1: Строка 1:
local p = {}
local p = {}
local getArgs = require('Module:Arguments').getArgs


local DEFAULT_VALUE = 'Goob, Corvax'
local DEFAULT_VALUE = 'Corvax, Goob'
local SPECIAL_SKIP_VALUE = 'Corvax'


local function trim(s)
local function trim(s)
Строка 17: Строка 17:
end
end
return out
return out
end
local function isSkipValue(value)
return mw.ustring.lower(trim(value)) == mw.ustring.lower(SPECIAL_SKIP_VALUE)
end
end


function p.main(frame)
function p.main(frame)
local raw = trim(frame.args[1])
local args = getArgs(frame, { removeBlanks = false })
 
local raw = args[1] or DEFAULT_VALUE
if raw == '' then
raw = DEFAULT_VALUE
end


local projects = splitProjects(raw)
local projects = splitProjects(raw)
Строка 36: Строка 29:


local first = projects[1]
local first = projects[1]
if isSkipValue(first) then
local result = ''
return ''
result = result .. '{{#vardefine:JsonPath|' .. first .. '}}'
end
 
local result = '{{#vardefine:JsonPath|' .. first .. '}}'
if #projects == 1 then
return result
end
 
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, ', '))
.. '</div>'
.. '</div>'


return result
return frame:preprocess(result)
end
end


return p
return p

Текущая версия от 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