Toggle menu
15
236
75
27.7K
Kenshi Wiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 02:07, 12 March 2025 by Prd (talk | contribs) (Created page with "require ('strict') --[[--------------------------< P A T T E R N S _ T >---------------------------------------------------------- a sequence of patterns to match canonical template name and its redirects by transclusion counts as of 2024-08-15: 'Short description', -- 6,090,442 (canonical form) 'Short Description', -- 124 'Des', -- 20 'Shortdesc', -- 10 'Short desc', -- 8 'Shortdescription'...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Implements {{get short description}}.



require ('strict')

--[[--------------------------< P A T T E R N S _ T >----------------------------------------------------------

a sequence of patterns to match canonical template name and its redirects by transclusion counts as of 2024-08-15:
	'Short description',														-- 6,090,442 (canonical form)
	'Short Description',														-- 124
	'Des',																		-- 20
	'Shortdesc',																-- 10
	'Short desc',																-- 8
	'Shortdescription',															-- 6

]]

local patterns_t = {
	'[Ss]hort [Dd]escription',
	'[Dd]es',
	'[Ss]hort *desc',
	'[Ss]hortdescription',
	}


--[[-----------------------------< G E T C O N T E N T >-------------------------------------------------------

fetch the article's raw wikitext
]]

local function getContent(title)
	local success, titleObj = pcall(mw.title.new, title)						-- get a title object for title
	if not success then return nil end											-- return nil if sommat went wron
	return titleObj:getContent()												-- return wikitext else
end


--[[-----------------------------< M A I N >-------------------------------------------------------------------
]]

local function main(frame, title)												-- do we really need <title> here?
	local title = frame.args[1]
    local wikitext = getContent(title)
	if wikitext == nil then return "" end										-- sommat went wrong, abandon

	for _, pattern in ipairs (patterns_t) do									-- for each pattern in the sequence of redirect patterns
		local description = wikitext:match ('{{%s*' .. pattern .. '%s*|%s*([^|}]+)%s*');	-- try to find a match
		if description then
			return description;													-- found one, stop looking and done
		end
	end	
end


--[[-----------------------------< E X P O R T S >-------------------------------------------------------------
]]

return {
	main = main,
	}