<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://www.wikiw.cn/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3AAuthority_control</id>
	<title>模块:Authority control - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://www.wikiw.cn/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3AAuthority_control"/>
	<link rel="alternate" type="text/html" href="https://www.wikiw.cn/index.php?title=%E6%A8%A1%E5%9D%97:Authority_control&amp;action=history"/>
	<updated>2026-04-08T14:52:54Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://www.wikiw.cn/index.php?title=%E6%A8%A1%E5%9D%97:Authority_control&amp;diff=181&amp;oldid=prev</id>
		<title>Admin：​导入1个版本</title>
		<link rel="alternate" type="text/html" href="https://www.wikiw.cn/index.php?title=%E6%A8%A1%E5%9D%97:Authority_control&amp;diff=181&amp;oldid=prev"/>
		<updated>2025-06-20T16:45:33Z</updated>

		<summary type="html">&lt;p&gt;导入1个版本&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025年6月21日 (六) 00:45的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;zh-Hans-CN&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;（没有差异）&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.wikiw.cn/index.php?title=%E6%A8%A1%E5%9D%97:Authority_control&amp;diff=180&amp;oldid=prev</id>
		<title>2024年7月8日 (一) 07:46 wikiw&gt;Ericliu1912</title>
		<link rel="alternate" type="text/html" href="https://www.wikiw.cn/index.php?title=%E6%A8%A1%E5%9D%97:Authority_control&amp;diff=180&amp;oldid=prev"/>
		<updated>2024-07-08T07:46:23Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
