<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.1ok.de/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Modul%3APortal-inline</id>
	<title>Modul:Portal-inline - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://www.1ok.de/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Modul%3APortal-inline"/>
	<link rel="alternate" type="text/html" href="https://www.1ok.de/mediawiki/index.php?title=Modul:Portal-inline&amp;action=history"/>
	<updated>2026-04-24T06:49:39Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Our Time Travel Wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://www.1ok.de/mediawiki/index.php?title=Modul:Portal-inline&amp;diff=1071&amp;oldid=prev</id>
		<title>Timetrave: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.1ok.de/mediawiki/index.php?title=Modul:Portal-inline&amp;diff=1071&amp;oldid=prev"/>
		<updated>2021-08-17T21:47:53Z</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;de&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 17. August 2021, 22:47 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;de&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(kein Unterschied)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Timetrave</name></author>
	</entry>
	<entry>
		<id>https://www.1ok.de/mediawiki/index.php?title=Modul:Portal-inline&amp;diff=1070&amp;oldid=prev</id>
		<title>en&gt;Jonesey95: nbsp between icon and portal link, per TPER</title>
		<link rel="alternate" type="text/html" href="https://www.1ok.de/mediawiki/index.php?title=Modul:Portal-inline&amp;diff=1070&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;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local getImageName = require( &amp;#039;Module:Portal&amp;#039; ).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 &amp;#039;no, &amp;#039;n&amp;#039;, or &amp;#039;false&amp;#039;&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 == &amp;#039;no&amp;#039;) or (args.tracking == &amp;#039;n&amp;#039;) or (args.tracking == &amp;#039;false&amp;#039;) 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;#039;&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;&amp;#039;&lt;br /&gt;
		if trackingEnabled then&lt;br /&gt;
			root = root .. &amp;#039;[[Category:Portal templates without a parameter]][[Category:Portal-inline template without a parameter]]&amp;#039;&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;#039;&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;&amp;#039;&lt;br /&gt;
		if trackingEnabled then&lt;br /&gt;
			root = root .. &amp;#039;[[Category:Portal-inline template with more than one portal parameter]]&amp;#039;&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 == &amp;#039;yes&amp;#039;) or (args.redlinks == &amp;#039;y&amp;#039;) or (args.redlinks == &amp;#039;true&amp;#039;) or (args.redlinks == &amp;#039;include&amp;#039;)) 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 .. &amp;#039;[[Category:Portal templates with redlinked portals]][[Category:Portal-inline template with redlinked portals]]&amp;#039;&lt;br /&gt;
				else&lt;br /&gt;
					root = root .. &amp;#039;[[Category:Portal templates with all redlinked portals]][[Category:Portal-inline template with redlinked portals]]&amp;#039;&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 = &amp;#039;[[Category:Portal templates with redlinked portals]][[Category:Portal-inline template with redlinked portals]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args[&amp;#039;size&amp;#039;] == &amp;quot;tiny&amp;quot; then&lt;br /&gt;
		args[&amp;#039;size&amp;#039;] = &amp;quot;16x16px&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		args[&amp;#039;size&amp;#039;] = &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[&amp;#039;text&amp;#039;] == &amp;quot;&amp;quot; or args[&amp;#039;text&amp;#039;] == nil) then&lt;br /&gt;
		displayName = args[&amp;#039;text&amp;#039;]&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(&amp;#039;[[File:%s|class=noviewer|%s]]&amp;amp;nbsp;[[Portal:%s|%s]]&amp;#039;, getImageName{ portals[1] }, args[&amp;#039;size&amp;#039;], 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) == &amp;#039;table&amp;#039; 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) == &amp;#039;number&amp;#039; and type(v) == &amp;#039;string&amp;#039; then -- Make sure we have no non-string portal names.&lt;br /&gt;
			table.insert(portals, k)&lt;br /&gt;
		elseif type(k) ~= &amp;#039;number&amp;#039; 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) == &amp;#039;function&amp;#039; 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) == &amp;#039;string&amp;#039; then&lt;br /&gt;
				v = mw.text.trim(v)&lt;br /&gt;
			end&lt;br /&gt;
			if v ~= &amp;#039;&amp;#039; 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{&amp;#039;main&amp;#039;} do&lt;br /&gt;
	p[funcName] = makeWrapper(&amp;#039;_&amp;#039; .. funcName)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>en&gt;Jonesey95</name></author>
	</entry>
</feed>