<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mindpowe.red/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3APortal-inline</id>
	<title>Module:Portal-inline - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mindpowe.red/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3APortal-inline"/>
	<link rel="alternate" type="text/html" href="https://mindpowe.red/wiki/index.php?title=Module:Portal-inline&amp;action=history"/>
	<updated>2026-04-05T23:12:58Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://mindpowe.red/wiki/index.php?title=Module:Portal-inline&amp;diff=1477&amp;oldid=prev</id>
		<title>imported&gt;Jonesey95: nbsp between icon and portal link, per TPER</title>
		<link rel="alternate" type="text/html" href="https://mindpowe.red/wiki/index.php?title=Module:Portal-inline&amp;diff=1477&amp;oldid=prev"/>
		<updated>2020-07-16T17:37:34Z</updated>

		<summary type="html">&lt;p&gt;nbsp between icon and portal link, per TPER&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local getImageName = require( 'Module:Portal' ).image&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function checkPortalExists(portal)&lt;br /&gt;
	return not (mw.title.makeTitle(100, portal).id == 0)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local trackingEnabled = true&lt;br /&gt;
&lt;br /&gt;
-- Check whether to do tracking in this namespace&lt;br /&gt;
-- Returns true unless the page is one of the banned namespaces&lt;br /&gt;
local function checkTrackingNamespace()&lt;br /&gt;
	local thisPage = mw.title.getCurrentTitle()&lt;br /&gt;
	if (thisPage.namespace == 1) -- Talk&lt;br /&gt;
		or (thisPage.namespace == 2) -- User&lt;br /&gt;
		or (thisPage.namespace == 3) -- User talk&lt;br /&gt;
		or (thisPage.namespace == 5) -- Wikipedia talk&lt;br /&gt;
		or (thisPage.namespace == 7) -- File talk&lt;br /&gt;
		or (thisPage.namespace == 11) -- Template talk&lt;br /&gt;
		or (thisPage.namespace == 15) -- Category talk&lt;br /&gt;
		or (thisPage.namespace == 101) -- Portal talk&lt;br /&gt;
		or (thisPage.namespace == 118) -- Draft&lt;br /&gt;
		or (thisPage.namespace == 119) -- Draft talk&lt;br /&gt;
		or (thisPage.namespace == 829) -- Module talk&lt;br /&gt;
		then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	return true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Check whether to do tracking on this pagename&lt;br /&gt;
-- Returns false if the page title matches one of the banned strings&lt;br /&gt;
-- Otherwise returns true&lt;br /&gt;
local function checkTrackingPagename()&lt;br /&gt;
	local thisPage = mw.title.getCurrentTitle()&lt;br /&gt;
	local thisPageLC = mw.ustring.lower(thisPage.text)&lt;br /&gt;
	if (string.match(thisPageLC, &amp;quot;/archive&amp;quot;) ~= nil) then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	if (string.match(thisPageLC, &amp;quot;/doc&amp;quot;) ~= nil) then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	if (string.match(thisPageLC, &amp;quot;/test&amp;quot;) ~= nil) then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	return true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(portals, args)&lt;br /&gt;
	local root = &amp;quot;&amp;quot;&lt;br /&gt;
	mw.logObject(args)&lt;br /&gt;
	-- ignore extra portals listed&lt;br /&gt;
	-- If no portals have been specified, display an error and add the page to a tracking category.&lt;br /&gt;
	-- Tracking is on by default.&lt;br /&gt;
	-- It is disabled if any of the following is true&lt;br /&gt;
	-- 1/ the parameter &amp;quot;tracking&amp;quot; is set to 'no, 'n', or 'false'&lt;br /&gt;
	-- 2/ the current page fails the namespace tests in checkTrackingNamespace()&lt;br /&gt;
	-- 3/ the current page fails the pagename tests in checkTrackingPagename()&lt;br /&gt;
