<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.pantonianrepublic.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AIPA%2Foverview</id>
	<title>Module:IPA/overview - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pantonianrepublic.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AIPA%2Foverview"/>
	<link rel="alternate" type="text/html" href="https://wiki.pantonianrepublic.com/index.php?title=Module:IPA/overview&amp;action=history"/>
	<updated>2026-04-13T10:23:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.0</generator>
	<entry>
		<id>https://wiki.pantonianrepublic.com/index.php?title=Module:IPA/overview&amp;diff=6558&amp;oldid=prev</id>
		<title>Django07: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://wiki.pantonianrepublic.com/index.php?title=Module:IPA/overview&amp;diff=6558&amp;oldid=prev"/>
		<updated>2026-01-08T13:35:51Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:35, 8 January 2026&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key wiki:diff::1.12:old-6557:rev-6558 --&gt;
&lt;/table&gt;</summary>
		<author><name>Django07</name></author>
	</entry>
	<entry>
		<id>https://wiki.pantonianrepublic.com/index.php?title=Module:IPA/overview&amp;diff=6557&amp;oldid=prev</id>
		<title>wikipedia&gt;Nardog: simpler</title>
		<link rel="alternate" type="text/html" href="https://wiki.pantonianrepublic.com/index.php?title=Module:IPA/overview&amp;diff=6557&amp;oldid=prev"/>
		<updated>2023-10-02T09:24:06Z</updated>

		<summary type="html">&lt;p&gt;simpler&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local lects = mw.loadData(&amp;#039;Module:IPA/data/export&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local function addNote(cell, note)&lt;br /&gt;
	cell:wikitext(string.format(&amp;#039; &amp;lt;small&amp;gt;(%s)&amp;lt;/small&amp;gt;&amp;#039;, note))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main()&lt;br /&gt;
	local t = mw.html.create(&amp;#039;table&amp;#039;):addClass(&amp;#039;wikitable sortable mw-collapsible&amp;#039;)&lt;br /&gt;
		:tag(&amp;#039;caption&amp;#039;):addClass(&amp;#039;nowrap&amp;#039;):wikitext(&amp;#039;Data overview&amp;#039;):done()&lt;br /&gt;
		:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):attr(&amp;#039;colspan&amp;#039;, 4):wikitext(&amp;#039;Language&amp;#039;):done()&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):attr(&amp;#039;colspan&amp;#039;, 4):wikitext(&amp;#039;Dialect&amp;#039;):done()&lt;br /&gt;
			:done()&lt;br /&gt;
		:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Code&amp;#039;):done()&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Name&amp;#039;):done()&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Link&amp;#039;):done()&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Key&amp;#039;):done()&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Code&amp;#039;):done()&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Name&amp;#039;):done()&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Link&amp;#039;):done()&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Key&amp;#039;):done()&lt;br /&gt;
			:done()&lt;br /&gt;
	local langRow, langCells, dialectCount&lt;br /&gt;
	for i, lect in ipairs(lects) do&lt;br /&gt;
		local row&lt;br /&gt;
		local cells = {}&lt;br /&gt;
		if lect.parent then&lt;br /&gt;
			dialectCount = dialectCount + 1&lt;br /&gt;
			if dialectCount == 1 then&lt;br /&gt;
				row = langRow&lt;br /&gt;
			else&lt;br /&gt;
				row = t:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
				for _, cell in ipairs(langCells) do&lt;br /&gt;
					cell:attr(&amp;#039;rowspan&amp;#039;, dialectCount)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			row = t:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			langRow = row&lt;br /&gt;
			langCells = cells&lt;br /&gt;
			dialectCount = 0&lt;br /&gt;
		end&lt;br /&gt;
		for _ = 1, 4 do&lt;br /&gt;
			table.insert(cells, row:tag(&amp;#039;td&amp;#039;))&lt;br /&gt;
		end&lt;br /&gt;
		if not lect.parent and not (lects[i + 1] and lects[i + 1].parent) then&lt;br /&gt;
			for _ = 1, 4 do&lt;br /&gt;
				row:tag(&amp;#039;td&amp;#039;):css(&amp;#039;background&amp;#039;, &amp;#039;#ececec&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		cells[1]:wikitext(&amp;#039;&amp;lt;code&amp;gt;&amp;#039; .. lect.code:gsub(&amp;#039;^[^-]+%-&amp;#039;, &amp;#039;&amp;#039;) .. &amp;#039;&amp;lt;/code&amp;gt;&amp;#039;)&lt;br /&gt;
		if lect.aliases then&lt;br /&gt;
			local aliases = {}&lt;br /&gt;
			for _, alias in ipairs(lect.aliases) do&lt;br /&gt;
				table.insert(aliases, alias)&lt;br /&gt;
			end&lt;br /&gt;
			addNote(cells[1], string.format(&lt;br /&gt;
				&amp;#039;also &amp;lt;code&amp;gt;%s&amp;lt;/code&amp;gt;&amp;#039;,&lt;br /&gt;
				table.concat(aliases, &amp;#039;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;#039;)&lt;br /&gt;
			))&lt;br /&gt;
		end&lt;br /&gt;
		do&lt;br /&gt;
			local notes = {}&lt;br /&gt;
			if lect.name then&lt;br /&gt;
				if lect.name == lect.extName then&lt;br /&gt;
					table.insert(notes, &amp;#039;redundant&amp;#039;)&lt;br /&gt;
				elseif lect.extName then&lt;br /&gt;
					table.insert(notes, string.format(&amp;#039;overrides &amp;quot;%s&amp;quot;&amp;#039;, lect.extName))&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if lect.text then&lt;br /&gt;
				table.insert(notes, string.format(&amp;#039;label: &amp;quot;%s&amp;quot;&amp;#039;, lect.text))&lt;br /&gt;
			end&lt;br /&gt;
			cells[2]:wikitext(lect.name or lect.extName)&lt;br /&gt;
			if #notes &amp;gt; 0 then&lt;br /&gt;
				addNote(cells[2], table.concat(notes, &amp;#039;; &amp;#039;))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		do&lt;br /&gt;
			local note&lt;br /&gt;
			local intLink = lect.link or lect.generatedLink&lt;br /&gt;
			if intLink then&lt;br /&gt;
				if intLink == lect.extLink then&lt;br /&gt;
					note = &amp;#039;redundant&amp;#039;&lt;br /&gt;
				elseif lect.extLink then&lt;br /&gt;
					note = string.format(&amp;#039;overrides [[%s]]&amp;#039;, lect.extLink)&lt;br /&gt;
					local intTitle = mw.title.new(intLink)&lt;br /&gt;
					intTitle = intTitle.redirectTarget or intTitle&lt;br /&gt;
					local extTitle = mw.title.new(lect.extLink)&lt;br /&gt;
					extTitle = extTitle.redirectTarget or extTitle&lt;br /&gt;
					if intTitle ~= extTitle then&lt;br /&gt;
						note = note .. &amp;#039;, a different article&amp;#039;&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			local s = intLink or lect.extLink&lt;br /&gt;
			s = lect.generatedLink and &amp;#039;([[&amp;#039; .. s .. &amp;#039;]])&amp;#039; or &amp;#039;[[&amp;#039; .. s .. &amp;#039;]]&amp;#039;&lt;br /&gt;
			cells[3]:wikitext(s)&lt;br /&gt;
			if note then&lt;br /&gt;
				addNote(cells[3], note)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		cells[4]:wikitext(&lt;br /&gt;
			lect.key and &amp;#039;[[&amp;#039; .. lect.key .. &amp;#039;]]&amp;#039; or&lt;br /&gt;
				&amp;#039;([[&amp;#039; .. (lect.parent and lect.parent.key or &amp;#039;Help:IPA&amp;#039;) .. &amp;#039;]])&amp;#039;&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
	return tostring(t)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.keys()&lt;br /&gt;
	local t = mw.html.create(&amp;#039;table&amp;#039;):addClass(&amp;#039;wikitable sortable mw-collapsible&amp;#039;)&lt;br /&gt;
		:tag(&amp;#039;caption&amp;#039;):addClass(&amp;#039;nowrap&amp;#039;):wikitext(&amp;#039;Languages with dedicated keys&amp;#039;):done()&lt;br /&gt;
		:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Key&amp;#039;):done()&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Language&amp;#039;):done()&lt;br /&gt;
			:tag(&amp;#039;th&amp;#039;):wikitext(&amp;#039;Code&amp;#039;):done()&lt;br /&gt;
			:done()&lt;br /&gt;
	local byKey, keys = {}, {}&lt;br /&gt;
	for _, lect in ipairs(lects) do&lt;br /&gt;
		local key = lect.key or lect.parent and lect.parent.key&lt;br /&gt;
		if key then&lt;br /&gt;
			local asciiKey = mw.ustring.gsub(mw.ustring.toNFD(key), &amp;#039;[^ -~]&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
			if not byKey[asciiKey] then&lt;br /&gt;
				byKey[asciiKey] = { name = key }&lt;br /&gt;
				table.insert(keys, asciiKey)&lt;br /&gt;
			end&lt;br /&gt;
			table.insert(byKey[asciiKey], {&lt;br /&gt;
				code = lect.code,&lt;br /&gt;
				name = lect.name or lect.extName,&lt;br /&gt;
				link = lect.link or lect.generatedLink or lect.extLink&lt;br /&gt;
			})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(keys)&lt;br /&gt;
	for _, asciiKey in ipairs(keys) do&lt;br /&gt;
		local row = t:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
		local keyLects = byKey[asciiKey]&lt;br /&gt;
		local keyCell = row:tag(&amp;#039;td&amp;#039;):wikitext(&amp;#039;[[&amp;#039; .. keyLects.name .. &amp;#039;]]&amp;#039;)&lt;br /&gt;
		local lang&lt;br /&gt;
		if #keyLects &amp;gt; 1 then&lt;br /&gt;
			keyCell:attr(&amp;#039;rowspan&amp;#039;, #keyLects)&lt;br /&gt;
			table.sort(keyLects, function (a, b) return a.name &amp;lt; b.name end)&lt;br /&gt;
			local keyName = mw.ustring.gsub(keyLects.name, &amp;#039;^[^/]*/&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
			for _, lect in ipairs(keyLects) do&lt;br /&gt;
				if lect.name == keyName then&lt;br /&gt;
					lang = lect&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if not lang then&lt;br /&gt;
				for _, lect in ipairs(keyLects) do&lt;br /&gt;
					if lect.name:find(&amp;#039; languages$&amp;#039;) then&lt;br /&gt;
						lang = lect&lt;br /&gt;
						break&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if not lang then&lt;br /&gt;
				for _, lect in ipairs(keyLects) do&lt;br /&gt;
					if not lect.code:find(&amp;#039;-&amp;#039;) then&lt;br /&gt;
						lang = lect&lt;br /&gt;
						break&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		lang = lang or keyLects[1]&lt;br /&gt;
		local prev = {&lt;br /&gt;
			name = lang.name,&lt;br /&gt;
			count = 1,&lt;br /&gt;
			cell = row:tag(&amp;#039;td&amp;#039;):wikitext(&lt;br /&gt;
				string.format(&amp;#039;[[%s|%s]]&amp;#039;, lang.link, lang.name)&lt;br /&gt;
			)&lt;br /&gt;
		}&lt;br /&gt;
		row:tag(&amp;#039;td&amp;#039;):wikitext(&amp;#039;&amp;lt;code&amp;gt;&amp;#039; .. lang.code .. &amp;#039;&amp;lt;/code&amp;gt;&amp;#039;)&lt;br /&gt;
		for _, lect in ipairs(keyLects) do&lt;br /&gt;
			if lect ~= lang then&lt;br /&gt;
				local subRow = t:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
				if prev.name == lect.name then&lt;br /&gt;
					prev.count = prev.count + 1&lt;br /&gt;
					prev.cell:attr(&amp;#039;rowspan&amp;#039;, prev.count)&lt;br /&gt;
				else&lt;br /&gt;
					prev = {&lt;br /&gt;
						name = lect.name,&lt;br /&gt;
						count = 1,&lt;br /&gt;
						cell = subRow:tag(&amp;#039;td&amp;#039;):wikitext(&lt;br /&gt;
							string.format(&amp;#039;[[%s|%s]]&amp;#039;, lect.link, lect.name)&lt;br /&gt;
						)&lt;br /&gt;
					}&lt;br /&gt;
				end&lt;br /&gt;
				subRow:tag(&amp;#039;td&amp;#039;):wikitext(&amp;#039;&amp;lt;code&amp;gt;&amp;#039; .. lect.code .. &amp;#039;&amp;lt;/code&amp;gt;&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return tostring(t)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wikipedia&gt;Nardog</name></author>
	</entry>
</feed>