Permanently protected module
From Wikipedia, the free encyclopedia


local p = {} 



local format = mw.ustring.format

require('strict')

local getArgs = require('Module:Arguments').getArgs	

local parserModule = require 'Module:Road data/parser'

local parser = parserModule.parser



local function banner(args, style)

	if args.marker_image then return nil end

	

	local bannerSize

		if style == 'small' then

			bannerSize = "40px"

		else

			bannerSize = "72px"

		end

	

	local shield = parser(args, 'banner')

	local alt = parser(args, 'banner')



	if not shield or shield == '' then

		return nil

	else

		return string.format('[[File:%s|%s|alt=%s]]', shield, bannerSize, alt)

	end

end







local function shield(args, style)



	if args.marker_image then return args.marker_image end

	

	local horizontalSize

	local verticalSize

		if style == 'small' then

			horizontalSize = "90x40px"

			verticalSize = "40x90px"

		else

			horizontalSize = "154x72px"

			verticalSize = "72x154px"

		end



	local shield = parser(args, 'shieldmain') or parser(args, 'shield') or ''

	

	local label = parser(args, 'name') or parser(args, 'abbr') or ''

	local alt = label .. ' marker'

	local orientation = parser(args, 'orientation')

	

	local function simpleSize(args)

		if orientation and orientation == 'upright' then

			return verticalSize

		else

			return horizontalSize

		end

	end

	

	local function shield_size(image_name, orientation)

		local image = 'File:' .. image_name

		local title = mw.title.new(image)



		local width = title.file.width

		local height = title.file.height

		

		if (orientation and orientation == 'upright') or height > width then

			return verticalSize

		else

			return horizontalSize

		end

	end

	

	

	

	if not shield or shield == '' then

		return nil

	elseif type(shield) == 'table' then

		local res = {}

		local sizes = {}

		for i,v in ipairs(shield) do

			sizesi = v

			resi = string.format('[[File:%s|%s|alt=%s]]', v, shield_size(v), alt)

		end

    	return table.concat(res, ' ')

	else

		return string.format('[[File:%s|%s|alt=%s]]', shield, simpleSize(args), alt)

	end

end



-- Links/abbreviations

local function name(args)

	local name = args.name or parser(args, 'name') or parser(args, 'abbr')

	return name

end



function p._routeInfo(args)

	

	local style = args.style

	local banner = banner(args, style)

	local shield = shield(args, style)

	local name = name(args)



	if not args.type and not args.route and not args.name and not args.marker_image then

		local container = nil

	else local container = mw.html.create('div'):cssText('text-align:center;')

		if shield == nil or args.marker_image == 'none' or args.name and not args.marker_image and not args.type and not args.route then 

			container:tag('p'):cssText('margin:0.1em;'):wikitext(name)

		elseif args.marker_image ~= '' and args.name == '' or args.name == nil and not args.type and not args.route then

			container:tag('p'):cssText('margin:0.1em;'):wikitext(shield)

		elseif args.country == 'AUS' then

			container:tag('p'):cssText('margin:0.1em;'):wikitext(name)

			container:tag('p'):cssText('margin:0.1em 0 0 0;'):wikitext(shield)

		else

			container:tag('p'):cssText('margin:0.1em 0 0 0;'):wikitext(banner)

			container:tag('p'):cssText('margin:0 0 0.1em;'):wikitext(shield)

			container:tag('p'):cssText('margin:0.1em;'):wikitext(name)

		end

		return tostring(container)

	end

end



function p.routeInfo(frame)

	local args = getArgs(frame)

	return p._routeInfo(args);

end



function p._shields(args)

	

	local style = args.style

	local banner = banner(args, style)

	local shield = shield(args, style)



	if not args.type and not args.route and not args.name and not args.marker_image then

		local container = nil

	else local container = mw.html.create('div'):cssText('text-align:center; display: inline-block; vertical-align: baseline; line-height: 0;')

		container:tag('p'):cssText('margin:0.1em 0 0 0;'):wikitext(banner)

		container:tag('p'):cssText('margin:0 0 0.1em;'):wikitext(shield)

	return tostring(container)

	end

end



function p.shields(frame)

	local args = getArgs(frame)

	return p._shields(args);

end





function p._names(args)

	local name = name(args)

	return name

end



function p.names(frame)

	local args = getArgs(frame)

	return p._names(args);

end