local p = {}&lt;br /&gt;
local arg = mw.getCurrentFrame().args.config&lt;br /&gt;
local configfile = &amp;#039;Module:Authority control/config&amp;#039; .. (arg and arg~=&amp;#039;&amp;#039; and (&amp;#039;/&amp;#039; .. arg) or &amp;#039;&amp;#039;)&lt;br /&gt;
local config = mw.loadData(configfile)&lt;br /&gt;
local title = mw.title.getCurrentTitle()&lt;br /&gt;
local namespace = title.namespace&lt;br /&gt;
local testcases = title.subpageText == config.i18n.testcases&lt;br /&gt;
&lt;br /&gt;
local function needsAttention(sortkey)&lt;br /&gt;
	return &amp;#039;[[&amp;#039; .. config.i18n.category .. &amp;#039;:&amp;#039; .. config.i18n.attentioncat .. &amp;#039;|&amp;#039; .. sortkey .. title.text .. &amp;#039;]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function addCat(cat,sortkey)&lt;br /&gt;
	if cat and cat ~= &amp;#039;&amp;#039; and (namespace == 0 or namespace == 14 or testcases) then&lt;br /&gt;
		local redlinkcat = &amp;#039;&amp;#039;&lt;br /&gt;
		if testcases == false then&lt;br /&gt;
			local success, exists = pcall(function() return mw.title.new(cat, 14).exists end)&lt;br /&gt;
			if success and not exists then &lt;br /&gt;
				redlinkcat = needsAttention(&amp;#039;N&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if sortkey then&lt;br /&gt;
			cat = &amp;#039;[[&amp;#039; .. config.i18n.category .. &amp;#039;:&amp;#039;..cat..&amp;#039;|&amp;#039; .. sortkey .. title.text .. &amp;#039;]]&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			cat = &amp;#039;[[&amp;#039; .. config.i18n.category .. &amp;#039;:&amp;#039;..cat..&amp;#039;]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		cat = cat .. redlinkcat&lt;br /&gt;
		return cat&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getCatForId(id,faulty)&lt;br /&gt;
	local cat&lt;br /&gt;
	if faulty ~= nil then&lt;br /&gt;
		cat = string.format(config.i18n.faultwithidcat, id)&lt;br /&gt;
	else&lt;br /&gt;
		cat = string.format(config.i18n.cat, id)&lt;br /&gt;
	end&lt;br /&gt;
	return addCat(cat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getIdsFromWikidata(qid,property)&lt;br /&gt;
	local function getquals(statement,qualid)&lt;br /&gt;
		if statement.qualifiers and statement.qualifiers[&amp;#039;P&amp;#039;..qualid] then&lt;br /&gt;
			return mw.wikibase.renderSnak(statement.qualifiers[&amp;#039;P&amp;#039;..qualid][1])&lt;br /&gt;
		else&lt;br /&gt;
			return false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local ids = {}&lt;br /&gt;
	if qid then&lt;br /&gt;
		for _, statement in ipairs(mw.wikibase.getBestStatements(qid,property)) do&lt;br /&gt;
			if statement.mainsnak.datavalue then&lt;br /&gt;
				local val = statement.mainsnak.datavalue.value&lt;br /&gt;
				if val then&lt;br /&gt;
					local namedas = getquals(statement,1810) or getquals(statement,742) or &amp;#039;&amp;#039;&lt;br /&gt;
					table.insert(ids,{id=val,name=namedas})&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return ids&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local _makelink = function(conf,val,nextid,qid) --validate values and create a link&lt;br /&gt;
	local function tooltip(text,label)&lt;br /&gt;
		if label and label~=&amp;#039;&amp;#039; then&lt;br /&gt;
			return mw.getCurrentFrame():expandTemplate{title = &amp;quot;Tooltip&amp;quot;, args = {text,label}}&lt;br /&gt;
		else&lt;br /&gt;
			return text&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local link&lt;br /&gt;
	if nextid==1 then&lt;br /&gt;
		if conf.prefix then&lt;br /&gt;
			link = &amp;#039;* &amp;#039; .. conf.prefix .. &amp;#039;\n** &amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			link = &amp;#039;* &amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		link = &amp;#039;\n** &amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	local valid_value = false&lt;br /&gt;
	if conf.customlink then -- use function to validate and generate link&lt;br /&gt;
		local label = nextid&amp;gt;1 and nextid&lt;br /&gt;
		local newlink= require(config.auxiliary)[conf.customlink](val.id,label)&lt;br /&gt;
		if newlink then&lt;br /&gt;
			link = link .. newlink&lt;br /&gt;
			valid_value = true&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		if conf.pattern then -- use pattern to determine validity if defined&lt;br /&gt;
			valid_value = string.match(val.id,&amp;#039;^&amp;#039;..conf.pattern..&amp;#039;$&amp;#039;)&lt;br /&gt;
		elseif conf.patterns then&lt;br /&gt;
			for _,pattern in ipairs(conf.patterns) do&lt;br /&gt;
				valid_value = val.id:match(&amp;#039;^&amp;#039;..pattern..&amp;#039;$&amp;#039;)&lt;br /&gt;
				if valid_value then break end&lt;br /&gt;
			end&lt;br /&gt;
		elseif conf.valid then -- otherwise use function to determine validity&lt;br /&gt;
			valid_value = require(config.auxiliary)[conf.valid](val.id)&lt;br /&gt;
		else -- no validation possible&lt;br /&gt;
			valid_value = val.id&lt;br /&gt;
		end&lt;br /&gt;
		if valid_value then&lt;br /&gt;
			local newlink&lt;br /&gt;
			local label = conf.label&lt;br /&gt;
			if not label or nextid&amp;gt;1 then&lt;br /&gt;
				label = tostring(nextid)&lt;br /&gt;
			end&lt;br /&gt;
			if conf.link then&lt;br /&gt;
				valid_value = valid_value:gsub(&amp;#039;%%&amp;#039;, &amp;#039;%%%%&amp;#039;)&lt;br /&gt;
				newlink = &amp;#039;[&amp;#039; .. mw.ustring.gsub(conf.link,&amp;#039;%$1&amp;#039;,valid_value) .. &amp;#039; &amp;#039; .. label .. &amp;#039;]&amp;#039;&lt;br /&gt;
			else&lt;br /&gt;
				newlink = valid_value&lt;br /&gt;
			end&lt;br /&gt;
			link = link .. &amp;#039;&amp;lt;span class=&amp;quot;uid&amp;quot;&amp;gt;&amp;#039;..tooltip(newlink,val.name)..&amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if valid_value then&lt;br /&gt;
		link = link .. getCatForId(conf.category or conf[1])&lt;br /&gt;
	else&lt;br /&gt;
		--local preview = require(&amp;quot;Module:If preview&amp;quot;)&lt;br /&gt;
		local wdlink = qid and &amp;#039;[[:wikidata:&amp;#039; .. qid .. &amp;#039;#P&amp;#039; .. conf.property .. &amp;#039;]]&amp;#039; or &amp;#039;&amp;#039;&lt;br /&gt;
		local tooltip = string.format(&lt;br /&gt;
			config.i18n.idnotvalid,&lt;br /&gt;
			conf[1],&lt;br /&gt;
			val.id&lt;br /&gt;
		)&lt;br /&gt;
		link = link .. &amp;#039;[[File:&amp;#039; .. config.i18n.warningicon .. &amp;#039;|20px|frameless|link=&amp;#039; .. wdlink .. &amp;#039;|&amp;#039; .. tooltip .. &amp;#039;.]]&amp;#039;&lt;br /&gt;
		if conf.errorcat then&lt;br /&gt;
			link = link .. addCat(conf.errorcat)&lt;br /&gt;
		else&lt;br /&gt;
			link = link .. getCatForId(conf.category or conf[1],true)&lt;br /&gt;
		end&lt;br /&gt;
		link = link .. addCat(config.i18n.allfaultycat,conf[1])-- .. preview._warning({&amp;#039;The &amp;#039;..conf[1]..&amp;#039; id &amp;#039;..val..&amp;#039; is not valid.&amp;#039;})&lt;br /&gt;
	end&lt;br /&gt;
	return link&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[==========================================================================]]&lt;br /&gt;
--[[                                   Main                                   ]]&lt;br /&gt;
--[[==========================================================================]]&lt;br /&gt;
function p.authorityControl(frame)&lt;br /&gt;
	local function resolveQID(qid)&lt;br /&gt;
		if qid then&lt;br /&gt;
			qid = &amp;#039;Q&amp;#039;..mw.ustring.gsub(qid, &amp;#039;^[Qq]&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
			if mw.wikibase.isValidEntityId(qid) and mw.wikibase.entityExists(qid) then&lt;br /&gt;
				local sitelink = mw.wikibase.getSitelink(qid)&lt;br /&gt;
				if sitelink then&lt;br /&gt;
					return mw.wikibase.getEntityIdForTitle(sitelink) or mw.wikibase.getEntity(qid).id&lt;br /&gt;
				end&lt;br /&gt;
				return mw.wikibase.getEntity(qid).id&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local conf = config.config&lt;br /&gt;
	local parentArgs = frame:getParent().args&lt;br /&gt;
	local auxCats = &amp;#039;&amp;#039;&lt;br /&gt;
	local rct = false -- boolean to track if there are any links to be returned&lt;br /&gt;
	local qid,topic&lt;br /&gt;
	local wikilink = function(qid,hideifequal)&lt;br /&gt;
		local label,sitelink = mw.wikibase.getLabel(qid),mw.wikibase.getSitelink(qid)&lt;br /&gt;
		if label then&lt;br /&gt;
			if sitelink then&lt;br /&gt;
				local target = mw.title.new(sitelink)&lt;br /&gt;
				if target==title or (target.isRedirect and target.redirectTarget==title) then -- do not link&lt;br /&gt;
					return label&lt;br /&gt;
				else -- make wikilink to article&lt;br /&gt;
					return &amp;#039;[[&amp;#039; .. sitelink .. &amp;#039;|&amp;#039; .. label .. &amp;#039;]]&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				return label&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			auxCats = auxCats .. needsAttention(&amp;#039;L&amp;#039;)&lt;br /&gt;
			return qid&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if namespace == 0 then&lt;br /&gt;
		qid = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
	end&lt;br /&gt;
	if qid then -- article is connected to Wikidata item&lt;br /&gt;
		if parentArgs.qid and (resolveQID(parentArgs.qid) ~= qid) then -- non-matching qid parameter&lt;br /&gt;
			auxCats = auxCats .. needsAttention(&amp;#039;D&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	else -- page is not connected to any Wikidata item&lt;br /&gt;
		qid = resolveQID(parentArgs.qid) -- check qid parameter if no wikidata item is connected&lt;br /&gt;
		if qid then -- qid parameter is valid, set topic to display&lt;br /&gt;
			topic = mw.wikibase.getLabel(qid)&lt;br /&gt;
			if topic then&lt;br /&gt;
				if mw.ustring.lower(title.subpageText) == mw.ustring.lower(topic) then -- suppress topic display if subpagename equals topic up to case change&lt;br /&gt;
					topic = nil&lt;br /&gt;
				end&lt;br /&gt;
				if topic and mw.wikibase.getSitelink(qid) then -- make wikilink to article&lt;br /&gt;
					topic = &amp;#039;[[&amp;#039; .. mw.wikibase.getSitelink(qid) .. &amp;#039;|&amp;#039; .. topic .. &amp;#039;]]&amp;#039;&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				auxCats = auxCats .. needsAttention(&amp;#039;L&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		elseif parentArgs.qid and parentArgs.qid~=&amp;#039;&amp;#039; then -- invalid qid has been supplied, add to tracking cat&lt;br /&gt;
			auxCats = auxCats .. needsAttention(&amp;#039;Q&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local qids = {} -- setup any additional QIDs&lt;br /&gt;
	if parentArgs.additional==&amp;#039;auto&amp;#039; and qid then  -- check P527 for parts to add additional qids&lt;br /&gt;
		local checkparts = function(property)&lt;br /&gt;
			local parts = mw.wikibase.getBestStatements(qid,property)&lt;br /&gt;
			if parts then&lt;br /&gt;
				for _,part in ipairs(parts) do&lt;br /&gt;
					if part.mainsnak.datavalue and part.mainsnak.datavalue.value.id then&lt;br /&gt;
						local resolvedqid = resolveQID(part.mainsnak.datavalue.value.id)&lt;br /&gt;
						if resolvedqid then&lt;br /&gt;
							table.insert(qids,resolvedqid)&lt;br /&gt;
		end end end end end&lt;br /&gt;
		for _,part in ipairs(config.auto_additional) do&lt;br /&gt;
			checkparts(&amp;#039;P&amp;#039;..tostring(part))&lt;br /&gt;
		end&lt;br /&gt;
	elseif parentArgs.additional and parentArgs.additional ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		for _,v in ipairs(mw.text.split(parentArgs.additional,&amp;quot;%s*,%s*&amp;quot;)) do&lt;br /&gt;
			v = resolveQID(v)&lt;br /&gt;
			if v then&lt;br /&gt;
				if v == qid then -- duplicate of qid parameter&lt;br /&gt;
					auxCats = auxCats .. needsAttention(&amp;#039;R&amp;#039;)&lt;br /&gt;
				end&lt;br /&gt;
				table.insert(qids,v)&lt;br /&gt;
			else -- invalid QID specified&lt;br /&gt;
				auxCats = auxCats .. needsAttention(&amp;#039;A&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local sections = {}&lt;br /&gt;
	local localparams = false&lt;br /&gt;
	local numsections = 0&lt;br /&gt;
	for _,_ in ipairs(config.sections) do numsections = numsections + 1 end&lt;br /&gt;
	for _ = 1,#qids+numsections do table.insert(sections,{}) end&lt;br /&gt;
	local qslink = &amp;#039;&amp;#039; -- setup link to add using QuickStatements&lt;br /&gt;
&lt;br /&gt;
	-- check which identifiers to show/suppress in template&lt;br /&gt;
	local show = {} -- setup list&lt;br /&gt;
	local showall = true&lt;br /&gt;
	local function stripP(pid)&lt;br /&gt;
		if pid:match(&amp;quot;^[Pp]%d+$&amp;quot;) then&lt;br /&gt;
			pid = mw.ustring.gsub(pid,&amp;#039;[Pp]&amp;#039;,&amp;#039;&amp;#039;) --strip P from property number&lt;br /&gt;
		end&lt;br /&gt;
		if pid:match(&amp;quot;^%d+$&amp;quot;) then&lt;br /&gt;
			return tonumber(pid)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local function addshowlist(list)&lt;br /&gt;
		if list and list ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			for _,v in ipairs(mw.text.split(string.lower(list),&amp;quot;%s*,%s*&amp;quot;)) do&lt;br /&gt;
				local vprop = stripP(v)&lt;br /&gt;
				if vprop then -- e.g. show=P214 to show one particular property&lt;br /&gt;
					show[vprop] = true&lt;br /&gt;
				else -- e.g. show=arts to use whitelist&lt;br /&gt;
					if config.whitelists[v] then&lt;br /&gt;
						for _,w in ipairs(config.whitelists[v].properties) do&lt;br /&gt;
							show[w] = true&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			showall = false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	addshowlist(frame.args.show) -- check show= parameter on wrapper template&lt;br /&gt;
	addshowlist(parentArgs.show or parentArgs.country) -- check show parameter on article template&lt;br /&gt;
	if parentArgs.suppress then&lt;br /&gt;
		local suppresslist = mw.text.split(parentArgs.suppress,&amp;quot;%s*,%s*&amp;quot;) -- split parameter by comma&lt;br /&gt;
		for _,v in ipairs(suppresslist) do&lt;br /&gt;
			v = stripP(string.upper(v))&lt;br /&gt;
			if v then&lt;br /&gt;
				show[v] = false&lt;br /&gt;
				auxCats = auxCats .. &amp;#039;[[&amp;#039; .. config.i18n.category .. &amp;#039;:&amp;#039; .. config.i18n.suppressedcat .. &amp;#039;]]&amp;#039;&lt;br /&gt;
			else&lt;br /&gt;
				auxCats = auxCats .. needsAttention(&amp;#039;P&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local function makeSections(qid,addit)&lt;br /&gt;
		local tval = {}&lt;br /&gt;
		local function parameter_is_used(property)&lt;br /&gt;
			local used = false&lt;br /&gt;
			if property then&lt;br /&gt;
				if tval[property] then&lt;br /&gt;
					if tval[property][1] then&lt;br /&gt;
						used = true&lt;br /&gt;
					end&lt;br /&gt;
				elseif tval[property] == false then -- property has been manually suppressed&lt;br /&gt;
					used = true&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			return used&lt;br /&gt;
		end&lt;br /&gt;
		for _, params in ipairs(conf) do&lt;br /&gt;
			tval[params.property] = getIdsFromWikidata(qid, &amp;#039;P&amp;#039; .. params.property) -- setup table for values with property number as key&lt;br /&gt;
			local showb = true&lt;br /&gt;
			if (show[params.property] == nil) and (show[string.upper(params[1])] == nil ) then&lt;br /&gt;
				showb = showall -- if not specified then depends on showall&lt;br /&gt;
			elseif (show[params.property] == false) or (show[string.upper(params[1])] == false) then -- if either are false then id will be suppressed&lt;br /&gt;
				showb = false&lt;br /&gt;
			end&lt;br /&gt;
			if not showb then&lt;br /&gt;
				tval[params.property] = false -- indicates the identifier is suppressed&lt;br /&gt;
			elseif not addit then&lt;br /&gt;
				local val = parentArgs[mw.ustring.lower(params[1])] or parentArgs[params[1]]&lt;br /&gt;
				if val and val~=&amp;#039;&amp;#039; then -- add local parameter to list if not already in&lt;br /&gt;
					localparams = true&lt;br /&gt;
					local bnew = true&lt;br /&gt;
					for _, w in pairs(tval[params.property]) do&lt;br /&gt;
						if val == w.id then&lt;br /&gt;
							bnew = false&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					if bnew then -- add new value to table&lt;br /&gt;
						if qid then&lt;br /&gt;
							qslink = qslink .. &amp;#039;%7C%7C&amp;#039; .. qid .. &amp;#039;%7CP&amp;#039; .. params.property .. &amp;#039;%7C%22&amp;#039; .. mw.uri.encode(val,&amp;quot;PATH&amp;quot;) .. &amp;#039;%22%7CS143%7CQ30239&amp;#039; --Q30239 = [[中文維基百科]]&lt;br /&gt;
						end&lt;br /&gt;
						table.insert(tval[params.property],{id=val,name=&amp;#039;&amp;#039;})&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			local suppress = false&lt;br /&gt;
			if params.suppressedbyproperty then&lt;br /&gt;
				for _,sc in ipairs(params.suppressedbyproperty) do&lt;br /&gt;
					if parameter_is_used(sc) then&lt;br /&gt;
						suppress = true&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if tval[params.property] ~= false and not suppress then&lt;br /&gt;
				local tlinks = {} -- setup table for links&lt;br /&gt;
				local nextIdVal = 1&lt;br /&gt;
				local row = &amp;#039;&amp;#039;&lt;br /&gt;
				for _,val in ipairs(tval[params.property]) do&lt;br /&gt;
					local link = _makelink(params,val,nextIdVal,qid)&lt;br /&gt;
					row = row .. link&lt;br /&gt;
					table.insert(tlinks,link)&lt;br /&gt;
					nextIdVal = nextIdVal + 1&lt;br /&gt;
				end&lt;br /&gt;
				if nextIdVal&amp;gt;=2 then&lt;br /&gt;
					row = row .. &amp;#039;\n&amp;#039;&lt;br /&gt;
					table.insert(sections[addit or params.section],row)&lt;br /&gt;
					rct = true&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local function pencil(qid)&lt;br /&gt;
		if not qid then&lt;br /&gt;
			return &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		local args = { pid = &amp;#039;identifiers&amp;#039; } -- #target the list of identifiers&lt;br /&gt;
		args.qid = qid&lt;br /&gt;
		return require(&amp;#039;Module:EditAtWikidata&amp;#039;)._showMessage(args)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	makeSections(qid,false)&lt;br /&gt;
	for c = 1,#qids do&lt;br /&gt;
		makeSections(qids[c],numsections+c)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--configure Navbox&lt;br /&gt;
	local outString = &amp;#039;&amp;#039;&lt;br /&gt;
	if rct or localparams then -- there is at least one link to display&lt;br /&gt;
		local Navbox = require(&amp;#039;Module:Navbox&amp;#039;)&lt;br /&gt;
		local sect,lastsect = 0,0&lt;br /&gt;
		local navboxArgs = {&lt;br /&gt;
			name  = &amp;#039;Authority control&amp;#039;,&lt;br /&gt;
			navboxclass = &amp;#039;authority-control&amp;#039;,&lt;br /&gt;
			bodyclass = &amp;#039;hlist&amp;#039;,&lt;br /&gt;
			state = parentArgs.state or config.i18n.autocollapse,&lt;br /&gt;
			navbar = &amp;#039;plain&amp;#039;&lt;br /&gt;
		}&lt;br /&gt;
		for c=1,numsections+#qids do&lt;br /&gt;
			if #sections[c] ~= 0 then -- section is non-empty&lt;br /&gt;
				sect = sect + 1&lt;br /&gt;
				lastsect = c&lt;br /&gt;
				local sectname&lt;br /&gt;
				if c &amp;lt;= numsections then -- regular section&lt;br /&gt;
					sectname = config.sections[c].name&lt;br /&gt;
				else -- section from additional qid&lt;br /&gt;
					local qid = qids[c-numsections]&lt;br /&gt;
					sectname = wikilink(qid) .. pencil(qid)&lt;br /&gt;
				end&lt;br /&gt;
				navboxArgs[&amp;#039;group&amp;#039; .. c] = sectname&lt;br /&gt;
				navboxArgs[&amp;#039;list&amp;#039; .. c] = table.concat(sections[c])&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if localparams then&lt;br /&gt;
			lastsect = lastsect + 1&lt;br /&gt;
			sect = sect + 1&lt;br /&gt;
			navboxArgs[&amp;#039;group&amp;#039; .. lastsect] = config.i18n.warning&lt;br /&gt;
			local warning = frame:expandTemplate{title = config.i18n.errortemplate, args = {config.i18n.localparams}}&lt;br /&gt;
			if qslink ~= &amp;#039;&amp;#039; then&lt;br /&gt;
				warning = warning .. &amp;#039; &amp;#039; .. config.i18n.movetowd .. &amp;#039;&amp;lt;span class=&amp;quot;qs autoconfirmed-show&amp;quot;&amp;gt;&amp;amp;#32;[[File:Commons to Wikidata QuickStatements.svg|20px|link=https://quickstatements.toolforge.org/#/v1=&amp;#039; .. qslink .. &amp;#039;|&amp;#039; .. config.i18n.addtowd .. &amp;#039;]]&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
			elseif not qid then&lt;br /&gt;
				if namespace == 0 then&lt;br /&gt;
					warning = warning .. &amp;#039; &amp;#039; .. config.i18n.connecttowd&lt;br /&gt;
				elseif namespace==14 or namespace==2 or namespace==118 then&lt;br /&gt;
					warning = warning .. &amp;#039; &amp;#039; .. config.i18n.qidcode&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			navboxArgs[&amp;#039;list&amp;#039; .. lastsect] = warning&lt;br /&gt;
		end&lt;br /&gt;
		if topic then -- display in expanded form with topic&lt;br /&gt;
			navboxArgs.title = config.i18n.aclink .. &amp;#039;——&amp;#039; .. topic .. pencil(qid)&lt;br /&gt;
		elseif sect == 1 then -- special display when only one section&lt;br /&gt;
			if lastsect &amp;lt;= numsections then&lt;br /&gt;
				if config.sections[lastsect].hidelabelwhenalone then -- no special label when only general or other IDs are present&lt;br /&gt;
					navboxArgs[&amp;#039;group&amp;#039; .. lastsect] = config.i18n.aclink .. pencil(qid)&lt;br /&gt;
				else -- other regular section&lt;br /&gt;
					navboxArgs[&amp;#039;group&amp;#039; .. lastsect] = config.i18n.aclink .. &amp;#039;：&amp;#039; .. navboxArgs[&amp;#039;group&amp;#039; .. lastsect] .. pencil(qid)&lt;br /&gt;
				end&lt;br /&gt;
			else -- section from additional qid&lt;br /&gt;
				navboxArgs[&amp;#039;group&amp;#039; .. lastsect] = config.i18n.aclink .. &amp;#039;：&amp;#039; .. navboxArgs[&amp;#039;group&amp;#039; .. lastsect]&lt;br /&gt;
			end&lt;br /&gt;
		else -- add title to navbox&lt;br /&gt;
			navboxArgs.title = config.i18n.aclink .. pencil(qid)&lt;br /&gt;
		end&lt;br /&gt;
		outString = Navbox._navbox(navboxArgs)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if parentArgs.state&lt;br /&gt;
		and parentArgs.state~=&amp;#039;&amp;#039;&lt;br /&gt;
		and parentArgs.state~=config.i18n.collapsed&lt;br /&gt;
		and parentArgs.state~=config.i18n.expanded&lt;br /&gt;
		and parentArgs.state~=config.i18n.autocollapse then --invalid state parameter&lt;br /&gt;
		auxCats = auxCats .. needsAttention(&amp;#039;S&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if testcases then&lt;br /&gt;
		auxCats = mw.ustring.gsub(auxCats, &amp;#039;(%[%[)(&amp;#039; .. config.i18n.category .. &amp;#039;)&amp;#039;, &amp;#039;%1:%2&amp;#039;) --for easier checking&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--out&lt;br /&gt;
	outString = outString..auxCats&lt;br /&gt;
	if namespace ~= 0 then&lt;br /&gt;
		outString = mw.ustring.gsub(outString,&amp;#039;(%[%[)(&amp;#039; .. config.i18n.category .. &amp;#039;:&amp;#039; .. config.i18n.Articles .. &amp;#039;)([^%|%]]+)%|?[^%|%]]*(%]%])&amp;#039;,&amp;#039;%1:%2%3%4&amp;#039;)&lt;br /&gt;
		outString = mw.ustring.gsub(outString,&amp;#039;(%[%[)(&amp;#039; .. config.i18n.category .. &amp;#039;:&amp;#039; .. config.i18n.All_articles .. &amp;#039;)([^%|%]]+)%|?[^%|%]]*(%]%])&amp;#039;,&amp;#039;%1:%2%3%4&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	local check = require(&amp;#039;Module:Check for unknown parameters&amp;#039;)._check&lt;br /&gt;
	local sortkey&lt;br /&gt;
	if namespace == 0 then&lt;br /&gt;
		sortkey = &amp;#039;*&amp;#039; .. title.text&lt;br /&gt;
	else&lt;br /&gt;
		sortkey = title.fullText&lt;br /&gt;
	end&lt;br /&gt;
	outString = outString .. check({&lt;br /&gt;
		[&amp;#039;unknown&amp;#039;] = &amp;#039;[[&amp;#039; .. config.i18n.category .. &amp;#039;:&amp;#039; .. config.i18n.pageswithparams .. &amp;#039;|&amp;#039; .. sortkey .. &amp;#039;]]&amp;#039;,&lt;br /&gt;
		[&amp;#039;preview&amp;#039;] = config.i18n.previewwarning, &amp;#039;show&amp;#039;, &amp;#039;country&amp;#039;, &amp;#039;suppress&amp;#039;, &amp;#039;additional&amp;#039;, &amp;#039;qid&amp;#039;, &amp;#039;state&amp;#039;&lt;br /&gt;
		}, parentArgs)&lt;br /&gt;
	return outString&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.makelink = function(conf,val,nextid,qid)&lt;br /&gt;
	return _makelink(conf,val,nextid,qid)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wikiw&gt;Ericliu1912</name></author>
	</entry>
</feed>