Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Humanipedia
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Module:Infobox road
Module
Discussion
English
Read
Edit source
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit source
View history
General
What links here
Related changes
Special pages
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local p = {} local getArgs = require('Module:Arguments').getArgs local util = require("Module:Road data/util") local yesno = require('Module:Yesno') local langModule = require('Module:Lang') local routeModule = require("Module:Infobox road/route") local parserModule = require("Module:Road data/parser") local parser = parserModule.parser local format = mw.ustring.format local frame = mw.getCurrentFrame() local function country(args) local state = args.state or args.province local country local countryModule = mw.loadData("Module:Road data/countrymask") local country = args.country or countryModule[state] return country end -- HEADER COLORS function p.headerStyle(frame) local args = getArgs(frame) local header if args.header_type == nil then header = args.header_type else header = string.lower(args.header_type) end local deleted = args.decommissioned or args.deleted or header == "former" local uc = header == "under construction" or header == "const" or header == "uc" local minor = header == "minor" local hist = header == "hist" or header == "historic" or header == "historical" or header == "scenic" local color = parser(args, 'color') or args['header_color'] local freeway = header == "freeway" if freeway then return "header-MUTCDblue" elseif uc then return "header-uc" elseif minor then return "header-minor" elseif deleted and header == 'hist' or deleted and color == 'hist' then return "header-deleted-hist" elseif deleted then return "header-deleted" elseif hist then return "header-hist" elseif color then return "header-" .. color elseif args.state or args.province or args.country then local country = country(args) return "header-" .. country or "header-default" else return "header-default" end end -- SECOND IMAGE local function photo(args) local country = country(args) local photo = args.photo or args.image local width = args.photo_wide or args.image_width or "290px" local alt = args.photo_alt or args.image_alt or photo if photo == nil then return nil elseif country == "USA" then return nil else return string.format('[[File:%s|%s|alt=%s]]', photo, width, alt) end end function p.photo(frame) local args = getArgs(frame) return photo(args) end -- TRANSLATION local function translate(args, lang) local lang = parser(args, 'lang') or args.lang or 'none' local translation = args.translation or parser(args, 'translation') or '' if country(args) == "PAK" and translation ~= '' then local route = args.route if route ~= nil then local arabicModule = require( "Module:Convert to eastern arabic numerals" ) local arabic = arabicModule._convert({route}) local translated = string.gsub( translation, route, arabic) return frame:expandTemplate{title = 'Nastaliq', args = {translated}} else return frame:expandTemplate{title = 'Nastaliq', args = {translation}} end elseif translation ~= '' and lang == 'none' then return translation elseif country(args) == "CHN" and args.type == "Expwy" then local trans = require( "Module:Road data/masks/CHN/Expwy translations" ) local route = args.route return langModule._lang({lang, trans[route]}) elseif country(args) == "HUN" then local nominal = require( "Module:Road data/masks/HUN" ) local routeNum local leading if string.len(args.route) > 2 then routeNum = string.match(args.route, "%d%d$", 0) leading = string.match(args.route, "(%d*)%d%d$", 0) else routeNum = args.route leading = '' end if args.type == "M" then return langModule._lang({"hu", "M" .. leading .. nominal[routeNum] .. " autópálya"}) elseif args.type == "Mb" then return langModule._lang({"hu", "M" .. leading .. nominal[routeNum] .. " autóút"}) elseif args.type == "MR" then return langModule._lang({"hu", leading .. nominal[routeNum] .. " főút"}) elseif args.type == "Mb" then return langModule._lang({"hu", leading .. nominal[routeNum] .. " közút"}) end elseif lang == "ar" and translation ~= '' then local route = args.route local arabicModule = require( "Module:Convert to eastern arabic numerals" ) local arabic = arabicModule._convert({route}) local translated = string.gsub( translation, route, arabic) return langModule._lang({lang, translated}) elseif translation ~= '' and lang ~= 'none' then return langModule._lang({lang, translation}) else return nil end end function p.translate(frame) local pframe = frame:getParent() local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself local args = pframe.args -- the arguments passed TO the template, in the wikitext that transcludes the template local lang = config.lang return translate(args, lang) end -- MAINTAINED BY local function maint(args) local maint = args.maint or parser(args, 'maint') or '' if maint == "none" or maint == '' then return nil else return "Maintained by " .. maint end end function p.maint(frame) local args = getArgs(frame) return maint(args) end -- DEFINED BY LAW local function law(args) local law = parser(args, 'law') or '' if args.section == '' then return nil else return "Defined by " .. law end end function p.law(frame) local args = getArgs(frame) return law(args) end -- EXISTED function p._existed(args) local formed = args.established or args.formed or '' local deleted = args.decommissioned or args.deleted or '' if formed == '' then return nil elseif deleted == '' then return formed .. "–present" else return formed .. "–" .. deleted end end function p.existed(frame) local args = getArgs(frame) return p._existed(args) end -- TIME PERIOD local function period(args) local infobox_args = {} infobox_args['bodystyle'] = 'display:inline-table;' infobox_args['child'] = 'yes' infobox_args['decat'] = 'yes' infobox_args['label1'] = "Time period" infobox_args['data1'] = args.time_period if args.time_period then infobox_args['label2'] = "Cultural significance" infobox_args['data2'] = args.significance infobox_args['label3'] = "Known for" infobox_args['data3'] = args.known_for infobox_args['label4'] = "Related routes" infobox_args['data4'] = args.related else infobox_args['label3'] = "Known for" infobox_args['data3'] = args.known_for end return frame:expandTemplate ({title='Infobox', args = infobox_args}) end local function period_params(args) if args.time_period or args.known_for then return true else return false end end function p.period(frame) local args = getArgs(frame) if period_params(args) == false then return nil else return period(args) end end -- ALLOCATION local function allocation(args) local country = country(args) if country == "AUS" then return "[[Route number#Australia|Allocation]]" else return "Component<br>highways" end end function p.allocation(frame) local args = getArgs(frame) return allocation(args) end -- SPUR OF local function spurOf(args) local state = args.state or args.province local country = args.country local county = args.county local parentType = args.spur_type local parentRoute = args.spur_of local aux = parser(args, 'aux') or "Auxiliary route" or nil local jct = frame:expandTemplate{ title = 'jct', args = { state = state, country = country, county1 = county, parentType, parentRoute, noshield1 = "yes" } } if not parentType and not parentRoute then return nil elseif type(aux) == "table" then return "Auxiliary route of " .. jct else return tostring(aux) .. " of " .. jct end end function p.spurOf(frame) local args = getArgs(frame) return spurOf(args) end -- PART OF local function partOf(args) if args["e-road"] or args.ahn or args.tahn or args.mrn then local infobox_args = {} infobox_args['bodystyle'] = 'display:inline-table;' infobox_args['child'] = 'yes' infobox_args['decat'] = 'yes' if args["e-road"] then local eshield = args["e-road-shield"] or '' infobox_args['data1'] = eshield .. " Part of " .. args["e-road"] end if args.ahn then local ashield = args["ahn-shield"] or '' infobox_args['data2'] = ashield .. " Part of " .. args.ahn end if args.tahn then local tshield = args["tahn-shield"] or '' infobox_args['data3'] = tshield .. " Part of " .. args.tahn end if args.mrn then local mshield = args["mrn-shield"] or '' infobox_args['data4'] = mshield .. " Part of " .. args.mrn end return frame:expandTemplate ({title='Infobox', args = infobox_args}) else return nil end end function p.partOf(frame) local args = getArgs(frame) return partOf(args) end --BROWSE LINKS local function browse(args) if args.nobrowse then return nil end local previousRoute = args.previous_route local nextRoute = args.next_route if previousRoute or nextRoute then local boxModule = require "Module:Road data/browse" local primary = boxModule._browse(args) local tblModule = require "Module:Road data/browsetable" return tblModule._browsetable(primary) end end function p.browse(frame) local args = getArgs(frame) return browse(args) end local function extended(args) local extended = args.browse if args.nobrowse or extended == nil then return nil else local tblModule = require "Module:Road data/browsetable" -- Negative margin to counteract infobox border-spacing return tblModule._browsetable(extended, 'margin-top:-3px') end end function p.extended(frame) local args = getArgs(frame) return extended(args) end -- HIGHWAY SYSTEM LINKS local function system(args) if args.system1 then local infobox_args = { ['child'] = "yes", ['decat'] = "yes", ['bodystyle'] = "border-collapse:collapse;" } local i = 1 while (1) do local systemClassn = "class" .. i local systemDatan = "data" .. i local systemArgn = args['system' .. i] infobox_args[systemClassn] = "hlist" infobox_args[systemDatan] = systemArgn if i == 10 then break else i = i + 1 end end return frame:expandTemplate ({title='Infobox', args = infobox_args}) end end function p.system(frame) local args = getArgs(frame) return system(args) end -- ROUTE INFORMATION HEADER local function info(args) local maint = maint(args) local law = law(args) local period = period_params(args) local existed = args.established or args.formed or nil local spur = args.spur_type or args.spur_of or nil local part = partOf(args) if period == true or spur ~= nil or part ~= nil or existed ~= nil or maint ~= nil or args.section or args.length_mi or args.length_km or args.allocation or args.history or args.restrictions or args.tourist or args.status or args.margary then return "Route information" else return nil end end function p.info(frame) local args = getArgs(frame) return info(args) end -- HIGHWAY SYSTEM HEADER local function highwaySystem(args) if args.nobrowse then return nil end local country = country(args) or args.countries if country == nil then return nil elseif country == "GBR" or country == "ENG" or country == "NIR" or country == "SCT" or country == "WLS" or country == "GGY" or country == "IMN" or country == "JEY" or country == "AIA" or country == "BMU" or country == "IOT" or country == "VGB" or country == "CYM" or country == "FLK" or country == "GIB" or country == "MSR" or country == "PCN" or country == "SHN" or country == "SGS" or country == "TCA" then return "Road network" else return "Highway system" end end function p.highwaySystem(frame) local args = getArgs(frame) return highwaySystem(args) end return p
Summary:
Please note that all contributions to Humanipedia may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Humanipedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:High-use
(
edit
)
Template:Lua
(
edit
)
Template:Sandbox other
(
edit
)
Template:Template link
(
edit
)
Template:Tl
(
edit
)
Module:Infobox road/doc
(
edit
)
Module:Lua banner
(
edit
)
Module:String
(
edit
)