Kontent qismiga oʻtish

Modul:Infobox road/route

ZiyoSfera, erkin ensiklopediya

This module pulls data from road data strings, such as Module:Road data/strings/USA, and passes it through three functions that draw the necessary route marker images and displays the route name in {{Infobox road}}.

Output examples
Description Output Output (sandbox)
Florida Both Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
No parameters Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Only |marker_image=

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Florida |marker_image=none Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Only |name=

Autoroute 10

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Australia Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
New Zealand Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Interstate |name=

Interstate 10 marker

Motorway 10

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Interstate (Infobox road small) Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
France Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
UK Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Brazil Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Chile Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
BC

Highway 16 marker Highway 16 marker

Highway 16

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Saskatchewan

Saskatchewan Rural Municipal Route.svg

Highway 600 marker

Highway 600

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Quebec

Autoroute 35 marker

Autoroute 35

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Ontario

Highway 407 marker

Highway 407

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
ON Secondary

Highway 522 marker

Highway 522

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
ON Tertiary

Highway 800 marker

Highway 800

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
NWT Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Manitoba Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Tennessee Dual

State Route 1 marker State Route 1 marker

State Route 1

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
DE/MD Dual Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Puerto Rico type=PR Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Puerto Rico type=Urban Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Wisconsin

State Trunk Highway 243 marker State Trunk Highway 243 marker

State Trunk Highway 243

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
North Carolina

Georgia State Route 246 and North Carolina Highway 106 marker Georgia State Route 246 and North Carolina Highway 106 marker

Georgia State Route 246 and
North Carolina Highway 106

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Nevada BLSR Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Utah BLSR Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Texas Both

State Highway 1 marker State Highway 1 marker

State Highway 1

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Texas tollway

Pres. George Bush Turnpike marker

Pres. George Bush Turnpike

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
1926 USH

U.S. Route 6 marker

U.S. Route 6

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
1948 USH

U.S. Route 40 marker

U.S. Route 40

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Special route Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Special route (style=small)

Business plate.svg

Business US Highway 131 marker

Business US Highway 131

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Alaska |marker_image= Lua xatosi at line 116: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
DC

District of Columbia Route 295 marker

District of Columbia Route 295

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Mexico Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Sonora Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
GRR

Great River Road marker

Great River Road

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Tour

Lake Michigan Circle Tour marker

Lake Michigan Circle Tour

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Turnpike

Kansas Turnpike marker

Kansas Turnpike

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
County road Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Parish road Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
CSAH Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Secondary

Secondary Highway 206 marker

Secondary Highway 206

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Supplemental

Route BB marker

Route BB

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Oregon

Oregon Route 35 marker

Oregon Route 35

Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Oregon Highway Lua xatosi in package.lua at line 80: module 'Module:Road data/masks/USA/OR' not found. Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Belgium Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.
Belgium Lua xatosi at line 107: bad argument #1 to 'wikitext' (string or number expected, got boolean). Skript xatosi: „Infobox road/route/sandbox“ moduli yoʻq.

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
			sizes[i] = v
			res[i] = 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