<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://afropedia.world/index.php?action=history&amp;feed=atom&amp;title=Module%3AAuthority_control%2Fauxiliary</id>
	<title>Module:Authority control/auxiliary - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://afropedia.world/index.php?action=history&amp;feed=atom&amp;title=Module%3AAuthority_control%2Fauxiliary"/>
	<link rel="alternate" type="text/html" href="https://afropedia.world/index.php?title=Module:Authority_control/auxiliary&amp;action=history"/>
	<updated>2026-05-05T21:37:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://afropedia.world/index.php?title=Module:Authority_control/auxiliary&amp;diff=9636&amp;oldid=prev</id>
		<title>Djehuti: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://afropedia.world/index.php?title=Module:Authority_control/auxiliary&amp;diff=9636&amp;oldid=prev"/>
		<updated>2026-01-19T23:58:42Z</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;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:58, 19 January 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Djehuti</name></author>
	</entry>
	<entry>
		<id>https://afropedia.world/index.php?title=Module:Authority_control/auxiliary&amp;diff=9635&amp;oldid=prev</id>
		<title>en&gt;MSGJ: remove unnecessary spans and add some spacing</title>
		<link rel="alternate" type="text/html" href="https://afropedia.world/index.php?title=Module:Authority_control/auxiliary&amp;diff=9635&amp;oldid=prev"/>
		<updated>2024-08-27T06:19:50Z</updated>

		<summary type="html">&lt;p&gt;remove unnecessary spans and add some spacing&lt;/p&gt;
&lt;a href=&quot;https://afropedia.world/index.php?title=Module:Authority_control/auxiliary&amp;amp;diff=9635&amp;amp;oldid=4810&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>en&gt;MSGJ</name></author>
	</entry>
	<entry>
		<id>https://afropedia.world/index.php?title=Module:Authority_control/auxiliary&amp;diff=4810&amp;oldid=prev</id>
		<title>Djehuti: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://afropedia.world/index.php?title=Module:Authority_control/auxiliary&amp;diff=4810&amp;oldid=prev"/>
		<updated>2024-06-17T17:22:13Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&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;
