<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.tiffa.net/w/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://wiki.tiffa.net/w/index.php?action=history&amp;feed=atom&amp;title=Module%3APortal-inline"/>
	<link rel="alternate" type="text/html" href="https://wiki.tiffa.net/w/index.php?title=Module:Portal-inline&amp;action=history"/>
	<updated>2026-04-03T22:29:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.tiffa.net/w/index.php?title=Module:Portal-inline&amp;diff=3766&amp;oldid=prev</id>
		<title>imported&gt;Fire: Created page with &quot;-- determine whether we&#039;re being called from a sandbox local isSandbox = mw.getCurrentFrame():getTitle():find(&#039;sandbox&#039;, 1, true) local sandbox = isSandbox and &#039;/sandbox&#039; or &#039;&#039;  local getArgs = require(&#039;Module:Arguments&#039;).getArgs local yesno = require(&#039;Module:Yesno&#039;) local portalModule = require(&#039;Module:Portal&#039;..sandbox) local getImageName = portalModule._image local checkPortals = portalModule._checkPortals local processPortalArgs = portalModule._processPortalArgs  loca...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.tiffa.net/w/index.php?title=Module:Portal-inline&amp;diff=3766&amp;oldid=prev"/>
		<updated>2023-01-03T13:15:51Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-- determine whether we&amp;#039;re being called from a sandbox local isSandbox = mw.getCurrentFrame():getTitle():find(&amp;#039;sandbox&amp;#039;, 1, true) local sandbox = isSandbox and &amp;#039;/sandbox&amp;#039; or &amp;#039;&amp;#039;  local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs local yesno = require(&amp;#039;Module:Yesno&amp;#039;) local portalModule = require(&amp;#039;Module:Portal&amp;#039;..sandbox) local getImageName = portalModule._image local checkPortals = portalModule._checkPortals local processPortalArgs = portalModule._processPortalArgs  loca...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- determine whether we&amp;#039;re being called from a sandbox&lt;br /&gt;
local isSandbox = mw.getCurrentFrame():getTitle():find(&amp;#039;sandbox&amp;#039;, 1, true)&lt;br /&gt;
local sandbox = isSandbox and &amp;#039;/sandbox&amp;#039; or &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
local portalModule = require(&amp;#039;Module:Portal&amp;#039;..sandbox)&lt;br /&gt;
local getImageName = portalModule._image&lt;br /&gt;
local checkPortals = portalModule._checkPortals&lt;br /&gt;
local processPortalArgs = portalModule._processPortalArgs&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Function to format error message and tracking category&lt;br /&gt;
-- Arguments:&lt;br /&gt;
--   errMsg: string, or nil/false if no error&lt;br /&gt;
--   trackingCat: string for tracking category (or empty string)&lt;br /&gt;
local function formatError(errMsg, trackingCat)&lt;br /&gt;
	local result = trackingCat or &amp;#039;&amp;#039;&lt;br /&gt;
	if errMsg then&lt;br /&gt;
		local errTag = mw.html.create(&amp;#039;span&amp;#039;)&lt;br /&gt;
		errTag:addClass(&amp;quot;error&amp;quot;)&lt;br /&gt;
		errTag:css(&amp;quot;font-size&amp;quot;,&amp;#039;100%&amp;#039;)&lt;br /&gt;
		errTag:wikitext(&amp;quot;Error: &amp;quot;..errMsg)&lt;br /&gt;
		result = tostring(errTag)..result&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function image(portal, args)&lt;br /&gt;
	local size = args.size == &amp;quot;tiny&amp;quot; and &amp;quot;16x16px&amp;quot; or &amp;quot;32x28px&amp;quot;&lt;br /&gt;
	return string.format(&amp;#039;[[File:%s|class=noviewer|%s]]&amp;#039;,getImageName(portal,true), size)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function link(portal, args)&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 args.short then&lt;br /&gt;
		displayName = portal&lt;br /&gt;
	else&lt;br /&gt;
		displayName = portal .. &amp;quot;&amp;amp;#32;portal&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	return string.format(&amp;#039;[[Portal:%s|%s]]&amp;#039;,portal,displayName)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(portals, args)&lt;br /&gt;
	mw.logObject(args)&lt;br /&gt;
	&lt;br /&gt;
	-- Normalize all arguments&lt;br /&gt;
	if args.redlinks == &amp;#039;include&amp;#039; then args.redlinks = true end&lt;br /&gt;
	for key, default in pairs({tracking=true,redlinks=false,short=false}) do&lt;br /&gt;
		if args[key] == nil then args[key] = default end&lt;br /&gt;
		args[key] = yesno(args[key], default)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local trackingCat = &amp;#039;&amp;#039;&lt;br /&gt;
	local errMsg = nil&lt;br /&gt;
	&lt;br /&gt;
	-- Check for existing categories, drop if not. &lt;br /&gt;
	-- Possible generate tracking category &amp;amp; error message if needed&lt;br /&gt;
	args.minPortals = args.minPortals or 1&lt;br /&gt;
	args.maxPortals = args.maxPortals or 1&lt;br /&gt;
	portals, trackingCat, errMsg = checkPortals(portals,args)&lt;br /&gt;
	-- use more specific tracking cat for inline portal&lt;br /&gt;
	trackingCat = mw.ustring.gsub(trackingCat,&amp;quot;Portal templates&amp;quot;,&amp;quot;Portal-inline template&amp;quot;)&lt;br /&gt;
	-- either too many/few portals, or no portals left after filtering, then return&lt;br /&gt;
	if errMsg or #portals == 0 then&lt;br /&gt;
		return formatError(errMsg, trackingCat)&lt;br /&gt;
	end&lt;br /&gt;
	return image(portals[1],args)..&amp;#039;&amp;amp;nbsp;&amp;#039;..link(portals[1],args)..(trackingCat or &amp;#039;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local origArgs = getArgs(frame)&lt;br /&gt;
	local portals, args = processPortalArgs(origArgs)&lt;br /&gt;
	return p._main(portals, args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Fire</name></author>
	</entry>
</feed>