&lt;br /&gt;
	if (args.tracking == 'no') or (args.tracking == 'n') or (args.tracking == 'false') then&lt;br /&gt;
		trackingEnabled = false&lt;br /&gt;
	end&lt;br /&gt;
	if (checkTrackingNamespace() == false) then&lt;br /&gt;
		trackingEnabled = false&lt;br /&gt;
	end&lt;br /&gt;
	if (checkTrackingPagename() == false) then&lt;br /&gt;
		trackingEnabled = false&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not portals[1] then&lt;br /&gt;
		root = '&amp;lt;span style=&amp;quot;font-size:100%;&amp;quot; class=&amp;quot;error&amp;quot;&amp;gt;error: missing portal name.&amp;lt;/span&amp;gt;&amp;lt;/strong&amp;gt;&amp;quot;'&lt;br /&gt;
		if trackingEnabled then&lt;br /&gt;
			root = root .. '[[Category:Portal templates without a parameter]][[Category:Portal-inline template without a parameter]]'&lt;br /&gt;
		end&lt;br /&gt;
		return tostring(root)&lt;br /&gt;
	end&lt;br /&gt;
	if portals[2] or portals[3] then&lt;br /&gt;
		root = '&amp;lt;span style=&amp;quot;font-size:100%;&amp;quot; class=&amp;quot;error&amp;quot;&amp;gt;error: Template:portal-inline accepts only one portal as a parameter&amp;lt;/span&amp;gt;&amp;lt;/strong&amp;gt; &amp;amp;nbsp; &amp;amp;nbsp; &amp;quot;'&lt;br /&gt;
		if trackingEnabled then&lt;br /&gt;
			root = root .. '[[Category:Portal-inline template with more than one portal parameter]]'&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if not pcall(checkPortalExists, portals[1]) or not checkPortalExists(portals[1]) then&lt;br /&gt;
		-- Getting here means a redlinked portal has been found&lt;br /&gt;
		if not ((args.redlinks == 'yes') or (args.redlinks == 'y') or (args.redlinks == 'true') or (args.redlinks == 'include')) then&lt;br /&gt;
			-- just return if redlinks is not &amp;quot;yes&amp;quot; or similar&lt;br /&gt;
			if trackingEnabled then&lt;br /&gt;
				if portals[2] or portals[3] then&lt;br /&gt;
					root = root .. '[[Category:Portal templates with redlinked portals]][[Category:Portal-inline template with redlinked portals]]'&lt;br /&gt;
				else&lt;br /&gt;
					root = root .. '[[Category:Portal templates with all redlinked portals]][[Category:Portal-inline template with redlinked portals]]'&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			return tostring(root)&lt;br /&gt;
		end&lt;br /&gt;
		if trackingEnabled then&lt;br /&gt;
			root = '[[Category:Portal templates with redlinked portals]][[Category:Portal-inline template with redlinked portals]]'&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args['size'] == &amp;quot;tiny&amp;quot; then&lt;br /&gt;
		args['size'] = &amp;quot;16x16px&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		args['size'] = &amp;quot;32x28px&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local displayName = &amp;quot;&amp;quot;&lt;br /&gt;
	if not (args['text'] == &amp;quot;&amp;quot; or args['text'] == nil) then&lt;br /&gt;
		displayName = args['text']&lt;br /&gt;
	elseif not (args.short == &amp;quot;&amp;quot; or args.short == nil) then&lt;br /&gt;
		displayName = portals[1]&lt;br /&gt;
	else&lt;br /&gt;
		displayName = portals[1] .. &amp;quot;&amp;amp;#32;portal&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	-- display portal-inline content&lt;br /&gt;
	root = root .. string.format('[[File:%s|class=noviewer|%s]]&amp;amp;nbsp;[[Portal:%s|%s]]', getImageName{ portals[1] }, args['size'], portals[1], displayName)&lt;br /&gt;
	&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- copied from [[Module:Portal]]&lt;br /&gt;
local function processPortalArgs(args)&lt;br /&gt;
	-- This function processes a table of arguments and returns two tables: an array of portal names for processing by ipairs, and a table of&lt;br /&gt;
	-- the named arguments that specify style options, etc. We need to use ipairs because we want to list all the portals in the order&lt;br /&gt;
	-- they were passed to the template, but we also want to be able to deal with positional arguments passed explicitly, for example&lt;br /&gt;
	-- {{portal-inline|Politics}}. The behaviour of ipairs is undefined if nil values are present, so we need to make sure they are all removed.&lt;br /&gt;
	args = type(args) == 'table' and args or {}&lt;br /&gt;
	local portals = {}&lt;br /&gt;
	local namedArgs = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if type(k) == 'number' and type(v) == 'string' then -- Make sure we have no non-string portal names.&lt;br /&gt;
			table.insert(portals, k)&lt;br /&gt;
		elseif type(k) ~= 'number' then&lt;br /&gt;
			namedArgs[k] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(portals)&lt;br /&gt;
	for i, v in ipairs(portals) do&lt;br /&gt;
		portals[i] = args[v]&lt;br /&gt;
	end&lt;br /&gt;
	return portals, namedArgs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeWrapper(funcName)&lt;br /&gt;
	-- Processes external arguments and sends them to the other functions.&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		-- If called via #invoke, use the args passed into the invoking&lt;br /&gt;
		-- template, or the args passed to #invoke if any exist. Otherwise&lt;br /&gt;
		-- assume args are being passed directly in from the debug console&lt;br /&gt;
		-- or from another Lua module.&lt;br /&gt;
		local origArgs&lt;br /&gt;
		if type(frame.getParent) == 'function' then&lt;br /&gt;
			origArgs = frame:getParent().args&lt;br /&gt;
			for k, v in pairs(frame.args) do&lt;br /&gt;
				origArgs = frame.args&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			origArgs = frame&lt;br /&gt;
		end&lt;br /&gt;
		-- Trim whitespace and remove blank arguments.&lt;br /&gt;
		local args = {}&lt;br /&gt;
		for k, v in pairs(origArgs) do&lt;br /&gt;
			if type(v) == 'string' then&lt;br /&gt;
				v = mw.text.trim(v)&lt;br /&gt;
			end&lt;br /&gt;
			if v ~= '' then&lt;br /&gt;
				args[k] = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return p[funcName](processPortalArgs(args)) -- passes two tables to func: an array of portal names, and a table of named arguments.&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
for _, funcName in ipairs{'main'} do&lt;br /&gt;
	p[funcName] = makeWrapper('_' .. funcName)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Jonesey95</name></author>
		
	</entry>
</feed>