Jump to content

Module:Sandbox/GKFX

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by GKFX (talk | contribs) at 19:35, 21 January 2023 (Debug). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
local p = {}
local uc = {births="Births", deaths="Deaths"}

local function transclude(frame, entry, year, article)
	local s = "'''{{dr|y|y|" .. year .. "|0|{{#ifexpr: " .. year ..
		" <= 100|na|n}}}}''' {{#section-h::" .. article .. "|".. uc[entry] .."}}"
	s = frame:preprocess(s)
	s = mw.ustring.gsub(s, '==+[^=]-==+%s*%c*', '')
	return mw.ustring.match(s, '.*%*.*%a.+')
end

function p.main(frame)
	local decade = frame.args[1] or frame:getParent().args[1] or '0'
	local result = {}
	local article_list = {}
	local year_list = {}

	if decade[1] == '-' then
		for i = -9, (decade == '-0' and -1 or 0)  do
			table.insert(article_list, frame:expandTemplate {
				title = "Year article",
				args = { decade .. '0', tostring(i) }
			})
			table.insert(year_list, decade .. math.abs(i))
		end
	else
		for i = (decade == '0' and 1 or 0), 9 do
			table.insert(article_list, frame:expandTemplate {
				title = "Year article",
				args = { decade .. '0', tostring(i) }
			})
			table.insert(year_list, decade .. tostring(i))
		end
	end
			
	for i, entry in ipairs({"births", "deaths"}) do
		table.insert(result, '== ' .. uc[entry] .. '==\n')
		table.insert(result, frame:expandTemplate { title = "transcluding articles", args = article_list})

		for i, article in ipairs(article_list) do
			table.insert(result, transclude(frame, entry, year_list[i], article))
		end
	end
	
	return table.concat(result)
end

return p