Module:TeamCard/Qualifier

From TwogPedia
< Module:TeamCard
Revision as of 15:30, 22 August 2022 by Couchor (talk | contribs) (Created page with "local Class = require('Module:Class') local Variables = require('Module:Variables') local Qualifier = {} -- Returns the tuple (linkText, linkInternal, linkExternal) -- Link internal and link external is mutually exclusive function Qualifier.parseQualifier(rawQualifier) if not rawQualifier then return nil end local cleanQualifier = rawQualifier:gsub('%[', ''):gsub('%]', '') if cleanQualifier:find('|') then -- Internal link local qualifier = mw.text.split(clea...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:TeamCard/Qualifier/doc

local Class = require('Module:Class')
local Variables = require('Module:Variables')

local Qualifier = {}

-- Returns the tuple (linkText, linkInternal, linkExternal)
-- Link internal and link external is mutually exclusive
function Qualifier.parseQualifier(rawQualifier)
	if not rawQualifier then
		return nil
	end

	local cleanQualifier = rawQualifier:gsub('%[', ''):gsub('%]', '')
	if cleanQualifier:find('|') then
		-- Internal link
		local qualifier = mw.text.split(cleanQualifier, '|', true)
		local qualifierLink, qualifierText = qualifier[1], qualifier[2]

		if qualifierLink:sub(1, 1) == '/' then
			-- Relative link
			qualifierLink = mw.title.getCurrentTitle().fullText .. qualifierLink
		end
		qualifierLink = qualifierLink:gsub(' ', '_')
		return qualifierText, qualifierLink, nil

	elseif rawQualifier:sub(1, 1) == '[' then
		-- Not internal link, but a link -> must be external link
		local qualifier = mw.text.split(cleanQualifier, ' ', true)
		local qualifierLink = qualifier[1]

		table.remove(qualifier, 1)
		local qualifierText = table.concat(qualifier, ' ')

		return qualifierText, nil, qualifierLink

	else
		-- Just text
		return rawQualifier, nil, nil
	end
end

-- Wrapper function for parseQualifier that will set wikivariables instead of return values.
-- Useful for Templates.
function Qualifier.parseQualifierSetVariables(rawQualifier)
	local text, internal, external = Qualifier.parseQualifier(rawQualifier)
	
	Variables.varDefine('tc_temp_qualifier_text', text)
	Variables.varDefine('tc_temp_qualifier_internal', internal)
	Variables.varDefine('tc_temp_qualifier_external', external)
end

function Qualifier.parseQualifierCleanVariables()
	Variables.varDefine('tc_temp_qualifier_text', nil)
	Variables.varDefine('tc_temp_qualifier_internal', nil)
	Variables.varDefine('tc_temp_qualifier_external', nil)
end

return Class.export(Qualifier, {frameOnly = true})