<?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%3ASandbox%2FMartijn_Hoekstra%2Farchivecounter</id>
	<title>Module:Sandbox/Martijn Hoekstra/archivecounter - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FMartijn_Hoekstra%2Farchivecounter"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Martijn_Hoekstra/archivecounter&amp;action=history"/>
	<updated>2026-05-26T14:42:25Z</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:Sandbox/Martijn_Hoekstra/archivecounter&amp;diff=145780&amp;oldid=prev</id>
		<title>imported&gt;Pppery: Pppery moved page Module:Martijn Hoekstra/archivecounter to Module:Sandbox/Martijn Hoekstra/archivecounter without leaving a redirect: Module naming conventions</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Martijn_Hoekstra/archivecounter&amp;diff=145780&amp;oldid=prev"/>
		<updated>2018-10-08T02:56:06Z</updated>

		<summary type="html">&lt;p&gt;Pppery moved page &lt;a href=&quot;/index.php?title=Module:Martijn_Hoekstra/archivecounter&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Module:Martijn Hoekstra/archivecounter (page does not exist)&quot;&gt;Module:Martijn Hoekstra/archivecounter&lt;/a&gt; to &lt;a href=&quot;/research/Module:Sandbox/Martijn_Hoekstra/archivecounter&quot; title=&quot;Module:Sandbox/Martijn Hoekstra/archivecounter&quot;&gt;Module:Sandbox/Martijn Hoekstra/archivecounter&lt;/a&gt; without leaving a redirect: Module naming conventions&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;
local helper = {};&lt;br /&gt;
helper.rec = function(min, max, prefix, namespace)&lt;br /&gt;
		if (min + 1) == max then&lt;br /&gt;
			return min&lt;br /&gt;
		elseif max == nil then&lt;br /&gt;
			local doublemin = min * 2&lt;br /&gt;
			local title = mw.title.new(prefix .. &amp;quot; &amp;quot; .. doublemin, namespace)&lt;br /&gt;
			if title.exists then&lt;br /&gt;
				return helper.rec(doublemin, max, prefix, namespace)&lt;br /&gt;
			else&lt;br /&gt;
				return helper.rec(min, doublemin, prefix, namespace)&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			local dif = max - min&lt;br /&gt;
			local test = min + math.ceil(dif/2)&lt;br /&gt;
			local title = mw.title.new(prefix .. &amp;quot; &amp;quot; .. test, namespace)&lt;br /&gt;
			if title.exists then&lt;br /&gt;
				return helper.rec(test, max, prefix, namespace)&lt;br /&gt;
			else&lt;br /&gt;
				return helper.rec(min, test, prefix, namespace)&lt;br /&gt;
			end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.archivenumber = function (namespace, prefix)&lt;br /&gt;
	return helper.rec(1, nil, prefix, namespace)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
helper.buildtable = function(agg, cur, last, namespace, page, archiveprefix)&lt;br /&gt;
	if cur &amp;gt; last then return table.concat(agg, &amp;quot;&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		local next = agg&lt;br /&gt;
		if ((cur - 1) % 3) == 0 then table.insert(next,  &amp;quot;\n|-&amp;quot;) end&lt;br /&gt;
		table.insert(next, &amp;quot;\n|[[&amp;quot;)&lt;br /&gt;
		table.insert(next, namespace)&lt;br /&gt;
		table.insert(next, &amp;quot;:&amp;quot;)&lt;br /&gt;
		table.insert(next, page)&lt;br /&gt;
		table.insert(next, &amp;quot;/&amp;quot;)&lt;br /&gt;
		table.insert(next, archiveprefix)&lt;br /&gt;
		table.insert(next, &amp;quot; &amp;quot;)&lt;br /&gt;
		table.insert(next, cur .. &amp;quot;|&amp;quot;)&lt;br /&gt;
		table.insert(next, archiveprefix)&lt;br /&gt;
		table.insert(next, &amp;quot; &amp;quot;)&lt;br /&gt;
		table.insert(next, cur .. &amp;quot;]]&amp;quot;)&lt;br /&gt;
	    return helper.buildtable(next, cur + 1, last, namespace, page, archiveprefix)&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.buildtable = function(namespace, page, archiveprefix)&lt;br /&gt;
	local init = {}&lt;br /&gt;
	table.insert(init, &amp;quot;{| style=\&amp;quot;width: 100%; padding: 0px; text-align: center; background-color: transparent;\&amp;quot;&amp;quot;)&lt;br /&gt;
	local last = p.archivenumber(namespace, page .. &amp;quot;/&amp;quot; .. archiveprefix)&lt;br /&gt;
	local wikitext = helper.buildtable(init, 1, last, namespace, page, archiveprefix) .. &amp;quot;\n|}&amp;quot;&lt;br /&gt;
	return wikitext&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.run = function(frame)&lt;br /&gt;
	local namespace&lt;br /&gt;
	local page&lt;br /&gt;
	local prefix&lt;br /&gt;
	local archive&lt;br /&gt;
	if (frame.args.root and frame.args.root ~= &amp;quot;&amp;quot;) then&lt;br /&gt;
		local pattern = &amp;quot;([^:]+):([^/]+)/(.*)&amp;quot;&lt;br /&gt;
		_, _, namespace, page, prefix = mw.ustring.find(frame.args.root, pattern)&lt;br /&gt;
		namespace = mw.ustring.gsub(namespace, &amp;quot; &amp;quot;, &amp;quot;_&amp;quot;)&lt;br /&gt;
	else&lt;br /&gt;
		local current = mw.title.getCurrentTitle()&lt;br /&gt;
		namespace = mw.ustring.gsub(current.nsText, &amp;quot; &amp;quot;, &amp;quot;_&amp;quot;)&lt;br /&gt;
		page = current.text&lt;br /&gt;
		archive = frame.args.archivename or &amp;quot;Archive&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return p.buildtable(namespace, page, archive)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Pppery</name></author>
	</entry>
</feed>