return p
Permanently protected module
From Wikipedia, the free encyclopedia


local p = {} 



local format = mw.ustring.format

require('strict')

local getArgs = require('Module:Arguments').getArgs	

local parserModule = require 'Module:Road data/parser'

local parser = parserModule.parser



local function banner(args, style)

	if args.marker_image then return nil end

	

	local bannerSize

		if style == 'small' then

			bannerSize = "40px"

		else

			bannerSize = "72px"

		end

	

	local shield = parser(args, 'banner')

	local alt = parser(args, 'banner')



	if not shield or shield == '' then

		return nil

	else

		return string.format('[[File:%s|%s|alt=%s]]', shield, bannerSize, alt)

	end

end







local function shield(args, style)



	if args.marker_image then return args.marker_image end

	

	local horizontalSize

	local verticalSize

		if style == 'small' then

			horizontalSize = "90x40px"

			verticalSize = "40x90px"

		else

			horizontalSize = "154x72px"

			verticalSize = "72x154px"

		end



	local shield = parser(args, 'shieldmain') or parser(args, 'shield') or ''

	

	local label = parser(args, 'name') or parser(args, 'abbr') or ''

	local alt = label .. ' marker'

	local orientation = parser(args, 'orientation')

	

	local function simpleSize(args)

		if orientation and orientation == 'upright' then

			return verticalSize

		else

			return horizontalSize

		end

	end

	

	local function shield_size(image_name, orientation)

		local image = 'File:' .. image_name

		local title = mw.title.new(image)



		local width = title.file.width

		local height = title.file.height

		

		if (orientation and orientation == 'upright') or height > width then

			return verticalSize

		else

			return horizontalSize

		end

	end

	

	

	

	if not shield or shield == '' then

		return nil

	elseif type(shield) == 'table' then

		local res = {}

		local sizes = {}

		for i,v in ipairs(shield) do

			sizesi = v

			resi = string.format('[[File:%s|%s|alt=%s]]', v, shield_size(v), alt)

		end

    	return table.concat(res, ' ')

	else

		return string.format('[[File:%s|%s|alt=%s]]', shield, simpleSize(args), alt)

	end

end



-- Links/abbreviations

local function name(args)

	local name = args.name or parser(args, 'name') or parser(args, 'abbr')

	return name

end



function p._routeInfo(args)

	

	local style = args.style

	local banner = banner(args, style)

	local shield = shield(args, style)

	local name = name(args)



	if not args.type and not args.route and not args.name and not args.marker_image then

		local container = nil

	else local container = mw.html.create('div'):cssText('text-align:center;')

		if shield == nil or args.marker_image == 'none' or args.name and not args.marker_image and not args.type and not args.route then 

			container:tag('p'):cssText('margin:0.1em;'):wikitext(name)

		elseif args.marker_image ~= '' and args.name == '' or args.name == nil and not args.type and not args.route then

			container:tag('p'):cssText('margin:0.1em;'):wikitext(shield)

		elseif args.country == 'AUS' then

			container:tag('p'):cssText('margin:0.1em;'):wikitext(name)

			container:tag('p'):cssText('margin:0.1em 0 0 0;'):wikitext(shield)

		else

			container:tag('p'):cssText('margin:0.1em 0 0 0;'):wikitext(banner)

			container:tag('p'):cssText('margin:0 0 0.1em;'):wikitext(shield)

			container:tag('p'):cssText('margin:0.1em;'):wikitext(name)

		end

		return tostring(container)

	end

end



function p.routeInfo(frame)

	local args = getArgs(frame)

	return p._routeInfo(args);

end



function p._shields(args)

	

	local style = args.style

	local banner = banner(args, style)

	local shield = shield(args, style)



	if not args.type and not args.route and not args.name and not args.marker_image then

		local container = nil

	else local container = mw.html.create('div'):cssText('text-align:center; display: inline-block; vertical-align: baseline; line-height: 0;')

		container:tag('p'):cssText('margin:0.1em 0 0 0;'):wikitext(banner)

		container:tag('p'):cssText('margin:0 0 0.1em;'):wikitext(shield)

	return tostring(container)

	end

end



function p.shields(frame)

	local args = getArgs(frame)

	return p._shields(args);

end





function p._names(args)

	local name = name(args)

	return name

end



function p.names(frame)

	local args = getArgs(frame)

	return p._names(args);

end



return p

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook