<?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%3AWikiProject_metrics</id>
	<title>Module:WikiProject metrics - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AWikiProject_metrics"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:WikiProject_metrics&amp;action=history"/>
	<updated>2026-05-27T18:39:48Z</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:WikiProject_metrics&amp;diff=147680&amp;oldid=prev</id>
		<title>imported&gt;MarioGom: fix graph rendering; apparently Template:Graph:Chart does not support the same date formatting anymore, switched to a more standard one</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:WikiProject_metrics&amp;diff=147680&amp;oldid=prev"/>
		<updated>2021-01-10T13:02:04Z</updated>

		<summary type="html">&lt;p&gt;fix graph rendering; apparently &lt;a href=&quot;/research/Template:Graph:Chart&quot; title=&quot;Template:Graph:Chart&quot;&gt;Template:Graph:Chart&lt;/a&gt; does not support the same date formatting anymore, switched to a more standard one&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local Date = require(&amp;quot;Module:Date&amp;quot;)._Date&lt;br /&gt;
local lang = mw.language.new(mw.language.getContentLanguage().code)&lt;br /&gt;
&lt;br /&gt;
local function getMonths(start)&lt;br /&gt;
	local month = Date(&amp;quot;1 &amp;quot; .. start)&lt;br /&gt;
	local current = Date(&amp;quot;currentdate&amp;quot;)&lt;br /&gt;
	current = Date(current.year, current.month, 1)&lt;br /&gt;
&lt;br /&gt;
	if month &amp;gt; current then&lt;br /&gt;
		return {}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local months = {month}&lt;br /&gt;
&lt;br /&gt;
	while month &amp;lt; current do&lt;br /&gt;
		month = month + &amp;quot;1 month&amp;quot;&lt;br /&gt;
		table.insert(months, month)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return months&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.list(frame)&lt;br /&gt;
	local baseTitle = frame:getParent():getTitle()&lt;br /&gt;
	local startMonth = frame.args[1]&lt;br /&gt;
&lt;br /&gt;
	local months = getMonths(startMonth)&lt;br /&gt;
	local list = {}&lt;br /&gt;
