<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AYears_generator</id>
	<title>Module:Years generator - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AYears_generator"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Years_generator&amp;action=history"/>
	<updated>2026-05-24T22:13:52Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Years_generator&amp;diff=147761&amp;oldid=prev</id>
		<title>imported&gt;Naypta: key, not arg, that should not be consumed</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Years_generator&amp;diff=147761&amp;oldid=prev"/>
		<updated>2020-06-08T14:40:12Z</updated>

		<summary type="html">&lt;p&gt;key, not arg, that should not be consumed&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {} --p stands for package&lt;br /&gt;
&lt;br /&gt;
function p.templateEveryYearToPresent ( frame )&lt;br /&gt;
	-- use the parent args if available, assuming this is embedded in a template&lt;br /&gt;
	parentArgs = frame:getParent().args&lt;br /&gt;
	argsToUse = ((parentArgs[1] and parentArgs) or frame.args)&lt;br /&gt;
	&lt;br /&gt;
	years = yearsFromYearToPresent( argsToUse[1] )&lt;br /&gt;
	toReturn = &amp;quot;&amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	templateArgs = {}&lt;br /&gt;
	templateDoNotConsume = {}&lt;br /&gt;
	&lt;br /&gt;
	-- allow transcluding templates to specify arguments they consume,&lt;br /&gt;
	-- so we should ignore them&lt;br /&gt;
	for arg in mw.text.gsplit( frame.args[&amp;#039;templatedonotconsume&amp;#039;] or &amp;#039;&amp;#039;, &amp;#039;,&amp;#039;, true )&lt;br /&gt;
	do&lt;br /&gt;
		templateDoNotConsume[arg] = true&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for key, arg in pairs( argsToUse ) do&lt;br /&gt;
		-- taking everything beyond the second arg, we pass it onto the template&lt;br /&gt;
		-- this includes named args, so we don&amp;#039;t want to just do &amp;gt; 2&lt;br /&gt;
		if (&lt;br /&gt;
			key ~= 1&lt;br /&gt;
			and key ~= 2&lt;br /&gt;
			and not templateDoNotConsume[key]&lt;br /&gt;
			)&lt;br /&gt;
		then&lt;br /&gt;
			numericKey = tonumber( key )&lt;br /&gt;
			if ( numericKey )&lt;br /&gt;
			then&lt;br /&gt;
				-- templateArgs[1] will always be the year (lua arrays start at 1)&lt;br /&gt;
				-- templateArgs[2] should be the first other template param&lt;br /&gt;
				-- which is args[3], so we have here [key - 1]&lt;br /&gt;
				templateArgs[key - 1] = arg&lt;br /&gt;
			else&lt;br /&gt;
				-- named params we just shove in&lt;br /&gt;
				templateArgs[key] = arg&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for index, year in ipairs( years ) do&lt;br /&gt;
		templateArgs[1] = tostring( year )&lt;br /&gt;
		toReturn = toReturn .. ( index == 0 and &amp;#039;&amp;#039; or &amp;#039;&amp;lt;br /&amp;gt;&amp;#039; )&lt;br /&gt;
	    .. &amp;quot;&amp;lt;strong&amp;gt;&amp;quot; .. templateArgs[1] .. &amp;quot;&amp;lt;/strong&amp;gt; &amp;amp;mdash; &amp;quot;&lt;br /&gt;
	    -- if parentArgs is used, then frame.args[1] will be the template,&lt;br /&gt;
	    -- as no other args are going to be in the immediate frame. if&lt;br /&gt;
	    -- there are no parentArgs, then it&amp;#039;ll be the second param,&lt;br /&gt;
	    -- because the year will have been directly passed to the module&lt;br /&gt;
	    .. frame:expandTemplate{ title = ((parentArgs[1] and frame.args[1]) or frame.args[2]), args = templateArgs }&lt;br /&gt;
	end&lt;br /&gt;
	return toReturn&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function yearsFromYearToPresent( year )&lt;br /&gt;
	startyear = tonumber( year )&lt;br /&gt;
	if ( startyear == nil )&lt;br /&gt;
	then&lt;br /&gt;
		error( &amp;quot;Invalid start year provided&amp;quot; )&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	years = {}&lt;br /&gt;
    numyears = ( tonumber( os.date( &amp;quot;%Y&amp;quot; ) ) - startyear )&lt;br /&gt;
    for numadded = 0, numyears do -- equiv of i = 0; i &amp;lt;= numyears; i++&lt;br /&gt;
    	years[numadded + 1] = startyear + numadded&lt;br /&gt;
    end&lt;br /&gt;
	return years&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Naypta</name></author>
	</entry>
</feed>