--[[            Format validation functions               ]]&lt;br /&gt;
--[[======================================================]]&lt;br /&gt;
p.botanistV = function(id)&lt;br /&gt;
	return mw.ustring.match(id,&amp;quot;^[%u%l%d%. &amp;#039;-]+$&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.validateIsni = function(id) --Validate ISNI (and ORCID) and retuns it as a 16 characters string or returns false if it&amp;#039;s invalid. See http://support.orcid.org/knowledgebase/articles/116780-structure-of-the-orcid-identifier&lt;br /&gt;
	id = id:gsub( &amp;#039;[ %-]&amp;#039;, &amp;#039;&amp;#039; ):upper()&lt;br /&gt;
	if not id:match( &amp;#039;^%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d[%dX]$&amp;#039; ) then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	local total = 0&lt;br /&gt;
	for i = 1, 15 do&lt;br /&gt;
		local digit = id:byte( i ) - 48 --Get integer value&lt;br /&gt;
		total = (total + digit) * 2&lt;br /&gt;
	end&lt;br /&gt;
	local remainder = total % 11&lt;br /&gt;
	local result = (12 - remainder) % 11&lt;br /&gt;
	local checkdigit&lt;br /&gt;
	if result == 10 then&lt;br /&gt;
		checkdigit = &amp;#039;X&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		checkdigit=tostring( result )&lt;br /&gt;
	end&lt;br /&gt;
	if checkdigit ~= string.char( id:byte( 16 ) ) then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	return id&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function splitLccn(id)&lt;br /&gt;
	if id:match( &amp;#039;^%l%l?%l?%d%d%d%d%d%d%d%d%d?%d?$&amp;#039; ) then&lt;br /&gt;
		id = id:gsub( &amp;#039;^(%l+)(%d+)(%d%d%d%d%d%d)$&amp;#039;, &amp;#039;%1/%2/%3&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
	if id:match( &amp;#039;^%l%l?%l?/%d%d%d?%d?/%d+$&amp;#039; ) then&lt;br /&gt;
		return mw.text.split( id, &amp;#039;/&amp;#039; )&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.lccnV = function(id)&lt;br /&gt;
	local function append(str, c, length)&lt;br /&gt;
		while str:len() &amp;lt; length do&lt;br /&gt;
			str = c..str&lt;br /&gt;
		end&lt;br /&gt;
		return str&lt;br /&gt;
	end&lt;br /&gt;
	local parts = splitLccn(id) --e.g. n78039510&lt;br /&gt;
	if not parts then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	local lccnType = parts[1] ~= &amp;#039;sh&amp;#039; and &amp;#039;names&amp;#039; or &amp;#039;subjects&amp;#039;&lt;br /&gt;
	return lccnType .. &amp;#039;/&amp;#039; .. parts[1] .. parts[2] .. append( parts[3], &amp;#039;0&amp;#039;, 6 )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.WorldCatLCCN = function(id)&lt;br /&gt;
	local lccnParts = splitLccn(id)&lt;br /&gt;
	if lccnParts and lccnParts[1] ~= &amp;#039;sh&amp;#039; then&lt;br /&gt;
		return lccnParts[1]..lccnParts[2]..&amp;#039;-&amp;#039;..lccnParts[3]&lt;br /&gt;
	else&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.orcidV = function(id)&lt;br /&gt;
	id = p.validateIsni(id)&lt;br /&gt;
	if not id then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	return id:sub( 1, 4 )..&amp;#039;-&amp;#039;..id:sub( 5, 8 )..&amp;#039;-&amp;#039;..id:sub( 9, 12 )..&amp;#039;-&amp;#039;..id:sub( 13, 16 )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.tlsV = function(id)&lt;br /&gt;
	id = id:gsub(&amp;#039; +&amp;#039;, &amp;#039;_&amp;#039;)&lt;br /&gt;
	local idlen = mw.ustring.len(id)&lt;br /&gt;
	if idlen &amp;lt; 4 or idlen &amp;gt; 90 then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	local regex = &amp;#039;^%u&amp;#039;..string.rep(&amp;quot;[%w_&amp;#039;,%.%-%(%)%*%/–&amp;amp;]&amp;quot;, idlen - 1)..&amp;#039;$&amp;#039;&lt;br /&gt;
	if not mw.ustring.match(id,regex ) then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	return id&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.worldcatidV = function(id)&lt;br /&gt;
	if not id:match( &amp;#039;^viaf%-%d+$&amp;#039; ) and&lt;br /&gt;
	   not id:match( &amp;#039;^lccn%-n[a-z]?[0-9%-]+$&amp;#039; ) and&lt;br /&gt;
	   not id:match( &amp;#039;^n[cps]%-.+$&amp;#039; ) then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	return mw.uri.encode(id, &amp;#039;PATH&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.zbmathV = function(id)&lt;br /&gt;
	local ps = {&amp;#039;%l[%l%-]*&amp;#039;, &amp;#039;%.%l[%l%-]*&amp;#039;, &amp;#039;%.%d*&amp;#039;}&lt;br /&gt;
	return id:match( &amp;#039;^&amp;#039;..ps[1]..&amp;#039;$&amp;#039; ) -- prefix with no capture options&lt;br /&gt;
	   or id:match( &amp;#039;^&amp;#039;..ps[1]..ps[2]..&amp;#039;$&amp;#039; ) -- prefix with first capture option&lt;br /&gt;
	   or id:match( &amp;#039;^&amp;#039;..ps[1]..ps[3]..&amp;#039;$&amp;#039; ) -- prefix with second capture option&lt;br /&gt;
	   or id:match( &amp;#039;^&amp;#039;..ps[1]..ps[2]..ps[3]..&amp;#039;$&amp;#039; ) -- prefix and both capture options&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[======================================================]]&lt;br /&gt;
--[[                Custom link functions                 ]]&lt;br /&gt;
--[[======================================================]]&lt;br /&gt;
p.ISILlink = function(id,label)&lt;br /&gt;
	if not id:match(&amp;#039;^%D%D?%D?%D?%-.+$&amp;#039;) then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	for _,prefix in ipairs({&amp;#039;AT&amp;#039;,&amp;#039;AU&amp;#039;,&amp;#039;BE&amp;#039;,&amp;#039;CA&amp;#039;,&amp;#039;CH&amp;#039;,&amp;#039;DE&amp;#039;,&amp;#039;FI&amp;#039;,&amp;#039;FR&amp;#039;,&amp;#039;IT&amp;#039;,&amp;#039;KR&amp;#039;,&amp;#039;NZ&amp;#039;,&amp;#039;US&amp;#039;,&amp;#039;ZDB&amp;#039;}) do&lt;br /&gt;
		if id:match(&amp;#039;^&amp;#039;..prefix..&amp;#039;%-&amp;#039;) then&lt;br /&gt;
			return &amp;#039;&amp;lt;span class=&amp;quot;uid&amp;quot;&amp;gt;[https://w3id.org/isil/&amp;#039;..id..&amp;#039; &amp;#039; .. (label or &amp;#039;ISIL&amp;#039;) .. &amp;#039;]&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;[[International Standard Identifier for Libraries and Related Organizations|ISIL]]\n**&amp;lt;span class=&amp;quot;uid&amp;quot;&amp;gt;&amp;#039; .. id .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.uscgLink = function(id)&lt;br /&gt;
	local id2 = id:match( &amp;#039;^[1-7]%-%d%d?%d?%d?%d?$&amp;#039; ) or id:match( &amp;#039;^[1-7]%-%d%d?%d?%d?%d?%.%d*[1-9]$&amp;#039; )&lt;br /&gt;
	if id2 then&lt;br /&gt;
		return &amp;#039;&amp;lt;span class=&amp;quot;uid&amp;quot;&amp;gt;[https://www.navcen.uscg.gov/pdf/lightlists/LightList%20V&amp;#039;..mw.ustring.sub(id2,1,1)..&amp;#039;.pdf &amp;#039;..id2..&amp;#039;]&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Djehuti</name></author>
	</entry>
</feed>