Module:Cat year

From SPCodex, The Smashing Pumpkins wiki

Documentation for this module may be created at Module:Cat year/doc

local p = {}

function p.parse( frame )
	local date_str = frame.args[1]
	
	if date_str == '' then
		return date_str
	end

	local cat_type = frame.args[2]
	local matches = string.gmatch( date_str, "%d%d%d%d" )

	-- Categorize each release
	if cat_type == '' then
		cat_type = 'song'
	end
	for year in matches do
		date_str = date_str .. '[[Category:' .. year .. ' ' .. string.lower(cat_type) .. 's]]'
	end

	-- Categorize the first release as just 'song' or 'album', etc.
	local first_year = string.match( date_str, "%d%d%d%d" )
	if first_year and cat_type ~= 'song' then
		date_str = date_str .. '[[Category:' .. first_year .. ' ' .. 'songs]]'
	end

	return date_str
end

return p