&lt;br /&gt;
	for i, month in pairs(months) do&lt;br /&gt;
		if i == 1 or month:text(&amp;quot;%B&amp;quot;) == &amp;quot;January&amp;quot; then&lt;br /&gt;
			local tag = &amp;#039;&amp;lt;span style=&amp;quot;font-size: 120%%;&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
			table.insert(list,  string.format(tag, month:text(&amp;quot;%Y&amp;quot;)))&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local line = &amp;quot;* [[%s|%s]]: %s&amp;quot;&lt;br /&gt;
		local title = baseTitle .. &amp;quot;/&amp;quot; .. month:text(&amp;quot;%B %Y&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
		if mw.title.new(title).exists then&lt;br /&gt;
			local count = frame:preprocess(&amp;quot;{{#lst:&amp;quot; .. title .. &amp;quot;|count}}&amp;quot;)&lt;br /&gt;
			count = lang:formatNum(tonumber(count))&lt;br /&gt;
			local item = string.format(line, title, month:text(&amp;quot;%b&amp;quot;), count)&lt;br /&gt;
			table.insert(list, item)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(list, &amp;quot;\n&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getList(frame, baseTitle, month, cols)&lt;br /&gt;
	local title = baseTitle .. &amp;quot;/&amp;quot; .. month:text(&amp;quot;%B %Y&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	if not mw.title.new(title).exists then&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local list = frame:preprocess(&amp;quot;{{#lst:&amp;quot; .. title .. &amp;quot;|list}}&amp;quot;)&lt;br /&gt;
	local output = string.format(&amp;quot;== %s ==\n&amp;quot;, month:text(&amp;quot;%B %Y&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
	output = output .. frame:expandTemplate{ title = &amp;quot;Hatnote&amp;quot;, args = {&lt;br /&gt;
		&amp;quot;[[&amp;quot; .. title .. &amp;quot;]] (&amp;quot; ..&lt;br /&gt;
		frame:expandTemplate{ title = &amp;quot;Edit&amp;quot;, args = { title } } ..&lt;br /&gt;
		&amp;quot;)&amp;quot;&lt;br /&gt;
	} }&lt;br /&gt;
&lt;br /&gt;
	if cols ~= nil then&lt;br /&gt;
		local div = &amp;#039;\n&amp;lt;div style=&amp;quot;column-width: %s;&amp;quot;&amp;gt;&amp;#039; &lt;br /&gt;
		output = output .. string.format(div, cols, cols, cols)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	output = output .. &amp;quot;\n&amp;quot; .. list&lt;br /&gt;
&lt;br /&gt;
	if cols ~= nil then&lt;br /&gt;
		output = output .. &amp;quot;\n&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return output&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.recent(frame)&lt;br /&gt;
	local baseTitle = frame:getParent():getTitle()&lt;br /&gt;
	local cols = frame.args[1]&lt;br /&gt;
	local now = Date(&amp;quot;currentdate&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	local output = getList(frame, baseTitle, now, cols)&lt;br /&gt;
	&lt;br /&gt;
	if now.day &amp;lt; 10 then&lt;br /&gt;
		local older = getList(frame, baseTitle, now - &amp;quot;1 month&amp;quot;, cols)&lt;br /&gt;
		output = output .. &amp;quot;\n&amp;quot; .. older&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return output&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.chart(frame)&lt;br /&gt;
	local baseTitle = frame:getParent():getTitle()&lt;br /&gt;
	local startMonth = frame.args[1]&lt;br /&gt;
	local now = Date(&amp;quot;currentdate&amp;quot;)&lt;br /&gt;
	local currentMonth = Date(now.year, now.month, 1)&lt;br /&gt;
&lt;br /&gt;
	local months = getMonths(startMonth)&lt;br /&gt;
	local xdata = {}&lt;br /&gt;
	local y1data = {}&lt;br /&gt;
	local y2data = {}&lt;br /&gt;
&lt;br /&gt;
	for i, month in pairs(months) do&lt;br /&gt;
		local title = baseTitle .. &amp;quot;/&amp;quot; .. month:text(&amp;quot;%B %Y&amp;quot;)&lt;br /&gt;
		&lt;br /&gt;
		if mw.title.new(title).exists then&lt;br /&gt;
			local count = frame:preprocess(&amp;quot;{{#lst:&amp;quot; .. title .. &amp;quot;|count}}&amp;quot;)&lt;br /&gt;
			mw.logObject(count)&lt;br /&gt;
		&lt;br /&gt;
			table.insert(xdata, month:text(&amp;quot;%Y-%m-%d&amp;quot;))&lt;br /&gt;
			table.insert(y1data, count)&lt;br /&gt;
			if month ~= currentMonth then&lt;br /&gt;
				table.insert(y2data, count)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local chart = frame:expandTemplate{ title = &amp;quot;Graph:Chart&amp;quot;, args = {&lt;br /&gt;
		width = &amp;quot;600&amp;quot;,&lt;br /&gt;
		height = &amp;quot;200&amp;quot;,&lt;br /&gt;
		type = &amp;quot;line&amp;quot;,&lt;br /&gt;
		xAxisTitle = &amp;quot;Month&amp;quot;,&lt;br /&gt;
		yAxisTitle = &amp;quot;Number of articles created&amp;quot;,&lt;br /&gt;
		xType = &amp;quot;date&amp;quot;,&lt;br /&gt;
		yAxisMin = &amp;quot;0&amp;quot;,&lt;br /&gt;
		colors = &amp;quot;#501f77b4,#1f77b4&amp;quot;,&lt;br /&gt;
		x = table.concat(xdata, &amp;quot;,&amp;quot;),&lt;br /&gt;
		y1 = table.concat(y1data, &amp;quot;,&amp;quot;),&lt;br /&gt;
		y2 = table.concat(y2data, &amp;quot;,&amp;quot;)&lt;br /&gt;
	}}&lt;br /&gt;
&lt;br /&gt;
	local div = &amp;#039;&amp;lt;div style=&amp;quot;text-align: center; margin: auto;&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&amp;#039;&lt;br /&gt;
	return string.format(div, chart)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;MarioGom</name></author>
	</entry>
</feed>