<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sv">
	<id>https://xn--jrnvgshistoria-5hbd.se/index.php?action=history&amp;feed=atom&amp;title=Modul%3ATrack_gauge</id>
	<title>Modul:Track gauge - Versionshistorik</title>
	<link rel="self" type="application/atom+xml" href="https://xn--jrnvgshistoria-5hbd.se/index.php?action=history&amp;feed=atom&amp;title=Modul%3ATrack_gauge"/>
	<link rel="alternate" type="text/html" href="https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Track_gauge&amp;action=history"/>
	<updated>2026-05-14T04:47:17Z</updated>
	<subtitle>Versionshistorik för denna sida på wikin</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Track_gauge&amp;diff=59544&amp;oldid=prev</id>
		<title>Jan Karlsson: 1 version importerades</title>
		<link rel="alternate" type="text/html" href="https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Track_gauge&amp;diff=59544&amp;oldid=prev"/>
		<updated>2021-01-05T08:10:19Z</updated>

		<summary type="html">&lt;p&gt;1 version importerades&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;sv&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Äldre version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versionen från 5 januari 2021 kl. 08.10&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key hviqzheq_jarnvagshistoria22:diff::1.12:old-59543:rev-59544 --&gt;
&lt;/table&gt;</summary>
		<author><name>Jan Karlsson</name></author>
	</entry>
	<entry>
		<id>https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Track_gauge&amp;diff=59543&amp;oldid=prev</id>
		<title>jarnvagsdata&gt;Izno: templatestyles per MediaWiki_talk:Common.css#visualhide_removal</title>
		<link rel="alternate" type="text/html" href="https://xn--jrnvgshistoria-5hbd.se/index.php?title=Modul:Track_gauge&amp;diff=59543&amp;oldid=prev"/>
		<updated>2020-12-11T19:34:15Z</updated>

		<summary type="html">&lt;p&gt;templatestyles per &lt;a href=&quot;/index.php?title=MediaWiki-diskussion:Common.css&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;MediaWiki-diskussion:Common.css (sidan existerar inte)&quot;&gt;MediaWiki_talk:Common.css#visualhide_removal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny sida&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module implements the {{Track gauge}} template.&lt;br /&gt;
-- Data is in Module:Track gauge/data&lt;br /&gt;
local p = {}&lt;br /&gt;
local gaugeDataAll = nil&lt;br /&gt;
local dataPageName = 'Module:Track gauge/data' -- set /data/sandbox here&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
-- prepareArgs -- Normalise Arguments coming from an #invoke or from a module&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
local function prepareArgs(frame)&lt;br /&gt;
	local origArgs&lt;br /&gt;
	if frame == mw.getCurrentFrame() 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;
	local args = {}&lt;br /&gt;
	-- searchAlias is the cleaned value of args[1]. args[1] is kept as rawInput for error message&lt;br /&gt;
	local searchAlias = ''&lt;br /&gt;
	local rawDisp&lt;br /&gt;
	for k, v in pairs(origArgs) do&lt;br /&gt;
		if tonumber(k) == nil then -- Named argment&lt;br /&gt;
			if k == 'disp' then&lt;br /&gt;
				rawDisp = v -- Keep raw disp input to pass through plain (wiki)text&lt;br /&gt;
				args[k] = mw.ustring.lower(v)&lt;br /&gt;
			elseif k == 'first' then&lt;br /&gt;
				v = mw.ustring.lower(v)&lt;br /&gt;
				if v == 'met' or v == 'metric' then&lt;br /&gt;
					v = 'met'&lt;br /&gt;
				elseif v == 'imp' or v == 'imperial' then&lt;br /&gt;
					v = 'imp'&lt;br /&gt;
				else k = 'trashparam_first' end&lt;br /&gt;
				args[k] = v&lt;br /&gt;
			elseif k == 'nowrap' or k == 'wrap' then -- wrap=y deprecated; reading: nowrap=off&lt;br /&gt;
				v = mw.ustring.lower(v)&lt;br /&gt;
				if v == '' or v == 'off' or v == 'on' or v == 'all' then&lt;br /&gt;
				elseif v == 'inline' or (k == 'wrap' and v == 'y') then&lt;br /&gt;
					v = 'off'&lt;br /&gt;
				else v = '' end&lt;br /&gt;
				args['nowrap'] = v&lt;br /&gt;
			else&lt;br /&gt;
				args[k] = mw.ustring.lower(v)&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			args[k] = v -- Keep rawInput in [1] for error message&lt;br /&gt;
			if k == 1 then&lt;br /&gt;
			-- Unnamed argument, the alias to be searched&lt;br /&gt;
			-- Cleanup&lt;br /&gt;
				searchAlias = p.normaliseAliasInput(v)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	args['searchAlias'] = searchAlias&lt;br /&gt;
	if rawDisp then args['rawDisp'] = rawDisp end&lt;br /&gt;
	return args&lt;br /&gt;
