<?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%2Ftrappist_the_monk%2Fbob</id>
	<title>Module:Sandbox/trappist the monk/bob - 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%2Ftrappist_the_monk%2Fbob"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/trappist_the_monk/bob&amp;action=history"/>
	<updated>2026-04-22T00:28:43Z</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/trappist_the_monk/bob&amp;diff=146605&amp;oldid=prev</id>
		<title>imported&gt;Trappist the monk at 19:14, 1 October 2020</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/trappist_the_monk/bob&amp;diff=146605&amp;oldid=prev"/>
		<updated>2020-10-01T19:14:55Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;p={}&lt;br /&gt;
-- crude comparison between the various ISO 639 parts data and iana 2020-09-17&lt;br /&gt;
function p.comp ()&lt;br /&gt;
	local iana = mw.loadData (&amp;#039;Module:Language/data/iana languages/sandbox&amp;#039;);&lt;br /&gt;
	local iso2 = mw.loadData (&amp;#039;Module:Language/data/ISO 639-2&amp;#039;)&lt;br /&gt;
	local iso2B = mw.loadData (&amp;#039;Module:Language/data/ISO 639-2B&amp;#039;)&lt;br /&gt;
	local iso3 = mw.loadData (&amp;#039;Module:Language/data/ISO 639-3&amp;#039;);&lt;br /&gt;
	local dep3 = mw.loadData (&amp;#039;Module:Language/data/ISO 639-3 (dep)&amp;#039;);&lt;br /&gt;
	local iso5 = mw.loadData (&amp;#039;Module:Language/data/ISO 639-5&amp;#039;);&lt;br /&gt;
	local syn = mw.loadData (&amp;#039;Module:Lang/ISO 639 synonyms&amp;#039;);&lt;br /&gt;
	local wp_lang = mw.loadData (&amp;#039;Module:Language/data/wp languages&amp;#039;);&lt;br /&gt;
	local override = mw.loadData (&amp;#039;Module:Lang/data/sandbox&amp;#039;).override;&lt;br /&gt;
	&lt;br /&gt;
	local iso2_not_in_iana = {}													-- ISO 639-1 synonymous codes not in iana&lt;br /&gt;
	local iso2B_not_in_iana = {}												-- none of the ISO 639-2B codes in iana&lt;br /&gt;
	local iso3_not_in_iana = {}													-- ISO 639-1 synonymous codes and hbs (Serbo Croatian) not in iana&lt;br /&gt;
	local dep3_not_in_iana = {}													-- none of the deprecated ISO 639-3 codes in iana&lt;br /&gt;
	local iso5_not_in_iana = {}													-- ISO 639-1 synonymous codes not in iana (bih)&lt;br /&gt;
	local wp_lang_not_in_override = {}&lt;br /&gt;
&lt;br /&gt;
	local iana_not_in_iso3 = {}&lt;br /&gt;
	local iana_dep_not_in_dep3 = {}&lt;br /&gt;
	&lt;br /&gt;
	for k, v in pairs (iso2) do&lt;br /&gt;
		if not iana.active[k] then&lt;br /&gt;
			if not syn[k] then&lt;br /&gt;
				table.insert (iso2_not_in_iana, k);&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs (iso2B) do&lt;br /&gt;
		if not iana.active[k] then&lt;br /&gt;
			table.insert (iso2B_not_in_iana, k);&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs (iso3) do&lt;br /&gt;
		if not iana.active[k] then&lt;br /&gt;
			if not syn[k] then&lt;br /&gt;
				table.insert (iso3_not_in_iana, k);&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs (dep3) do&lt;br /&gt;
		if not iana.deprecated[k] then&lt;br /&gt;
			table.insert (dep3_not_in_iana, k)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs (iana.deprecated) do&lt;br /&gt;
		if not dep3[k] then&lt;br /&gt;
			table.insert (iana_dep_not_in_dep3, k)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs (iso5) do&lt;br /&gt;
		if not iana.active[k] then&lt;br /&gt;
			table.insert (iso5_not_in_iana, k);&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs (iana.active) do&lt;br /&gt;
		if (3 == k:len()) and not iso3[k] then&lt;br /&gt;
			table.insert (iana_not_in_iso3, k);&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs (wp_lang) do&lt;br /&gt;
		k = k:lower()&lt;br /&gt;
--error (mw.dumpObject (iana[k][1]))&lt;br /&gt;
		if not override[k] then&lt;br /&gt;
			if iana.active[k] then&lt;br /&gt;
				table.insert (wp_lang_not_in_override, table.concat ({&lt;br /&gt;
					k,&lt;br /&gt;
					&amp;#039;: &amp;#039;,&lt;br /&gt;
					v[1],&lt;br /&gt;
					&amp;#039;; iana: &amp;#039;,&lt;br /&gt;
					iana.active[k][1],&lt;br /&gt;
					}));&lt;br /&gt;
			else&lt;br /&gt;
				table.insert (wp_lang_not_in_override, table.concat ({&lt;br /&gt;
					k,&lt;br /&gt;
					&amp;#039;: &amp;#039;,&lt;br /&gt;
					v[1],&lt;br /&gt;
					&amp;#039;; not in iana&amp;#039;,&lt;br /&gt;
					}));&lt;br /&gt;
			end&lt;br /&gt;
--			table.insert (wp_lang_not_in_override, k);&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort (wp_lang_not_in_override)&lt;br /&gt;
	table.sort (iso2B_not_in_iana)&lt;br /&gt;
	table.sort (iso3_not_in_iana)&lt;br /&gt;
	table.sort (dep3_not_in_iana)&lt;br /&gt;
	table.sort (iana_dep_not_in_dep3)&lt;br /&gt;
	&lt;br /&gt;
	return &amp;#039;iso2_not_in_iana:\n&amp;#039; .. mw.dumpObject (iso2_not_in_iana) ..&lt;br /&gt;
			&amp;#039;\n\niso2B_not_in_iana:\n&amp;#039; .. mw.dumpObject (iso2B_not_in_iana) ..&lt;br /&gt;
			&amp;#039;\n\niso3_not_in_iana:\n&amp;#039; .. mw.dumpObject (iso3_not_in_iana) ..&lt;br /&gt;
			&amp;#039;\n\niso5_not_in_iana:\n&amp;#039; .. mw.dumpObject (iso5_not_in_iana) ..&lt;br /&gt;
			&amp;#039;\n\dep3_not_in_iana:\n&amp;#039; .. mw.dumpObject (dep3_not_in_iana) ..&lt;br /&gt;
			&amp;#039;\n\iana_dep_not_in_dep3:\n&amp;#039; .. mw.dumpObject (iana_dep_not_in_dep3) ..&lt;br /&gt;
			&amp;#039;\n\wp_lang_not_in_override:\n&amp;#039; .. mw.dumpObject (wp_lang_not_in_override)&lt;br /&gt;
	--	return #dep3_not_in_iana, &amp;#039;dep3_not_in_iana:\n&amp;#039; .. mw.dumpObject (dep3_not_in_iana)&lt;br /&gt;
&lt;br /&gt;
--	return mw.dumpObject (iana_not_in_iso3)&lt;br /&gt;
end&lt;br /&gt;
		&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.test ()&lt;br /&gt;
	local langs = mw.language.fetchLanguageNames(&amp;#039;en&amp;#039;, &amp;#039;all&amp;#039;);&lt;br /&gt;
	local iws = mw.site.interwikiMap (&amp;#039;local&amp;#039;);&lt;br /&gt;
	local lang_not_in_iw = {};&lt;br /&gt;
	local iw_is_lang = {}&lt;br /&gt;
	local iw_is_not_lang = {}&lt;br /&gt;
	local iw_is_extra_lang = {}&lt;br /&gt;
	&lt;br /&gt;
	for code, language in pairs (langs) do&lt;br /&gt;
		if not iws[code] then&lt;br /&gt;
			lang_not_in_iw[code] = language;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs (iws) do&lt;br /&gt;
		if langs[v[&amp;quot;prefix&amp;quot;]] then&lt;br /&gt;
			iw_is_lang[v[&amp;quot;prefix&amp;quot;]] = langs[v[&amp;quot;prefix&amp;quot;]];&lt;br /&gt;
		elseif v.isExtraLanguageLink then&lt;br /&gt;
			iw_is_extra_lang[v[&amp;quot;prefix&amp;quot;]] = v[&amp;#039;url&amp;#039;];&lt;br /&gt;
		else&lt;br /&gt;
			if v[&amp;#039;url&amp;#039;]:match (&amp;#039;%.wikipedia%.org&amp;#039;) then&lt;br /&gt;
				iw_is_not_lang[v[&amp;quot;prefix&amp;quot;]] = v[&amp;#039;url&amp;#039;];&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
these are wikipedia language prefixes that seem to be redirects; these do not add to the languages link-list&lt;br /&gt;
	[&amp;quot;cmn&amp;quot;] = &amp;quot;https://zh.wikipedia.org/wiki/$1&amp;quot;,								-- Mandarin Chinese (ISO 639-3 code)&lt;br /&gt;
	[&amp;quot;cz&amp;quot;] = &amp;quot;https://cs.wikipedia.org/wiki/$1&amp;quot;,								-- Czech (ISO 3166 country code)&lt;br /&gt;
	[&amp;quot;dk&amp;quot;] = &amp;quot;https://da.wikipedia.org/wiki/$1&amp;quot;,								-- Danish (ISO 3166 country code)&lt;br /&gt;
	[&amp;quot;epo&amp;quot;] = &amp;quot;https://eo.wikipedia.org/wiki/$1&amp;quot;,								-- Esperanto (ISO 639-3 code)&lt;br /&gt;
	[&amp;quot;jp&amp;quot;] = &amp;quot;https://ja.wikipedia.org/wiki/$1&amp;quot;,								-- Japanese (ISO 3166 country code)&lt;br /&gt;
	[&amp;quot;minnan&amp;quot;] = &amp;quot;https://zh-min-nan.wikipedia.org/wiki/$1&amp;quot;,&lt;br /&gt;
	[&amp;quot;zh-cfr&amp;quot;] = &amp;quot;https://zh-min-nan.wikipedia.org/wiki/$1&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
these are not wikipedia language codes:&lt;br /&gt;
	[&amp;quot;nost&amp;quot;] = &amp;quot;https://nostalgia.wikipedia.org/wiki/$1&amp;quot;,&lt;br /&gt;
	[&amp;quot;nostalgia&amp;quot;] = &amp;quot;https://nostalgia.wikipedia.org/wiki/$1&amp;quot;,&lt;br /&gt;
	[&amp;quot;sep11&amp;quot;] = &amp;quot;https://sep11.wikipedia.org/wiki/$1&amp;quot;,&lt;br /&gt;
	[&amp;quot;tenwiki&amp;quot;] = &amp;quot;https://ten.wikipedia.org/wiki/$1&amp;quot;,&lt;br /&gt;
	[&amp;quot;test2wiki&amp;quot;] = &amp;quot;https://test2.wikipedia.org/wiki/$1&amp;quot;,&lt;br /&gt;
	[&amp;quot;testwiki&amp;quot;] = &amp;quot;https://test.wikipedia.org/wiki/$1&amp;quot;,&lt;br /&gt;
	[&amp;quot;w&amp;quot;] = &amp;quot;https://en.wikipedia.org/wiki/$1&amp;quot;,&lt;br /&gt;
	[&amp;quot;wg&amp;quot;] = &amp;quot;https://wg-en.wikipedia.org/wiki/$1&amp;quot;,&lt;br /&gt;
	[&amp;quot;wikipedia&amp;quot;] = &amp;quot;https://en.wikipedia.org/wiki/$1&amp;quot;,&lt;br /&gt;
	[&amp;quot;wikipediawikipedia&amp;quot;] = &amp;quot;https://en.wikipedia.org/wiki/Wikipedia:$1&amp;quot;,&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--	return mw.dumpObject (lang_not_in_iw);										-- list of lang codes that are not prefixes (there are a lot)&lt;br /&gt;
	return mw.dumpObject (iw_is_lang);											-- list of prefixes that match supported language codes (use this list)&lt;br /&gt;
--	return mw.dumpObject (iw_is_not_lang);										-- list of prefixes that have wikipedia.org url but prefix isn&amp;#039;t found in the langs list&lt;br /&gt;
--	return mw.dumpObject (iw_is_extra_lang);									-- none are marked with [&amp;quot;isExtraLanguageLink&amp;quot;] = true,&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.format (text)&lt;br /&gt;
	local str = text:gsub (&amp;#039;%s*=%s*&amp;#039;, &amp;#039;=&amp;#039;):gsub(&amp;#039;%s*|%s*&amp;#039;, &amp;#039; |&amp;#039;);				-- uniform spacing&lt;br /&gt;
	str = str:gsub (&amp;#039;accessdate&amp;#039;, &amp;#039;access-date&amp;#039;):gsub (&amp;#039;archivedate&amp;#039;, &amp;#039;archive-date&amp;#039;);	-- hyphenated version&lt;br /&gt;
	str = str:gsub (&amp;#039;(%a)url&amp;#039;, &amp;#039;%1-url&amp;#039;);										-- archive, dead, chapter, etc urls to hyphenated versions&lt;br /&gt;
	str = str:gsub (&amp;#039;|[%a%-]+= +&amp;#039;, &amp;#039;&amp;#039;);											-- remove empty parameters&lt;br /&gt;
	str = str:gsub (&amp;#039; +|[%a%-]+=}&amp;#039;, &amp;#039;}&amp;#039;);										-- remove empty parameter at end of template&lt;br /&gt;
	str = str:gsub(&amp;#039;{%s+&amp;#039;, &amp;#039;{&amp;#039;):gsub(&amp;#039;%s+}&amp;#039;, &amp;#039;}&amp;#039;);								-- no spacing&lt;br /&gt;
	return str;&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.eq (frame)&lt;br /&gt;
	local ref = frame[1];&lt;br /&gt;
	local test = frame[2];&lt;br /&gt;
	&lt;br /&gt;
	if ref == test then&lt;br /&gt;
		return &amp;#039;ref == test&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local msg;&lt;br /&gt;
	&lt;br /&gt;
	if ref:len() == test:len() then&lt;br /&gt;
		msg = &amp;#039;same length; &amp;#039;;&lt;br /&gt;
	else&lt;br /&gt;
		msg = &amp;#039;diff length; &amp;#039;;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local i=1;&lt;br /&gt;
	while (1) do&lt;br /&gt;
		local r, t;&lt;br /&gt;
		r = mw.ustring.codepoint(ref, i);&lt;br /&gt;
		t = mw.ustring.codepoint(test, i);&lt;br /&gt;
		&lt;br /&gt;
		if r == t then&lt;br /&gt;
			i=i+1;&lt;br /&gt;
		else&lt;br /&gt;
			return msg .. &amp;#039;diff @ char: &amp;#039; .. i .. &amp;#039;; ref: &amp;#039; .. mw.ustring.char (r) .. &amp;#039;; test: &amp;#039; .. mw.ustring.char (t);&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return i;&lt;br /&gt;
end&lt;br /&gt;
return p;&lt;/div&gt;</summary>
		<author><name>imported&gt;Trappist the monk</name></author>
	</entry>
</feed>