Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:LACMTA icon

Permanently protected module
From Wikipedia, the free encyclopedia

local getArgs = require('Module:Arguments').getArgs
 
local p = {}
 
local function makeInvokeFunction(funcName)
	-- makes a function that can be returned from #invoke, using
	-- [[Module:Arguments]].
	return function (frame)
		local args = getArgs(frame, {parentOnly = true})
		return p[funcName](args)
	end
end
 
local function colorboxLinked(color,text,link)
	return '[['..link..'|<span role="img" aria-label="'..text..'" style="border:1px solid darkgray;-ms-user-select:none;-webkit-user-select:none;user-select:none;background-color:'..color..'" title="'..text..'">&nbsp;&nbsp;&nbsp;&nbsp;</span>]]&nbsp;'
end
 
local function colorboxUnlinked(color)
	return '<span style="border:1px solid darkgray;-ms-user-select:none;-webkit-user-select:none;user-select:none;background-color:'..color..'">&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;'
end

local t1 = {
	['A Line'] = { 'a', 'a line', 'line a', 'blue', 'blue line', icon='img_circle', dab=true, },
	['B Line'] = { 'b', 'b line', 'line b', 'red', 'red line', icon='img_circle', dab=true, },
	['C Line'] = { 'c', 'c line', 'line c', 'green', 'green line', icon='img_circle', dab=true, },	
	['D Line'] = { 'd', 'd line', 'line d', 'purple', 'purple line', icon='img_circle', dab=true, },
	['E Line'] = { 'e', 'e line', 'line e', 'expo', 'expo line', icon='img_circle', dab=true, },	
	['G Line'] = { 'g', 'g line', 'line g', 'orange', 'orange line', icon='img_square', dab=true, },	
	['J Line'] = { 'j', 'j line', 'line j', 'silver', 'silver line', icon='img_square', dab=true, },	
	['K Line'] = { 'k', 'k line', 'line k', 'crenshaw', 'crenshaw line', 'crenshaw/lax', 'crenshaw/lax line', icon='img_circle', dab=true, },
	['L Line'] = { 'l', 'l line', 'line l', 'gold', 'gold line', icon='img_circle', dab=true, },	
	['Harbor Transitway'] = { 'harbor', 'harbor transitway', color='#B8860B', icon='colorbox', },
	['El Monte Busway'] = { 'el monte', 'el monte busway', color='#B8AD93', icon='colorbox', },
	['Regional Connector'] = { 'regional', 'regional connector', 'regional connector transit corridor', color='#604020', icon='colorbox', },
}
 
p.icon = makeInvokeFunction('_icon')
 
function p._icon(args)
	local link
	local code = args[1] or ''
	local text = args[2]
	if text then text = '('..text..')' else text = '' end
	local showtext = args.showtext
	local alt
	for k, v in pairs(t1) do
		for _, name in ipairs(v) do
			if mw.ustring.lower(code) == name then
				if v.dab == true then
					if showtext then
						link = ''
						alt = 'alt='
						showtext = '&nbsp;[['..k..' (Los Angeles Metro)|'..k..']]'
					else
						link = k..' (Los Angeles Metro)'
						alt = k
						showtext = ''
					end
				else
					if showtext then
						link = ''
						alt = 'alt='
						showtext = '[['..k..']]&nbsp;'
					else
						link = k
						alt = k
						showtext = ''
					end
				end
				if v.icon == 'colorbox' then
					if showtext then
						return colorboxUnlinked(v.color)..showtext..text
					else
						return colorboxLinked(v.color,k,k)..text
					end
				elseif v.icon == 'img_circle' then
					return '[[File:LACMTA Circle '..k..'.svg|'..(args.size or 17)..'px|link='..link..'|'..alt..']]'..showtext..text
				elseif v.icon == 'img_square' then
					return '[[File:LACMTA Square '..k..'.svg|'..(args.size or 17)..'px|link='..link..'|'..alt..']]'..showtext..text
				end
			end
		end
	end
	return colorboxLinked('#fff',code..' Line',code..' Line (Los Angeles Metro)')..text
end
 
return p