<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.stiles.casa/index.php?action=history&amp;feed=atom&amp;title=Module%3AWikidata_Infobox</id>
	<title>Module:Wikidata Infobox - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stiles.casa/index.php?action=history&amp;feed=atom&amp;title=Module%3AWikidata_Infobox"/>
	<link rel="alternate" type="text/html" href="https://wiki.stiles.casa/index.php?title=Module:Wikidata_Infobox&amp;action=history"/>
	<updated>2026-05-07T14:57:20Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.2</generator>
	<entry>
		<id>https://wiki.stiles.casa/index.php?title=Module:Wikidata_Infobox&amp;diff=7289&amp;oldid=prev</id>
		<title>imported&gt;Aidan9382: sync</title>
		<link rel="alternate" type="text/html" href="https://wiki.stiles.casa/index.php?title=Module:Wikidata_Infobox&amp;diff=7289&amp;oldid=prev"/>
		<updated>2022-05-25T15:19:36Z</updated>

		<summary type="html">&lt;p&gt;sync&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
local p = {}&lt;br /&gt;
local WikidataIB = require(&amp;quot;Module:WikidataIB&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
-- Code from &amp;#039;Module:No globals&amp;#039;&lt;br /&gt;
local mt = getmetatable(_G) or {}&lt;br /&gt;
function mt.__index (t, k)&lt;br /&gt;
	if k ~= &amp;#039;arg&amp;#039; then&lt;br /&gt;
		error(&amp;#039;Tried to read nil global &amp;#039; .. tostring(k), 2)&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
function mt.__newindex(t, k, v)&lt;br /&gt;
	if k ~= &amp;#039;arg&amp;#039; then&lt;br /&gt;
		error(&amp;#039;Tried to write global &amp;#039; .. tostring(k), 2)&lt;br /&gt;
	end&lt;br /&gt;
	rawset(t, k, v)&lt;br /&gt;
end&lt;br /&gt;
setmetatable(_G, mt)&lt;br /&gt;
-- End of code from &amp;#039;Module:No globals&amp;#039;&lt;br /&gt;
&lt;br /&gt;
function p.getMID()&lt;br /&gt;
	return &amp;quot;M&amp;quot; .. mw.title.getCurrentTitle().id&lt;br /&gt;
end&lt;br /&gt;
function p.getFilename()&lt;br /&gt;
	return mw.title.getCurrentTitle().nsText .. &amp;#039;:&amp;#039; .. mw.title.getCurrentTitle().text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getP180vals(frame)&lt;br /&gt;
	local mid = frame.args[1]&lt;br /&gt;
	local prefix = frame.args[2] or &amp;#039;&amp;#039;&lt;br /&gt;
	local postfix = frame.args[3] or &amp;#039; &amp;#039;&lt;br /&gt;
	local text = &amp;#039;&amp;#039;&lt;br /&gt;
	local tablevals = mw.wikibase.getBestStatements( mid, &amp;#039;P180&amp;#039;)&lt;br /&gt;
	for i, v in ipairs(tablevals) do&lt;br /&gt;
		text = text .. prefix .. v.mainsnak.datavalue.value.id .. postfix&lt;br /&gt;
	end&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Get a list of all properties in the current item&lt;br /&gt;
function p.preloadWikidataProperties(frame)&lt;br /&gt;
	local qid = frame.args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
	local proplist = &amp;#039;&amp;#039;&lt;br /&gt;
	if mw.text.trim(qid or &amp;#039;&amp;#039;) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		local entity = mw.wikibase.getEntity(qid)&lt;br /&gt;
		local properties = entity:getProperties()&lt;br /&gt;
		for i, v in ipairs(properties) do&lt;br /&gt;
			proplist = proplist .. v .. &amp;quot;, &amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if proplist == &amp;#039;&amp;#039; then&lt;br /&gt;
		proplist = &amp;#039;None&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return proplist&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- check if it is on the list, fork of WikidataIB&amp;#039;s checkBlacklist function&lt;br /&gt;
function p.checkProplist(frame)&lt;br /&gt;
	local proplist = frame.args.fetchwikidata or frame.args.fwd or &amp;quot;&amp;quot;&lt;br /&gt;
	local fieldname = frame.args.name or &amp;quot;&amp;quot;&lt;br /&gt;
	if proplist ~= &amp;quot;&amp;quot; and fieldname ~= &amp;quot;&amp;quot; then&lt;br /&gt;
		if proplist:find(fieldname .. &amp;quot;,&amp;quot;) then&lt;br /&gt;
			return true&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- one of the fields is missing: let&amp;#039;s call that &amp;quot;on the list&amp;quot;&lt;br /&gt;
		return true&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getCombinedWikidataTemplates(frame)&lt;br /&gt;
	local qid = frame.args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
	local outputcode = &amp;#039;&amp;#039;&lt;br /&gt;
	if mw.text.trim(qid or &amp;#039;&amp;#039;) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		local tablevals = mw.wikibase.getBestStatements( qid, &amp;#039;P971&amp;#039;)&lt;br /&gt;
		local count = 0&lt;br /&gt;
		local mapqid = 0&lt;br /&gt;
		for i, v in ipairs(tablevals) do&lt;br /&gt;
			count = count + 1&lt;br /&gt;
		end&lt;br /&gt;
		if count &amp;lt; 3 then&lt;br /&gt;
			for i, v in ipairs(tablevals) do&lt;br /&gt;
				local skip = 0&lt;br /&gt;
				-- Skip building interiors (Q30062422), maps (Q4006) and ship names (Q56351075), atlantic ocean (Q97), US state (Q35657)&lt;br /&gt;
				if v.mainsnak.datavalue.value.id == &amp;#039;Q30062422&amp;#039; or v.mainsnak.datavalue.value.id == &amp;#039;Q56351075&amp;#039; or v.mainsnak.datavalue.value.id == &amp;#039;Q4006&amp;#039; or v.mainsnak.datavalue.value.id == &amp;#039;Q97&amp;#039; or v.mainsnak.datavalue.value.id == &amp;#039;Q35657&amp;#039; then&lt;br /&gt;
					skip = 1&lt;br /&gt;
				else&lt;br /&gt;
					local p279check = mw.wikibase.getBestStatements( v.mainsnak.datavalue.value.id, &amp;#039;P279&amp;#039;)&lt;br /&gt;
					for j, w in ipairs(p279check) do&lt;br /&gt;
						skip = 1&lt;br /&gt;
					end&lt;br /&gt;
					local p31check = mw.wikibase.getBestStatements( v.mainsnak.datavalue.value.id, &amp;#039;P31&amp;#039;)&lt;br /&gt;
					for j, w in ipairs(p31check) do&lt;br /&gt;
						-- Skip countries (Q6256), continents (Q5107), sovereign states (Q3624078), oceans (Q9430)&lt;br /&gt;
						if w.mainsnak.datavalue.value.id == &amp;#039;Q6256&amp;#039; or w.mainsnak.datavalue.value.id == &amp;#039;Q5107&amp;#039; or  w.mainsnak.datavalue.value.id == &amp;#039;Q3624078&amp;#039; or  w.mainsnak.datavalue.value.id == &amp;#039;Q9430&amp;#039; then&lt;br /&gt;
							skip = 1&lt;br /&gt;
							mapqid = v.mainsnak.datavalue.value.id&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				if skip == 0 then&lt;br /&gt;
					local newframe = {}&lt;br /&gt;
					newframe.args = {}&lt;br /&gt;
					newframe.args[0] = &amp;#039;&amp;#039;&lt;br /&gt;
					newframe.args[1] = v.mainsnak.datavalue.value.id&lt;br /&gt;
					outputcode = outputcode .. frame:expandTemplate{ title = &amp;#039;Wikidata Infobox/core&amp;#039;, args = { qid=v.mainsnak.datavalue.value.id, embed=&amp;#039;Yes&amp;#039;, conf_authoritycontrol=&amp;#039;yes&amp;#039;, fwd=p.preloadWikidataProperties(newframe) } }&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if mapqid ~= 0 then&lt;br /&gt;
			outputcode = outputcode .. frame:expandTemplate{ title = &amp;#039;Wikidata Infobox/countrymap&amp;#039;, args={qid=mapqid}}&lt;br /&gt;
		end	&lt;br /&gt;
	end&lt;br /&gt;
	return outputcode&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.ifThenShow(frame)&lt;br /&gt;
	if mw.text.trim(frame.args[1] or &amp;#039;&amp;#039;) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		return (frame.args[3] or &amp;#039;&amp;#039;) .. (frame.args[1] or &amp;#039;&amp;#039;) .. (frame.args[4] or &amp;#039;&amp;#039;)&lt;br /&gt;
	else&lt;br /&gt;
		return (frame.args[2] or &amp;#039;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.addCat(frame)&lt;br /&gt;
	if mw.text.trim(frame.args[1] or &amp;#039;&amp;#039;) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		return &amp;#039;[[&amp;#039; .. frame.args[1] .. &amp;#039;]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--  Given an input area, return a map zoom level to use with mw:Extension:Kartographer in {{Wikidata Infobox}}. Defaults to mapzoom=15. &lt;br /&gt;
function p.autoMapZoom(frame)&lt;br /&gt;
	local sizestr,null = frame.args[1]:gsub(&amp;quot;%D+%.?%D+&amp;quot;, &amp;quot;&amp;quot;):gsub(&amp;quot;,&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
	local size = tonumber(sizestr) or 0&lt;br /&gt;
	local LUT = { 5000000, 1000000, 100000, 50000, 10000, 2000, 150, 50, 19, 14, 5, 1, 0.5 } &lt;br /&gt;
	for zoom, scale in ipairs(LUT) do&lt;br /&gt;
		if size &amp;gt; scale then&lt;br /&gt;
			return zoom+1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return 15&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.formatLine(frame)&lt;br /&gt;
	local part2 = mw.text.trim(frame.args[2] or &amp;#039;&amp;#039;)&lt;br /&gt;
	local returnstr = &amp;#039;&amp;#039;&lt;br /&gt;
	if part2 ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		returnstr = &amp;#039;&amp;lt;tr &amp;#039;&lt;br /&gt;
		if (frame.args.mobile or &amp;#039;n&amp;#039;) == &amp;#039;y&amp;#039; then&lt;br /&gt;
			returnstr = returnstr .. &amp;#039;class=&amp;quot;wdinfo_nomobile&amp;quot;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		local newframe = {}&lt;br /&gt;
		newframe.args = {}&lt;br /&gt;
		newframe.args.qid = frame.args[1]&lt;br /&gt;
		returnstr = returnstr .. &amp;#039;&amp;gt;&amp;lt;th class=&amp;quot;wikidatainfobox-lcell&amp;quot;&amp;gt;&amp;#039; .. mw.getContentLanguage():ucfirst(WikidataIB.getLabel(newframe))&lt;br /&gt;
		returnstr = returnstr .. &amp;#039;&amp;lt;/th&amp;gt;&amp;lt;td &amp;#039;&lt;br /&gt;
		if (frame.args.wrap or &amp;#039;n&amp;#039;) == &amp;#039;y&amp;#039; then&lt;br /&gt;
			returnstr = returnstr .. &amp;#039;style=&amp;quot;white-space: nowrap&amp;quot;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		returnstr = returnstr .. &amp;#039;&amp;gt;&amp;#039; .. part2 .. &amp;#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return returnstr&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.hasValue (tab, val)&lt;br /&gt;
    for index, value in ipairs(tab) do&lt;br /&gt;
        if value == val then&lt;br /&gt;
            return true&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- baseLang is a utility function that returns the base language in use&lt;br /&gt;
-- so for example, both English (en) and British English (en-gb) return &amp;#039;en&amp;#039;&lt;br /&gt;
-- from https://commons.wikimedia.org/wiki/Module:Wikidata2&lt;br /&gt;
function p.baseLang(frame)&lt;br /&gt;
	local txtlang = frame:callParserFunction( &amp;quot;int&amp;quot;, &amp;quot;lang&amp;quot; ) or &amp;quot;&amp;quot;&lt;br /&gt;
	-- This deals with specific exceptions: be-tarask -&amp;gt; be_x_old&lt;br /&gt;
	if txtlang == &amp;quot;be-tarask&amp;quot; then&lt;br /&gt;
		return &amp;quot;be_x_old&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local pos = txtlang:find(&amp;quot;-&amp;quot;)&lt;br /&gt;
	local ret = &amp;quot;&amp;quot;&lt;br /&gt;
	if pos then&lt;br /&gt;
		ret = txtlang:sub(1, pos-1)&lt;br /&gt;
	else&lt;br /&gt;
		ret = txtlang&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.langDirection(frame)&lt;br /&gt;
	local lang = mw.text.trim(frame.args[1] or &amp;#039;&amp;#039;) &lt;br /&gt;
	if (not mw.language.isSupportedLanguage(lang)) then &lt;br /&gt;
		lang = frame:callParserFunction( &amp;quot;int&amp;quot;, &amp;quot;lang&amp;quot; ) -- get user&amp;#039;s chosen language&lt;br /&gt;
	end&lt;br /&gt;
	return mw.getLanguage(lang):getDir()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
convertChar returns the non-diacritic version of the supplied character.&lt;br /&gt;
stripDiacrits replaces words with diacritical characters with their non-diacritic equivalent.&lt;br /&gt;
strip_diacrits is available for export to other modules.&lt;br /&gt;
stringIsLike tests two words, returning true if they only differ in diacritics, false otherwise.&lt;br /&gt;
stringIs_like is available for export to other modules.&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
local function characterMap()&lt;br /&gt;
	-- table with characters with diacrits and their equivalent basic latin characters&lt;br /&gt;
	local charMap_from, charMap_to&lt;br /&gt;
	charMap_from =  &amp;#039;ÁÀÂÄǍĂĀÃÅĄƏĆĊĈČÇĎĐḌÐÉÈĖÊËĚĔĒẼĘẸĠĜĞĢĤĦḤİÍÌÎÏǏĬĪĨĮỊĴĶĹĿĽĻŁḶḸṂŃŇÑŅṆŊÓÒÔÖǑŎŌÕǪỌŐØŔŘŖṚṜŚŜŠŞȘṢŤŢȚṬÚÙÛÜǓŬŪŨŮŲỤŰǗǛǙǕŴÝŶŸỸȲŹŻŽ&amp;#039;..&lt;br /&gt;
					&amp;#039;áàâäǎăāãåąəćċĉčçďđḍðéèėêëěĕēẽęẹġĝğģĥħḥıíìîïǐĭīĩįịĵķĺŀľļłḷḹṃńňñņṇŋóòôöǒŏōõǫọőøŕřŗṛṝśŝšşșṣťţțṭúùûüǔŭūũůųụűǘǜǚǖŵýŷÿỹȳźżž&amp;#039;&lt;br /&gt;
	charMap_to   =  &amp;#039;AAAAAAAAAAACCCCCDDDDEEEEEEEEEEEGGGGHHHIIIIIIIIIIIJKLLLLLLLMNNNNNNOOOOOOOOOOOORRRRRSSSSSSTTTTUUUUUUUUUUUUUUUUWYYYYYZZZ&amp;#039;..&lt;br /&gt;
					&amp;#039;aaaaaaaaaaacccccddddeeeeeeeeeeegggghhhiiiiiiiiiiijklllllllmnnnnnnoooooooooooorrrrrssssssttttuuuuuuuuuuuuuuuuwyyyyyzzz&amp;#039;&lt;br /&gt;
	local charMap = {}&lt;br /&gt;
	for i = 1,mw.ustring.len(charMap_from) do&lt;br /&gt;
		charMap[mw.ustring.sub(charMap_from, i, i)] = mw.ustring.sub(charMap_to, i, i)&lt;br /&gt;
	end&lt;br /&gt;
	charMap[&amp;#039;ß&amp;#039;] = &amp;#039;ss&amp;#039;&lt;br /&gt;
	return charMap&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.convertChar(frame)&lt;br /&gt;
	local ch = frame.args.char or mw.text.trim(frame.args[1]) or &amp;quot;&amp;quot;&lt;br /&gt;
	local charMap = characterMap()&lt;br /&gt;
	return charMap[ch] or ch&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.strip_diacrits(wrd)&lt;br /&gt;
	if wrd then &lt;br /&gt;
		local charMap = characterMap()&lt;br /&gt;
		wrd = string.gsub(wrd, &amp;quot;[^\128-\191][\128-\191]*&amp;quot;, charMap )&lt;br /&gt;
	end&lt;br /&gt;
	return wrd&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.stripDiacrits(frame)&lt;br /&gt;
	return p.strip_diacrits(frame.args.word or mw.text.trim(frame.args[1]))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.stringIs_like(wrd1, wrd2)&lt;br /&gt;
	return p.strip_diacrits(wrd1) == p.strip_diacrits(wrd2)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.stringIsLike(frame)&lt;br /&gt;
	local wrd1 = frame.args.word1 or frame.args[1]&lt;br /&gt;
	local wrd2 = frame.args.word2 or frame.args[2]&lt;br /&gt;
	if p.strip_diacrits(wrd1) == p.strip_diacrits(wrd2) then&lt;br /&gt;
		return true&lt;br /&gt;
	else&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.expandhiero(frame, hiero)&lt;br /&gt;
	-- added by Jura1&lt;br /&gt;
	-- for string values in Wikihiero syntax&lt;br /&gt;
	-- inline recommended by https://meta.wikimedia.org/wiki/Help_talk:WikiHiero_syntax#Unwanted_newlines https://en.stiles.casa_wiki.org/wiki/Help:WikiHiero_syntax&lt;br /&gt;
	-- maybe not needed in all contexts&lt;br /&gt;
	return 	frame:preprocess(&amp;#039;&amp;lt;div style=&amp;quot;text-align:center;display:inline;&amp;quot;&amp;gt; &amp;lt;hiero&amp;gt; &amp;#039; .. hiero .. &amp;#039; &amp;lt;/hiero&amp;gt; &amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function format2rowline(cell1, cell2)&lt;br /&gt;
	-- added by Jura1&lt;br /&gt;
	local tr = &amp;quot;&amp;quot;&lt;br /&gt;
	tr = &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;th class=&amp;quot;wikidatainfobox-lcell&amp;quot; style=&amp;quot;text-align: left; vertical-align: text-top;&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;#039; .. cell1 .. &amp;#039;&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
	tr = tr .. &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; colspan=&amp;quot;2&amp;quot;&amp;gt;&amp;#039; .. cell2 .. &amp;#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039; &lt;br /&gt;
	return tr 							&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function format1rowline(trqid, cell1, cell2)&lt;br /&gt;
	-- added by Jura1&lt;br /&gt;
	local tr = &amp;quot;&amp;quot;&lt;br /&gt;
	tr = &amp;#039;&amp;lt;tr id=&amp;quot;&amp;#039; .. trqid .. &amp;#039;&amp;quot;&amp;gt;&amp;lt;th class=&amp;quot;wikidatainfobox-lcell&amp;quot; style=&amp;quot;vertical-align: top&amp;quot;&amp;gt;&amp;#039; .. cell1 .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039;&lt;br /&gt;
    tr = tr .. &amp;#039;&amp;lt;td valign=&amp;quot;top&amp;quot; style=&amp;quot;vertical-align: top&amp;quot;&amp;gt;&amp;#039; .. cell2 .. &amp;#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;							&lt;br /&gt;
	return tr 							&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.hieroP7383(frame)&lt;br /&gt;
-- added by Jura1&lt;br /&gt;
-- expand P7383 value in &amp;lt;hiero&amp;gt;&amp;lt;/hiero&amp;gt; tags	&lt;br /&gt;
	local qid = mw.text.trim(frame.args.qid or &amp;quot;&amp;quot;)&lt;br /&gt;
	local rows = &amp;quot;&amp;quot;&lt;br /&gt;
	local checkentry = mw.wikibase.isValidEntityId(qid)&lt;br /&gt;
	if not checkentry then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local entity = mw.wikibase.getEntityObject(qid)&lt;br /&gt;
	if not entity then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local mylang = frame:preprocess(&amp;#039;{{int:lang}}&amp;#039;)&lt;br /&gt;
	if entity.claims and entity.claims.P7383 then&lt;br /&gt;
			for _, v in ipairs(entity.claims.P7383) do&lt;br /&gt;
				local idv = v.mainsnak.datavalue.value &lt;br /&gt;
				if v.qualifiers and v.qualifiers.P3831 then&lt;br /&gt;
					for _, w in ipairs(v.qualifiers.P3831) do&lt;br /&gt;
						if w.snaktype == &amp;quot;value&amp;quot; then&lt;br /&gt;
							local qualid = w.datavalue.value[&amp;quot;id&amp;quot;]&lt;br /&gt;
							local encod = mw.wikibase.getEntityObject(qualid)&lt;br /&gt;
                   			rows = rows .. format2rowline(encod:getLabel(mylang), p.expandhiero(frame, idv)) &lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				else &lt;br /&gt;
					rows = rows .. format2rowline(&amp;quot;Name&amp;quot;, p.expandhiero(frame, idv)) &lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
	end	&lt;br /&gt;
	return 	rows	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.urn(frame)&lt;br /&gt;
	local qid = mw.text.trim(frame.args.qid or &amp;quot;&amp;quot;)&lt;br /&gt;
	local mylang = frame:preprocess(&amp;#039;{{int:lang}}&amp;#039;)&lt;br /&gt;
	local entity = mw.wikibase.getEntityObject(qid)&lt;br /&gt;
	if not entity then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local urn = &amp;quot;&amp;quot;&lt;br /&gt;
	return urn&lt;br /&gt;
	--- return &amp;quot;&amp;lt;div style=&amp;#039;display:none&amp;#039;&amp;gt;&amp;quot; .. urn .. &amp;quot;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.numberInfo(frame)&lt;br /&gt;
		-- from additions by Jura1&lt;br /&gt;
		-- tests at  Category:987_(number)   Category:8_(number)&lt;br /&gt;
		local qid = mw.text.trim(frame.args.qid or &amp;quot;&amp;quot;)&lt;br /&gt;
		local mylang = frame:preprocess(&amp;#039;{{int:lang}}&amp;#039;)&lt;br /&gt;
		local rows = &amp;quot;&amp;quot;&lt;br /&gt;
		local checkentry = mw.wikibase.isValidEntityId(qid)&lt;br /&gt;
		if not checkentry then&lt;br /&gt;
			return &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		local entity = mw.wikibase.getEntityObject(qid)&lt;br /&gt;
		if not entity then&lt;br /&gt;
			return &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		if entity.claims.P487 then&lt;br /&gt;
			for _, v in ipairs(entity.claims.P487) do&lt;br /&gt;
				local idv = v.mainsnak.datavalue.value &lt;br /&gt;
				if v.qualifiers and v.qualifiers.P3831 then&lt;br /&gt;
					for _, w in ipairs(v.qualifiers.P3831) do&lt;br /&gt;
						if w.snaktype == &amp;quot;value&amp;quot; then&lt;br /&gt;
							local qualid = w.datavalue.value[&amp;quot;id&amp;quot;]&lt;br /&gt;
							local encod = mw.wikibase.getEntityObject(qualid)&lt;br /&gt;
							rows = rows .. format1rowline(qualid,  encod:getLabel(mylang) , idv)&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		-- use code/encoding and render as encoding/code&lt;br /&gt;
		if entity.claims.P3295 then&lt;br /&gt;
			for _, v in ipairs(entity.claims.P3295) do&lt;br /&gt;
				local idv = v.mainsnak.datavalue.value&lt;br /&gt;
				local commonsc = &amp;quot;&amp;quot;&lt;br /&gt;
				if v.qualifiers and v.qualifiers.P805 then&lt;br /&gt;
					for _, t in ipairs(v.qualifiers.P805) do&lt;br /&gt;
						if t.snaktype == &amp;quot;value&amp;quot; then&lt;br /&gt;
							local subjectframe = {}&lt;br /&gt;
							subjectframe.args = {}&lt;br /&gt;
							subjectframe.args.qid = t.datavalue.value[&amp;quot;id&amp;quot;]&lt;br /&gt;
							commonsc = WikidataIB.getCommonsLink( subjectframe )&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				if v.qualifiers and v.qualifiers.P3294 then&lt;br /&gt;
					for _, w in ipairs(v.qualifiers.P3294) do&lt;br /&gt;
						if w.snaktype == &amp;quot;value&amp;quot; then&lt;br /&gt;
							local qualid = w.datavalue.value[&amp;quot;id&amp;quot;]&lt;br /&gt;
							local encod = mw.wikibase.getEntityObject(qualid)&lt;br /&gt;
							local encodeframe = {}&lt;br /&gt;
							local encodecommons = &amp;quot;&amp;quot;&lt;br /&gt;
							encodeframe.args = {}&lt;br /&gt;
							encodeframe.args.qid = qualid&lt;br /&gt;
							encodecommons = WikidataIB.getCommonsLink( encodeframe ) or &amp;quot;&amp;quot;&lt;br /&gt;
                   			if encodecommons == &amp;quot;&amp;quot; then&lt;br /&gt;
                   				encodecommons = encod:getLabel(mylang)&lt;br /&gt;
                   			else &lt;br /&gt;
                   				encodecommons = &amp;quot;[[:&amp;quot; .. encodecommons .. &amp;quot;|&amp;quot; .. encod:getLabel(mylang) .. &amp;quot;]]&amp;quot;&lt;br /&gt;
                   			end&lt;br /&gt;
&lt;br /&gt;
							if qualid == &amp;quot;Q68101340&amp;quot; then&lt;br /&gt;
								idv = p.expandhiero(frame, idv)&lt;br /&gt;
							elseif commonsc ~= &amp;quot;&amp;quot; then&lt;br /&gt;
								idv = &amp;quot;[[:&amp;quot; .. commonsc .. &amp;quot;|&amp;quot; .. idv .. &amp;quot;]]&amp;quot;&lt;br /&gt;
							end&lt;br /&gt;
							rows = rows .. format1rowline(qualid,  encodecommons , idv)&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if entity.claims.P7415 then&lt;br /&gt;
			for _, v in ipairs(entity.claims.P7415) do&lt;br /&gt;
				local idv = v.mainsnak.datavalue.value&lt;br /&gt;
				if v.qualifiers and v.qualifiers.P3294 then&lt;br /&gt;
					for _, w in ipairs(v.qualifiers.P3294) do&lt;br /&gt;
						if w.snaktype == &amp;quot;value&amp;quot; then&lt;br /&gt;
							local qualid = w.datavalue.value[&amp;quot;id&amp;quot;]&lt;br /&gt;
							local encod = mw.wikibase.getEntityObject(qualid)&lt;br /&gt;
							rows = rows .. format1rowline(qualid,  encod:getLabel(mylang) , &amp;#039;[[File:&amp;#039; .. idv .. &amp;#039;|none|35px|&amp;#039;.. entity:getLabel(mylang) .. &amp;#039; (&amp;#039; .. encod:getLabel(mylang) ..&amp;#039;)]]&amp;#039;)&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end		&lt;br /&gt;
		return rows&lt;br /&gt;
		-- return &amp;#039;&amp;lt;table class=&amp;quot;wikitable&amp;quot;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Encoding &amp;lt;/th&amp;gt;&amp;lt;td&amp;gt;code&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039; .. rows ..&amp;#039;&amp;lt;/table&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Aidan9382</name></author>
	</entry>
</feed>