Module:Navseasoncats/navyear

local p = {}

local grey = "#888"

-- Make a piped link to a category, if it exists -- If it doesn't exist, just display the greyed unlinked title function makeCatLink(catname, disp) local displaytext = catname if disp and disp ~= '' then -- use 'disp' parameter, but strip any trailing disambiguator displaytext = mw.ustring.gsub(disp, '%s+%(.+$', );	end	local catPage = mw.title.new( catname, 'Category' )	if (catPage and catPage.exists) then		return ..displaytext..''	else		return ' '..displaytext.." "	end end

function p.navyear(frame) --Expects a PAGENAME of the form "Some sequential 1760 example cat", where --	=Some sequential --	=1760	--	=example cat --	=1758 ('min' year parameter; optional) --	=1800 ('max' year parameter; optional) local firsthalf = frame.args[1] local year     = tonumber(frame.args[2]) local lasthalf = frame.args[3] local minyear  = tonumber(frame.args[4]) or -9999 local maxyear  = tonumber(frame.args[5]) or 9999 local navyear = '{| class="toccolours hlist" style="border:1px solid #A2A9B1; background-color:#F8F9FA; padding:0.375em; text-align: center; margin: auto;"\n'..'|\n' local i = -5 while i <= 5 do		local y = year + i		if i ~= 0 then if (y >= minyear) and (y <= maxyear) then -- ex: 1758, 1759, 1761, 1762, 1763, 1764, 1765 navyear = navyear..'*'..makeCatLink( firsthalf..' '..y..' '..lasthalf, y )..'\n' else -- ex: 1755, 1756, 1757 navyear = navyear..'* '..y..' \n' end else -- ex: 1760 navyear = navyear..'*'..year..'\n' end i = i + 1 end return navyear..'|}' end

return p