end&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
-- normaliseAliasInput&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
function p.normaliseAliasInput(aliasIn)&lt;br /&gt;
	local a&lt;br /&gt;
	a = mw.ustring.lower(mw.ustring.gsub(aliasIn, '[%s%,]', ''))&lt;br /&gt;
	a = mw.ustring.gsub(a, '&amp;amp;nbsp;', '')&lt;br /&gt;
	a = mw.ustring.gsub(a, 'gauge$', '')&lt;br /&gt;
	a = mw.ustring.gsub(a, &amp;quot;'&amp;quot;, &amp;quot;ft&amp;quot;)&lt;br /&gt;
	a = mw.ustring.gsub(a, '&amp;quot;', 'in')&lt;br /&gt;
	a = mw.ustring.gsub(a, '⁄', '/')&lt;br /&gt;
	a = mw.ustring.gsub(a, '&amp;amp;frasl;', '/')&lt;br /&gt;
	return a	&lt;br /&gt;
end&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
-- debugReturnArgs -- Debug function.&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
function p.debugReturnArgs(frame)&lt;br /&gt;
	local args = prepareArgs(frame)&lt;br /&gt;
	local retArgs = {}&lt;br /&gt;
	for k, a in pairs(args) do&lt;br /&gt;
		table.insert(retArgs, k .. '=' .. a)&lt;br /&gt;
	end&lt;br /&gt;
	return 'Args: ' .. table.concat(retArgs, '; ')&lt;br /&gt;
end&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
-- getTrackGaugeEntry -- Find entry data for a single gauge (alias)&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
function p.getTrackGaugeEntry(searchAlias)&lt;br /&gt;
	gaugeDataAll = mw.loadData(dataPageName)&lt;br /&gt;
	if searchAlias == '' then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local tgEntry = nil&lt;br /&gt;
	for i, tgEntry in ipairs(gaugeDataAll) do&lt;br /&gt;
		for j, alias in ipairs(tgEntry.aliases) do&lt;br /&gt;
			if alias == searchAlias then&lt;br /&gt;
				return tgEntry&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
-- noWrap -- Add span tags to prevent a string from wrapping.&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
local function noWrap(s)&lt;br /&gt;
	return mw.ustring.format('&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;', s)&lt;br /&gt;
end&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
-- frac -- A slimmed-down version of the {{frac}} template (a nowrap is to be added with the unit)&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
local function frac(whole, num, den)&lt;br /&gt;
	local templatestyles = mw.getCurrentFrame():extensionTag{&lt;br /&gt;
		name = 'templatestyles', args = { src = 'Screen reader-only/styles.css' }&lt;br /&gt;
	}&lt;br /&gt;
	return mw.ustring.format(&lt;br /&gt;
		'&amp;lt;span class=&amp;quot;frac&amp;quot;&amp;gt;%s%s&amp;lt;sup&amp;gt;%s&amp;lt;/sup&amp;gt;&amp;amp;frasl;&amp;lt;sub&amp;gt;%s&amp;lt;/sub&amp;gt;&amp;lt;/span&amp;gt;',&lt;br /&gt;
		whole or '', whole and (templatestyles .. '&amp;lt;span class=&amp;quot;sr-only&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/span&amp;gt;') or '',&lt;br /&gt;
		num, den)&lt;br /&gt;
end&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
-- catMentions -- Wikicode for &amp;quot;article mentions gauge&amp;quot; categories&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
function p.catMentions(tgEntry, sortlabel, doReturn)&lt;br /&gt;
	local ns = 'Category:'&lt;br /&gt;
	local cat&lt;br /&gt;
&lt;br /&gt;
	if tgEntry == nil then&lt;br /&gt;
		-- Parent, the container cat&lt;br /&gt;
		cat = 'Articles that mention a specific track gauge'&lt;br /&gt;
	else&lt;br /&gt;
		cat = 'Articles that mention track gauge ' .. tgEntry.id .. ' mm'&lt;br /&gt;
	end&lt;br /&gt;
	-- Argument 'label' can be used to add a catsort. Catsort is not used (as of 20 May 2014)&lt;br /&gt;
	if sortlabel ~= nil then&lt;br /&gt;
		sortlabel = '|' .. sortlabel&lt;br /&gt;
	else&lt;br /&gt;
		sortlabel = ''&lt;br /&gt;
	end&lt;br /&gt;
	if doReturn ~= nil then&lt;br /&gt;
		if doReturn == 'fullpagename' then&lt;br /&gt;
			return ns .. cat&lt;br /&gt;
		elseif doReturn == 'pagename' then -- plaintext, no namespace&lt;br /&gt;
			return cat&lt;br /&gt;
		elseif doReturn == 'show' then -- colontrick&lt;br /&gt;
			return '[[:' .. ns .. cat .. sortlabel .. ']]'&lt;br /&gt;
		else -- unknown arg value&lt;br /&gt;
			return ns .. cat&lt;br /&gt;
		end&lt;br /&gt;
	else -- Returns straight categorisation (wikitext)&lt;br /&gt;
		return '[[' .. ns .. cat .. sortlabel .. ']]'&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
-- formatImp -- Formats imperial units size into a single text element&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
function p.formatImp(tgEntry, measurementToLink, setNowrap, addUnitlink)&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	local ft = tgEntry.ft&lt;br /&gt;
	if ft then&lt;br /&gt;
		local ftlink = addUnitlink and measurementToLink ~= 'imp' and '[[Foot (unit)|ft]]' or 'ft'&lt;br /&gt;
		table.insert(ret, mw.ustring.format('%s&amp;amp;nbsp;%s', ft, ftlink))&lt;br /&gt;
	end&lt;br /&gt;
	local inches = tgEntry['in']&lt;br /&gt;
	local num = tgEntry.num&lt;br /&gt;
	local den = tgEntry.den&lt;br /&gt;
	if inches and not num and not den then&lt;br /&gt;
		table.insert(ret, inches)&lt;br /&gt;
	elseif num and den then&lt;br /&gt;
		table.insert(ret, frac(inches, num, den))&lt;br /&gt;
	end&lt;br /&gt;
	if inches or num and den then&lt;br /&gt;
		local incheslink = addUnitlink and measurementToLink ~= 'imp' and '[[inch|in]]' or 'in'&lt;br /&gt;
		table.insert(ret, incheslink)&lt;br /&gt;
	end&lt;br /&gt;
	local gaugeSize&lt;br /&gt;
	if setNowrap then&lt;br /&gt;
		gaugeSize = noWrap(table.concat(ret, '&amp;amp;nbsp;'))&lt;br /&gt;
	else&lt;br /&gt;
		gaugeSize = table.concat(ret, '&amp;amp;nbsp;')&lt;br /&gt;
	end&lt;br /&gt;
	if measurementToLink == 'imp' and tgEntry.pagename ~= nil then&lt;br /&gt;
		return mw.ustring.format('[[%s|%s]]', tgEntry.pagename, gaugeSize)&lt;br /&gt;
	else&lt;br /&gt;
		return gaugeSize&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
-- formatMet -- Formats metric measurements into a single formatted text element. Public for autodocument&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
function p.formatMet(tgEntry, measurementToLink, setNowrap, addUnitlink)&lt;br /&gt;
	local m = tgEntry.m&lt;br /&gt;
	local gaugeSize&lt;br /&gt;
	if m then&lt;br /&gt;
		local mUnit = addUnitlink and measurementToLink ~= 'met' and '[[metre|m]]' or 'm'&lt;br /&gt;
		gaugeSize = mw.ustring.format('%s&amp;amp;nbsp;%s', m, mUnit)&lt;br /&gt;
	else&lt;br /&gt;
		local mm = tgEntry.mm&lt;br /&gt;
		mm = tonumber(mm)&lt;br /&gt;
		if mm then&lt;br /&gt;
			mm = mw.getContentLanguage():formatNum(mm)&lt;br /&gt;
		end&lt;br /&gt;
		local mmUnit = addUnitlink and measurementToLink ~= 'met' and '[[millimetre|mm]]' or 'mm'&lt;br /&gt;
		gaugeSize = mw.ustring.format('%s&amp;amp;nbsp;%s', mm, mmUnit)&lt;br /&gt;
	end&lt;br /&gt;
	if setNowrap then&lt;br /&gt;
		gaugeSize = noWrap(gaugeSize)&lt;br /&gt;
	end&lt;br /&gt;
	if measurementToLink == 'met' and tgEntry.pagename ~= nil then&lt;br /&gt;
		return mw.ustring.format('[[%s|%s]]', tgEntry.pagename, gaugeSize)&lt;br /&gt;
	else&lt;br /&gt;
		return gaugeSize&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
-- formatAltName&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
function formatAltName(tgEntry, addGaugeName, addGaugeNameLink, disp, setNowrap, engvar)&lt;br /&gt;
	-- Assumed: at least one to add is true.&lt;br /&gt;
	if tgEntry.name == nil then&lt;br /&gt;
		-- Not checked: link does exist alone&lt;br /&gt;
		return ''&lt;br /&gt;
	end&lt;br /&gt;
	local retAlt = {}&lt;br /&gt;
	if disp == 'br' then&lt;br /&gt;
		table.insert(retAlt, '&amp;lt;br /&amp;gt;')&lt;br /&gt;
	else&lt;br /&gt;
		table.insert(retAlt, ' ')&lt;br /&gt;
	end&lt;br /&gt;
	if setNowrap then&lt;br /&gt;
		table.insert(retAlt, '&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;')&lt;br /&gt;
	end&lt;br /&gt;
	if addGaugeNameLink then&lt;br /&gt;
		if engvar == 'en-us' then&lt;br /&gt;
			-- Current implementations (2016): metER for metRE (1000-met, 1009-met)&lt;br /&gt;
			table.insert(retAlt, tgEntry.en_US_link or tgEntry.link or tgEntry.name)&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(retAlt, tgEntry.link or tgEntry.name)&lt;br /&gt;
		end&lt;br /&gt;
	else -- so must be unlinked .name to add&lt;br /&gt;
			if engvar == 'en-us' then&lt;br /&gt;
			-- Current implementations (2016): metER for metRE (1000-met, 1009-met)&lt;br /&gt;
			table.insert(retAlt, tgEntry.en_US_name or tgEntry.name)&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(retAlt, tgEntry.name)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if setNowrap then --close tag&lt;br /&gt;
		table.insert(retAlt, '&amp;lt;/span&amp;gt;')&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(retAlt, '')&lt;br /&gt;
end&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
-- main -- The basic module&lt;br /&gt;
-----------------------------------------------------------------------------------&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	-- In general: the tgEntry object (from TG/data) is passed to the functions, while arguments are processed here.&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
	local args = prepareArgs(frame)&lt;br /&gt;
	local tgEntry = p.getTrackGaugeEntry(args.searchAlias)&lt;br /&gt;
&lt;br /&gt;
	-- Categorise &amp;amp; preview warning when no track gauge definition was found.&lt;br /&gt;
	if tgEntry == nil then&lt;br /&gt;
		local input = args[1] or ''&lt;br /&gt;
		local errorTail = ''&lt;br /&gt;
		&lt;br /&gt;
		if frame:preprocess(&amp;quot;{{REVISIONID}}&amp;quot;) == &amp;quot;&amp;quot; then &lt;br /&gt;
				errorTail = '&amp;lt;div class=&amp;quot;hatnote&amp;quot; style=&amp;quot;color:red&amp;quot;&amp;gt;&amp;lt;strong&amp;gt;Warning:&amp;lt;/strong&amp;gt; ' .. 'Track gauge ' .. (input .. ' ' or '') .. 'not in [[:Template:Track_gauge#List_of_defined_track_gauges|List of defined track gauges]] ([[Template talk:Track gauge|talk]]).' .. ' (This message is shown only in preview.)&amp;lt;/div&amp;gt;'&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if title:inNamespaces(0, 14) then -- mainspace and category space&lt;br /&gt;
			errorTail = errorTail .. &amp;quot;[[Category:Articles using template 'Track gauge' with unrecognized input]]&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		return input .. errorTail&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Check and set args &amp;amp; tgEntry props: disp, first, nowrap, first&lt;br /&gt;
	local disp = args.disp or ''&lt;br /&gt;
	local first = args.first or tgEntry.def1&lt;br /&gt;
	local unitlink = args.unitlink or ''&lt;br /&gt;
	local nowrap = args.nowrap or ''&lt;br /&gt;
	local setNowrapElement = (nowrap == '' or nowrap == 'off') -- To prevent nested nowrap tags&lt;br /&gt;
	local measurementToLink&lt;br /&gt;
	if args.lk == 'on' then&lt;br /&gt;
		if disp == '1' then&lt;br /&gt;
			measurementToLink = first -- Can make metric text links to the imp linked page&lt;br /&gt;
		else&lt;br /&gt;
			measurementToLink = tgEntry.def1 -- When first=swapped, this could link 2nd measure.&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- String the text elements together (compose the return table)&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	-- nowrap opening tag&lt;br /&gt;
	if nowrap == 'all' or nowrap == 'on' then&lt;br /&gt;
		table.insert(ret, '&amp;lt;span class=&amp;quot;nowrap&amp;quot;&amp;gt;')&lt;br /&gt;
	end&lt;br /&gt;
	-- First measure&lt;br /&gt;
	if first == 'met' then&lt;br /&gt;
		table.insert(ret,&lt;br /&gt;
			p.formatMet(tgEntry, measurementToLink, setNowrapElement, unitlink == 'on'))&lt;br /&gt;
	else&lt;br /&gt;
		table.insert(ret,&lt;br /&gt;
			p.formatImp(tgEntry, measurementToLink, setNowrapElement, unitlink == 'on'))&lt;br /&gt;
	end&lt;br /&gt;
	-- The joint and the second measure&lt;br /&gt;
	if disp == '1' then&lt;br /&gt;
	else&lt;br /&gt;
		local joinText = ''&lt;br /&gt;
		local closeDisp = ''&lt;br /&gt;
		if disp == 's' or disp == '/' then&lt;br /&gt;
			joinText = '&amp;amp;nbsp;/ ' --spaces&lt;br /&gt;
		elseif disp == 'br' then&lt;br /&gt;
			joinText = '&amp;lt;br /&amp;gt;('&lt;br /&gt;
			closeDisp = ')'&lt;br /&gt;
		elseif disp == '[' or disp == '[]' then&lt;br /&gt;
			joinText = ' ['&lt;br /&gt;
			closeDisp = ']'&lt;br /&gt;
		elseif disp ~= '' then -- Is anytext&lt;br /&gt;
			joinText = ' ' .. args['rawDisp'] .. ' '&lt;br /&gt;
		else&lt;br /&gt;
			joinText = ' ('&lt;br /&gt;
			closeDisp = ')'&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(ret, joinText)&lt;br /&gt;
		if first ~= 'met' then&lt;br /&gt;
			table.insert(ret,&lt;br /&gt;
				p.formatMet(tgEntry, measurementToLink, setNowrapElement, unitlink == 'on'))&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(ret,&lt;br /&gt;
				p.formatImp(tgEntry, measurementToLink, setNowrapElement, unitlink == 'on'))&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(ret, closeDisp) -- Could be ''&lt;br /&gt;
	end&lt;br /&gt;
	if nowrap == 'on' then -- Closing tag&lt;br /&gt;
		table.insert(ret, '&amp;lt;/span&amp;gt;')&lt;br /&gt;
	end&lt;br /&gt;
	-- Alternative name&lt;br /&gt;
	if args.al == 'on' or args.allk == 'on' then&lt;br /&gt;
		local setNowrapAltname = (nowrap == '' or nowrap == 'on') -- Logic applied to prevent nested nowrap tags&lt;br /&gt;
		table.insert(ret, formatAltName(tgEntry, args.al == 'on', args.allk == 'on', disp, setNowrapAltname, args.engvar))&lt;br /&gt;
	end&lt;br /&gt;
	-- Closing nowrap tag&lt;br /&gt;
	if nowrap == 'all' then&lt;br /&gt;
		table.insert(ret, '&amp;lt;/span&amp;gt;')&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Category mentionings (maintenance)&lt;br /&gt;
	if args.addcat or '' == 'no' then&lt;br /&gt;
		-- No categorization&lt;br /&gt;
	elseif title:inNamespaces(0) then&lt;br /&gt;
		-- switched off per [[Wikipedia:Categories_for_discussion/Log/2016_December_6#Category:Articles_that_mention_a_specific_track_gauge]]&lt;br /&gt;
		-- 2016-12-19&lt;br /&gt;
		-- table.insert(ret, p.catMentions(tgEntry))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Now sting the table together&lt;br /&gt;
	return table.concat(ret, '')&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
--20161219: maintenance categorisation switched off per CfD&lt;br /&gt;
--20170602: fix bug, show name when al=on&lt;br /&gt;
--20180708: show preview warning when gauge is not in list&lt;br /&gt;
--20190124: with disp=/ (slash) value separator: surround by spaces&lt;/div&gt;</summary>
		<author><name>jarnvagsdata&gt;Izno</name></author>
	</entry>
</feed>