<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AArticle_list%2Fsandbox</id>
	<title>Module:Article list/sandbox - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3AArticle_list%2Fsandbox"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Article_list/sandbox&amp;action=history"/>
	<updated>2026-05-28T22:14:55Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Article_list/sandbox&amp;diff=135279&amp;oldid=prev</id>
		<title>imported&gt;WOSlinker: use require(&#039;strict&#039;) instead of require(&#039;Module:No globals&#039;)</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Article_list/sandbox&amp;diff=135279&amp;oldid=prev"/>
		<updated>2022-10-21T10:03:57Z</updated>

		<summary type="html">&lt;p&gt;use require(&amp;#039;strict&amp;#039;) instead of require(&amp;#039;Module:No globals&amp;#039;)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {};&lt;br /&gt;
require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local function makelink(link)&lt;br /&gt;
	return &amp;quot;&amp;lt;li&amp;gt;[[&amp;quot; .. link.target .. &amp;quot;|&amp;quot; .. link.label .. &amp;quot;]]&amp;lt;/li&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function warning(note)&lt;br /&gt;
	return &amp;quot;&amp;lt;li&amp;gt;[[File:Achtung-orange.svg|20px]] &amp;quot;..note..&amp;quot;&amp;lt;/li&amp;gt;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function removeword(link,removelist)&lt;br /&gt;
	for i,remove in ipairs(removelist) do&lt;br /&gt;
		local char1 = string.sub(remove,1,1)&lt;br /&gt;
		local regex = &amp;quot;%f[%w][&amp;quot; .. string.upper(char1) .. string.lower(char1) .. &amp;quot;]&amp;quot; .. string.sub(remove,2) .. &amp;quot;*%f[%W]&amp;quot;&lt;br /&gt;
		link = link:gsub(regex,&amp;quot;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	link = link:gsub(&amp;quot;^%s*&amp;quot;,&amp;quot;&amp;quot;) -- strip spaces from start&lt;br /&gt;
	link = link:gsub(&amp;quot;%s*$&amp;quot;,&amp;quot;&amp;quot;) -- strip spaces from end&lt;br /&gt;
	link = link:gsub(&amp;quot;^(%l)&amp;quot;, mw.ustring.upper) -- capitalise first letter&lt;br /&gt;
	return link&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getlinks(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local pargs = frame:getParent().args&lt;br /&gt;
	local qids = args[1] or pargs[1]&lt;br /&gt;
	local sort = true -- sort entries unless sort=no&lt;br /&gt;
	if args.sort==&amp;#039;no&amp;#039; or pargs.sort==&amp;#039;no&amp;#039; then&lt;br /&gt;
		sort = false&lt;br /&gt;
	end&lt;br /&gt;
	local redlinks = false -- do not show redlinks unless redlinks=yes&lt;br /&gt;
	if args.redlinks==&amp;#039;yes&amp;#039; or pargs.redlinks==&amp;#039;yes&amp;#039; then&lt;br /&gt;
		redlinks = true&lt;br /&gt;
	end&lt;br /&gt;
	local removes = args.remove or pargs.remove or &amp;quot;&amp;quot;&lt;br /&gt;
	local removelist = mw.text.split(removes,&amp;quot;%s*,%s*&amp;quot;) -- split string into table at commas&lt;br /&gt;
	local links = {} -- for constructing the links&lt;br /&gt;
	local notes = &amp;quot;&amp;quot; -- for warning messages on the template&lt;br /&gt;
	if qids then&lt;br /&gt;
		for qid in qids:gmatch(&amp;quot;Q%d+&amp;quot;) do&lt;br /&gt;
			local target = mw.wikibase.sitelink(qid)&lt;br /&gt;
			local label = mw.wikibase.getLabel(qid)&lt;br /&gt;
			if target then -- sitelink to enwiki exists&lt;br /&gt;
				local newlink = {}&lt;br /&gt;
				newlink.target = target&lt;br /&gt;
				if label then -- make piped link using English label to avoid unnecessary disambiguation terms&lt;br /&gt;
					newlink.label = removeword(label,removelist) -- remove common words from label&lt;br /&gt;
				else -- there is no label so we are using target as the label&lt;br /&gt;
					newlink.label = removeword(target,removelist) -- remove common words from target&lt;br /&gt;
				end&lt;br /&gt;
				table.insert(links,newlink)&lt;br /&gt;
			else -- no sitelink to enwiki exists yet&lt;br /&gt;
				if label then -- English label exists&lt;br /&gt;
					if redlinks == true then&lt;br /&gt;
						if mw.title.new(label).exists then -- [[label]] is already a page linked to a different item&lt;br /&gt;
							notes = notes..warning(&amp;quot;Cannot show link to [[&amp;quot;..label..&amp;quot;]] because it is not linked to [[d:Special:EntityPage/&amp;quot;..qid..&amp;quot;|&amp;quot;..qid..&amp;quot;]]&amp;quot;)&lt;br /&gt;
						else -- we can create a redlink to [[label]]&lt;br /&gt;
							local newlink = {}&lt;br /&gt;
							newlink.target = label&lt;br /&gt;
							newlink.label = removeword(label,removelist)&lt;br /&gt;
							table.insert(links,newlink)&lt;br /&gt;
						end&lt;br /&gt;
					else -- add warning on template that there is no sitelink&lt;br /&gt;
						notes = notes..warning(&amp;quot;No sitelink for [[&amp;quot;..label..&amp;quot;]]&amp;quot;)&lt;br /&gt;
					end&lt;br /&gt;
				else -- no target and no English label&lt;br /&gt;
					if mw.wikibase.entityExists(qid) then&lt;br /&gt;
						if redlinks == true then -- add warning on template that no redlink can be generated without label&lt;br /&gt;
							notes = notes..warning(&amp;quot;Cannot show link to [[d:Special:EntityPage/&amp;quot;..qid..&amp;quot;|&amp;quot;..qid..&amp;quot;]] because no label is defined&amp;quot;)&lt;br /&gt;
						else -- add warning on template that there is no sitelink available&lt;br /&gt;
							notes = notes..warning(&amp;quot;No sitelink for [[d:Special:EntityPage/&amp;quot;..qid..&amp;quot;|&amp;quot;..qid..&amp;quot;]]&amp;quot;)&lt;br /&gt;
						end&lt;br /&gt;
					else -- add warning on template that qid is invalid&lt;br /&gt;
						notes = notes..warning(&amp;quot;Invalid identifier &amp;quot;..qid)&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;Error: no parameter&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	local links2 = {} -- will contain wikilinks sorted alphabetically&lt;br /&gt;
	if #links&amp;gt;0 then&lt;br /&gt;
		if sort then&lt;br /&gt;
			table.sort(links,function (link1,link2) return link1.label&amp;lt;link2.label end)&lt;br /&gt;
		end&lt;br /&gt;
		for i,link in ipairs(links) do&lt;br /&gt;
			links2[i]=makelink(link)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local output = &amp;#039;&amp;lt;ul&amp;gt;&amp;#039;..table.concat(links2)..&amp;#039;&amp;lt;/ul&amp;gt;&amp;#039;&lt;br /&gt;
	if mw.title.getCurrentTitle():inNamespace(10) then&lt;br /&gt;
		output = output..notes&lt;br /&gt;
	end&lt;br /&gt;
	return output&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.convert(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local pargs = frame:getParent().args&lt;br /&gt;
	local input = args[1] or pargs[1]&lt;br /&gt;
	if input == nil then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local resolveEntity = require( &amp;quot;Module:ResolveEntityId&amp;quot; )&lt;br /&gt;
	local articlelist = mw.text.split(input,&amp;quot;%*%s*&amp;quot;)&lt;br /&gt;
	local qidlist = {}&lt;br /&gt;
	for i,article in ipairs(articlelist) do&lt;br /&gt;
		local rawarticle=string.match(article,&amp;#039;%[%[(.+)%|&amp;#039;) or string.match(article,&amp;#039;%[%[(.+)%]%]&amp;#039;)&lt;br /&gt;
		if rawarticle then&lt;br /&gt;
			local qid = resolveEntity._id(rawarticle)&lt;br /&gt;
	 		if qid then&lt;br /&gt;
				qidlist[#qidlist+1] = qid..&amp;quot;&amp;lt;!-- &amp;quot;..rawarticle..&amp;quot; --&amp;gt;&amp;quot;&lt;br /&gt;
	 		else&lt;br /&gt;
	 			qidlist[#qidlist+1] = &amp;quot;&amp;lt;!-- No QID for &amp;quot;..rawarticle..&amp;quot; --&amp;gt;&amp;quot;&lt;br /&gt;
	 		end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;quot;{{Article list|&amp;quot;..table.concat(qidlist,&amp;quot;, &amp;quot;)..&amp;quot;}}&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;WOSlinker</name></author>
	</entry>
</feed>