<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.statsape.com/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3AAuthority_control%2Fdocumentation</id>
	<title>模块:Authority control/documentation - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.statsape.com/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E5%9D%97%3AAuthority_control%2Fdocumentation"/>
	<link rel="alternate" type="text/html" href="https://wiki.statsape.com/index.php?title=%E6%A8%A1%E5%9D%97:Authority_control/documentation&amp;action=history"/>
	<updated>2026-05-14T21:16:58Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.statsape.com/index.php?title=%E6%A8%A1%E5%9D%97:Authority_control/documentation&amp;diff=8039&amp;oldid=prev</id>
		<title>Zeroclanzhang：​创建页面，内容为“require(&#039;strict&#039;) local p = {} local configfile = &#039;Module:Authority control/config&#039; -- default configuation module local arg = mw.getCurrentFrame().args.config if arg and arg~=&#039;&#039; then 	configfile = &#039;Module:Authority control/config/&#039; .. arg end local config if mw.title.new(configfile).exists then 	config = mw.loadData(configfile) else 	return error(&#039;Invalid configuration file&#039;,0) end local title = mw.title.getCurrentTitle() local namespace = title.namespace loca…”</title>
		<link rel="alternate" type="text/html" href="https://wiki.statsape.com/index.php?title=%E6%A8%A1%E5%9D%97:Authority_control/documentation&amp;diff=8039&amp;oldid=prev"/>
		<updated>2024-01-21T14:52:25Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“require(&amp;#039;strict&amp;#039;) local p = {} local configfile = &amp;#039;Module:Authority control/config&amp;#039; -- default configuation module local arg = mw.getCurrentFrame().args.config if arg and arg~=&amp;#039;&amp;#039; then 	configfile = &amp;#039;Module:Authority control/config/&amp;#039; .. arg end local config if mw.title.new(configfile).exists then 	config = mw.loadData(configfile) else 	return error(&amp;#039;Invalid configuration file&amp;#039;,0) end local title = mw.title.getCurrentTitle() local namespace = title.namespace loca…”&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 configfile = &amp;#039;Module:Authority control/config&amp;#039; -- default configuation module&lt;br /&gt;
local arg = mw.getCurrentFrame().args.config&lt;br /&gt;
if arg and arg~=&amp;#039;&amp;#039; then&lt;br /&gt;
	configfile = &amp;#039;Module:Authority control/config/&amp;#039; .. arg&lt;br /&gt;
end&lt;br /&gt;
local config&lt;br /&gt;
if mw.title.new(configfile).exists then&lt;br /&gt;
	config = mw.loadData(configfile)&lt;br /&gt;
else&lt;br /&gt;
	return error(&amp;#039;Invalid configuration file&amp;#039;,0)&lt;br /&gt;
end&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;
local makelink = require(config.i18n.ACmodule).makelink&lt;br /&gt;
local lang = mw.getContentLanguage()&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 and mw.title.new(cat, 14).exists == false then&lt;br /&gt;
			redlinkcat = needsAttention(&amp;#039;N&amp;#039;)&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;
-- Creates a human-readable standalone wikitable version of conf, and tracking categories with page counts, for use in the documentation&lt;br /&gt;
function p.docConfTable(frame)&lt;br /&gt;
	local function checkcat(category,label)&lt;br /&gt;
		local ret=&amp;#039;[[:Category:&amp;#039;..category..&amp;#039;|&amp;#039;..label..&amp;#039;]]&amp;#039;&lt;br /&gt;
		--if mw.title.new(category,14).exists == false then&lt;br /&gt;
			--ret = ret..&amp;#039; &amp;lt;span class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;font-size:85%;&amp;quot;&amp;gt;&amp;amp;#91;[&amp;#039;..tostring(mw.uri.fullUrl(&amp;#039;Category:&amp;#039;..category,&amp;#039;action=edit&amp;amp;preload=Template:Authority_control/preload&amp;#039;))..&amp;#039; create]&amp;amp;#93;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		--end&lt;br /&gt;
		return ret&lt;br /&gt;
	end&lt;br /&gt;
	local doc = &amp;#039;&amp;#039;&lt;br /&gt;
	local a, P, f = 0, 0, 0 --cumulative sums&lt;br /&gt;
	local count = frame.args.count or false&lt;br /&gt;
	local columns = 3 + (count and 1 or 0)&lt;br /&gt;
	local row = function(conf)&lt;br /&gt;
		local category = conf.category or conf[1]&lt;br /&gt;
		local articleCat = string.format(config.i18n.cat,category)&lt;br /&gt;
		local articleCount = mw.site.stats.pagesInCategory(articleCat,config.i18n.pages)&lt;br /&gt;
		local errorCat = conf.errorcat or string.format(&lt;br /&gt;
			config.i18n.cat,&lt;br /&gt;
			config.i18n.faulty .. &amp;#039; &amp;#039; .. category&lt;br /&gt;
		)&lt;br /&gt;
		local errorCount =  mw.site.stats.pagesInCategory(errorCat,config.i18n.pages)&lt;br /&gt;
		P = P + 1 --property count&lt;br /&gt;
		a = a + articleCount&lt;br /&gt;
		f = f + errorCount&lt;br /&gt;
		local getstatement = function(id,propid,qualid)&lt;br /&gt;
			local statement = mw.wikibase.getBestStatements(&amp;#039;P&amp;#039; .. id, &amp;#039;P&amp;#039; .. propid)&lt;br /&gt;
			local value&lt;br /&gt;
			if statement and statement[1] and statement[1].mainsnak.datavalue.value.id then&lt;br /&gt;
				value = statement[1].mainsnak.datavalue.value.id&lt;br /&gt;
				local qual&lt;br /&gt;
				if qualid and statement[1].qualifiers[&amp;#039;P&amp;#039; .. qualid][1].datavalue.value then&lt;br /&gt;
					qual = statement[1].qualifiers[&amp;#039;P&amp;#039; .. qualid][1].datavalue.value&lt;br /&gt;
				end&lt;br /&gt;
				return value, qual&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		local _, example = getstatement(conf.property, 1855, conf.property)&lt;br /&gt;
		if not example then example = &amp;#039;&amp;#039; end&lt;br /&gt;
		example = frame:expandTemplate{title = &amp;quot;Hlist&amp;quot;, args = {&amp;#039;\n&amp;#039; .. makelink(conf,{id=example},1)}} .. &amp;#039;\n&amp;#039;&lt;br /&gt;
		local getname = function(nameprop)&lt;br /&gt;
			local name = getstatement(conf.property,nameprop)&lt;br /&gt;
			if name then&lt;br /&gt;
				return frame:expandTemplate{title=&amp;#039;Wikidata fallback link&amp;#039;,args={name}}&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		local name = getname(1629) or getname(10726) or getname(9073) or getname(2378) or &amp;#039;&amp;#039;&lt;br /&gt;
		local out = &amp;#039;&amp;#039;&lt;br /&gt;
		if conf.remark then&lt;br /&gt;
			out = out .. &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;td rowspan=2&amp;gt;&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			out = out .. &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		out = out .. name .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039; ..&lt;br /&gt;
			&amp;#039;&amp;lt;td style=&amp;quot;text-align: center&amp;quot;&amp;gt;&amp;#039; .. config.sections[conf.section].name .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039; ..&lt;br /&gt;
			&amp;#039;&amp;lt;td data-sort-value=&amp;#039; .. conf.property .. &amp;#039;&amp;gt;&amp;#039; .. frame:expandTemplate{title=&amp;#039;Wikidata property link&amp;#039;,args={id=&amp;#039;f&amp;#039;,conf.property}} .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039; ..&lt;br /&gt;
			&amp;#039;&amp;lt;td&amp;gt;&amp;#039; .. example .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039;&lt;br /&gt;
		if count then&lt;br /&gt;
			out = out .. &amp;#039;&amp;lt;td style=&amp;quot;text-align: right;&amp;quot;&amp;gt;&amp;#039;..checkcat(articleCat,lang:formatNum(articleCount))..&amp;#039; (&amp;#039;..checkcat(errorCat,errorCount)..&amp;#039;)&amp;lt;/td&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		out = out .. &amp;#039;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
		if conf.remark then&lt;br /&gt;
			out = out .. &amp;quot;&amp;lt;tr class=&amp;#039;expand-child&amp;#039;&amp;gt;&amp;lt;td colspan=&amp;quot; .. columns .. &amp;quot;&amp;gt;&amp;#039;&amp;#039;&amp;#039;Remarks:&amp;#039;&amp;#039;&amp;#039; &amp;quot; .. frame:preprocess{text = conf.remark} .. &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		return out&lt;br /&gt;
	end&lt;br /&gt;
	local doc = &amp;#039;&amp;lt;table class=&amp;quot;wikitable sortable&amp;quot;&amp;gt;&amp;#039; ..&lt;br /&gt;
	  &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;#039; .. lang:ucfirst(config.i18n.identifier) .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039; ..&lt;br /&gt;
	  &amp;#039;&amp;lt;th&amp;gt;&amp;#039; .. config.i18n.Section .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039; ..&lt;br /&gt;
	  &amp;#039;&amp;lt;th data-sort-type=number&amp;gt;&amp;#039; .. config.i18n.WDproperty .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039; ..&lt;br /&gt;
	  &amp;#039;&amp;lt;th&amp;gt;&amp;#039; .. config.i18n.Appears_as .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039;&lt;br /&gt;
	if count then&lt;br /&gt;
	 	doc = doc .. &amp;#039;&amp;lt;th&amp;gt;[[:&amp;#039; .. config.i18n.category .. &amp;#039;:&amp;#039; .. config.i18n.maincat .. &amp;#039;|&amp;#039; .. config.i18n.Articles .. &amp;#039;]] &amp;#039;&lt;br /&gt;
	 		.. &amp;#039;([[:&amp;#039; .. config.i18n.category .. &amp;#039;:&amp;#039; .. config.i18n.faultcat .. &amp;#039;|&amp;#039; .. config.i18n.Faults .. &amp;#039;]])&amp;lt;/th&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	doc = doc .. &amp;#039;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
	for _, conf in pairs(config.config) do&lt;br /&gt;
		doc = doc .. row(conf)&lt;br /&gt;
	end&lt;br /&gt;
	if count then&lt;br /&gt;
		doc = doc .. &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;th style=&amp;quot;text-align: right;&amp;quot; colspan=&amp;#039; .. columns-1 .. &amp;#039;&amp;gt;&amp;#039; .. config.i18n.Totals .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039; ..&lt;br /&gt;
			&amp;#039;&amp;lt;th style=&amp;quot;text-align: right;&amp;quot;&amp;gt;&amp;#039; .. P .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039; ..&lt;br /&gt;
			&amp;#039;&amp;lt;th style=&amp;quot;text-align: right;&amp;quot;&amp;gt;&amp;#039; .. lang:formatNum(a) .. &amp;#039; ([[:&amp;#039; .. config.i18n.category .. &amp;#039;:&amp;#039; .. config.i18n.allfaultycat .. &amp;#039;|&amp;#039; .. f .. &amp;#039;]])&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	doc = doc .. &amp;#039;&amp;lt;/table&amp;gt;&amp;#039;&lt;br /&gt;
	return doc&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.errorTable(frame)&lt;br /&gt;
	local Table = &amp;#039;&amp;lt;table class=&amp;quot;wikitable sortable&amp;quot;&amp;gt;&amp;#039;..&lt;br /&gt;
	  &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;#039; .. config.i18n.WDproperty .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039;..&lt;br /&gt;
	  &amp;#039;&amp;lt;th&amp;gt;&amp;#039; .. lang:ucfirst(config.i18n.faulty) .. &amp;#039; &amp;#039; .. config.i18n.identifiers .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039;..&lt;br /&gt;
	  &amp;#039;&amp;lt;th&amp;gt;[[:&amp;#039; .. config.i18n.category .. &amp;#039;:&amp;#039; .. config.i18n.faultcat .. &amp;#039;|&amp;#039; .. config.i18n.Tracking_category .. &amp;#039;]]&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
	local f, P = 0, 0, 0 --cumulative sums&lt;br /&gt;
	for _, conf in pairs(config.config) do&lt;br /&gt;
		local category = conf.errorcat or string.format(&lt;br /&gt;
			config.i18n.cat,&lt;br /&gt;
			config.i18n.faulty .. &amp;#039; &amp;#039;  .. (conf.category or conf[1])&lt;br /&gt;
		)&lt;br /&gt;
		local count =  mw.site.stats.pagesInCategory(category,&amp;#039;pages&amp;#039;)&lt;br /&gt;
		if count &amp;gt; 0 then&lt;br /&gt;
			P = P + 1&lt;br /&gt;
			f = f + count&lt;br /&gt;
			Table = Table..&amp;#039;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;#039;..frame:expandTemplate{ title = config.i18n.linktemplate, args = { id = &amp;#039;f&amp;#039;, conf.property } } .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039;..&lt;br /&gt;
				&amp;#039;&amp;lt;td style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&amp;#039;..tostring(count)..&amp;#039;&amp;lt;/td&amp;gt;&amp;#039;..&lt;br /&gt;
				&amp;#039;&amp;lt;td&amp;gt;[[:&amp;#039; .. config.i18n.category .. &amp;#039;:&amp;#039;..category..&amp;#039;]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	Table = Table..&amp;#039;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;#039; .. config.i18n.Totals .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039;..&lt;br /&gt;
		&amp;#039;&amp;lt;th style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&amp;#039; .. &amp;#039;[[:&amp;#039; .. config.i18n.category .. &amp;#039;:&amp;#039; .. config.i18n.allfaultycat .. &amp;#039;|&amp;#039; .. tostring(f) .. &amp;#039;]]&amp;lt;/th&amp;gt;&amp;#039;..&lt;br /&gt;
		&amp;#039;&amp;lt;th style=&amp;quot;text-align:center;&amp;quot;&amp;gt;&amp;#039;..tostring(P)..&amp;#039;&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;#039;&lt;br /&gt;
	return Table&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.whitelisttable(frame)&lt;br /&gt;
	local Table = &amp;#039;&amp;lt;table class=&amp;quot;wikitable sortable&amp;quot;&amp;gt;&amp;#039;..&lt;br /&gt;
	  &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;#039; .. config.i18n.Code .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039;..&lt;br /&gt;
	  &amp;#039;&amp;lt;th&amp;gt;&amp;#039; .. config.i18n.Topic .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039;..&lt;br /&gt;
	  &amp;#039;&amp;lt;th&amp;gt;&amp;#039; .. lang:ucfirst(config.i18n.identifiers) .. &amp;#039;&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
	for code, wlist in pairs(config.whitelists) do&lt;br /&gt;
		Table = Table .. &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;#039; .. code .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039;..&lt;br /&gt;
			&amp;#039;&amp;lt;td&amp;gt;[[&amp;#039; .. mw.wikibase.getSitelink(&amp;#039;Q&amp;#039; .. wlist.topic) .. &amp;#039;]]&amp;lt;/td&amp;gt;&amp;#039;&lt;br /&gt;
		local plist = {}&lt;br /&gt;
		for _, property in pairs(wlist.properties) do&lt;br /&gt;
			table.insert(plist,frame:expandTemplate{title=&amp;#039;Wikidata property link&amp;#039;, args={&amp;#039;P&amp;#039; .. property}})&lt;br /&gt;
		end&lt;br /&gt;
		Table = Table .. &amp;#039;&amp;lt;td&amp;gt;&amp;#039; .. table.concat(plist,&amp;#039;, &amp;#039;) .. &amp;#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	Table = Table .. &amp;#039;&amp;lt;/table&amp;gt;&amp;#039;&lt;br /&gt;
	return Table&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.sectiontable(frame)&lt;br /&gt;
	local Table = &amp;#039;&amp;lt;table class=&amp;quot;wikitable sortable&amp;quot;&amp;gt;&amp;#039;..&lt;br /&gt;
	  &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;#039; .. config.i18n.Section .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039; ..&lt;br /&gt;
	  &amp;#039;&amp;lt;th&amp;gt;&amp;#039; .. config.i18n.Description .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039;..&lt;br /&gt;
	  &amp;#039;&amp;lt;th&amp;gt;&amp;#039; .. lang:ucfirst(config.i18n.identifiers) .. &amp;#039;&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
	for number,section in ipairs(config.sections) do&lt;br /&gt;
		Table = Table .. &amp;#039;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;&amp;#039; .. number .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039; ..	&amp;#039;&amp;lt;td&amp;gt;&amp;#039; .. section.name .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039;&lt;br /&gt;
		local plist = {}&lt;br /&gt;
		for _,id in pairs(config.config) do&lt;br /&gt;
			if id.section == number then&lt;br /&gt;
				table.insert(plist,frame:expandTemplate{title=config.i18n.linktemplate, args={&amp;#039;P&amp;#039; .. id.property}})&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		Table = Table .. &amp;#039;&amp;lt;td&amp;gt;&amp;#039; .. table.concat(plist,&amp;#039;, &amp;#039;) .. &amp;#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	Table = Table .. &amp;#039;&amp;lt;/table&amp;gt;&amp;#039;&lt;br /&gt;
	return Table&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Main/External Call for Pages with authority control identifiers&lt;br /&gt;
function p.autoDetect(frame)&lt;br /&gt;
	local function whichTOC(frame) -- standardize TOC behavior via {{CatAutoTOC}}&lt;br /&gt;
		return frame:expandTemplate{ title = &amp;#039;CatAutoTOC&amp;#039;, args = { align = &amp;#039;center&amp;#039; } }&lt;br /&gt;
	end&lt;br /&gt;
	local function wpa(frame,id,faulty)&lt;br /&gt;
		for _,conf in pairs(config.config) do&lt;br /&gt;
			if conf.category == id or conf[1] == id then&lt;br /&gt;
				local getname = function(nameprop)&lt;br /&gt;
					local name = mw.wikibase.getBestStatements(&amp;#039;P&amp;#039;..conf.property,nameprop)&lt;br /&gt;
					if name and name[1] and name[1].mainsnak.datavalue.value.id then&lt;br /&gt;
						return frame:expandTemplate{title=&amp;#039;Wikidata fallback link&amp;#039;,args={name[1].mainsnak.datavalue.value.id}}&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
				local name = getname(&amp;#039;P1629&amp;#039;) or getname(&amp;#039;P10726&amp;#039;) or getname(&amp;#039;P9073&amp;#039;) or getname(&amp;#039;P2378&amp;#039;) or &amp;#039;&amp;#039;&lt;br /&gt;
				local outString = frame:expandTemplate{ title = &amp;#039;Category explanation&amp;#039;, args = {&amp;#039;articles with &amp;#039;..name..&amp;#039; identifiers.&amp;#039;..&amp;#039; Please do not add [[Wikipedia:Categorization#Subcategorization|subcategories]].\nPages in this category should only be added by [[Module:Authority control]].&amp;#039;}}&lt;br /&gt;
					.. frame:expandTemplate{ title = &amp;#039;Cat more&amp;#039;, args = {&amp;#039;Wikipedia:Authority control&amp;#039;, &amp;#039;:d:Property:P&amp;#039;..conf.property} }&lt;br /&gt;
					.. frame:expandTemplate{ title = &amp;#039;Possibly empty category&amp;#039; }&lt;br /&gt;
					.. frame:expandTemplate{ title = &amp;#039;Wikipedia category&amp;#039;, args = { hidden = &amp;#039;yes&amp;#039;, tracking = &amp;#039;yes&amp;#039; } }&lt;br /&gt;
					.. frame:expandTemplate{ title = &amp;#039;Polluted category&amp;#039; }&lt;br /&gt;
					.. whichTOC( frame )&lt;br /&gt;
				if faulty then&lt;br /&gt;
					outString = outString .. addCat(config.i18n.faultcat,id) .. addCat(string.format(config.i18n.cat, id))&lt;br /&gt;
				else&lt;br /&gt;
					outString = outString .. addCat(config.i18n.maincat,id)&lt;br /&gt;
				end&lt;br /&gt;
				return outString&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if namespace == 14 then --cat space&lt;br /&gt;
		local wpfaultyID = mw.ustring.match(title.text, &amp;#039;Articles with faulty (.+) identifiers&amp;#039;)&lt;br /&gt;
		local wpID = mw.ustring.match(title.text, &amp;#039;Articles with (.+) identifiers&amp;#039;)&lt;br /&gt;
		if wpfaultyID then&lt;br /&gt;
			return wpa(frame,wpfaultyID,true)-- must be before wpID check, in case they both match&lt;br /&gt;
		elseif wpID then&lt;br /&gt;
			return wpa(frame,wpID,false)&lt;br /&gt;
		else&lt;br /&gt;
			return needsAttention(&amp;#039;U&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.idproposal(frame)&lt;br /&gt;
	local property = frame.args.property or &amp;#039;&amp;#039;&lt;br /&gt;
	local out = &amp;#039;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Wikidata property: &amp;#039; .. frame:expandTemplate{title=&amp;#039;Wikidata property link&amp;#039;, args={&amp;#039;P&amp;#039; .. property}} .. &amp;#039;&amp;lt;/li&amp;gt;&amp;#039;&lt;br /&gt;
	out = out .. &amp;#039;&amp;lt;li&amp;gt;Section: &amp;#039;&lt;br /&gt;
	local section = frame.args.section or &amp;#039;&amp;#039;&lt;br /&gt;
	if section~=&amp;#039;&amp;#039; then&lt;br /&gt;
		out = out .. config.sections[section].name .. &amp;#039; (&amp;#039; .. section .. &amp;#039;)&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		out = out .. &amp;#039;Not specified&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	out = out .. &amp;#039;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Link: &amp;#039;&lt;br /&gt;
	local link = frame.args.link or &amp;#039;&amp;#039;&lt;br /&gt;
	if link==&amp;#039;&amp;#039; then&lt;br /&gt;
		link = mw.wikibase.getBestStatements(&amp;#039;P&amp;#039;..property,&amp;#039;P1630&amp;#039;) or &amp;#039;&amp;#039;&lt;br /&gt;
		link = link[1].mainsnak.datavalue.value&lt;br /&gt;
	end	&lt;br /&gt;
	if link~=&amp;#039;&amp;#039; then&lt;br /&gt;
		out = out .. &amp;#039;&amp;lt;code&amp;gt;&amp;#039; .. link .. &amp;#039;&amp;lt;/code&amp;gt;&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		out = out .. &amp;#039;Not specified&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	out = out .. &amp;#039;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Label: &amp;#039;&lt;br /&gt;
	local label = frame.args.label or &amp;#039;&amp;#039;&lt;br /&gt;
	if label~=&amp;#039;&amp;#039; then&lt;br /&gt;
		out = out .. label&lt;br /&gt;
	else&lt;br /&gt;
		out = out .. &amp;#039;Not specified&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	out = out .. &amp;#039;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Example: &amp;#039;&lt;br /&gt;
	local example = mw.wikibase.getBestStatements(&amp;#039;P&amp;#039;..property,&amp;#039;P1855&amp;#039;) or &amp;#039;&amp;#039;&lt;br /&gt;
	if example then&lt;br /&gt;
		example = example[1].qualifiers[&amp;#039;P&amp;#039;..property][1].datavalue.value&lt;br /&gt;
		example = frame:expandTemplate{title = &amp;quot;Hlist&amp;quot;, args = {&amp;#039;\n&amp;#039; .. makelink({[1]=&amp;#039;&amp;#039;,link=link,label=label},{id=example},1)}} .. &amp;#039;\n&amp;#039;&lt;br /&gt;
		out = out .. example&lt;br /&gt;
	else&lt;br /&gt;
		out = out .. &amp;#039;Not available&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	out = out .. &amp;#039;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;#039;&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zeroclanzhang</name></author>
	</entry>
</feed>