Jump to content
Wikipedia The Free Encyclopedia

Module:Infobox road

From Wikipedia, the free encyclopedia
Module documentation[view] [edit] [history] [purge]
Warning This Lua module is used on approximately 26,000 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them.

This module implements {{infobox road }}. Please see the template documentation for further explanation.

The above documentation is transcluded from Module:Infobox road/doc. (edit | history)
Editors can experiment in this module's sandbox (edit | diff) and testcases (create) pages.
Subpages of this module.

 localp={}
 localgetArgs=require('Module:Arguments').getArgs
 localutil=require("Module:Road data/util")
 localyesno=require('Module:Yesno')
 locallangModule=require('Module:Lang')
 localrouteModule=require("Module:Infobox road/route")
 localparserModule=require("Module:Road data/parser")
 localparser=parserModule.parser
 localformat=mw.ustring.format
 localframe=mw.getCurrentFrame()

 localfunctioncountry(args)
 localstate=args.stateorargs.province
 localcountry
 localcountryModule=mw.loadData("Module:Road data/countrymask")
 localcountry=args.countryorcountryModule[state]

 returncountry
 end

 -- HEADER COLORS

 functionp.headerStyle(frame)
 localargs=getArgs(frame)
 localheader
 ifargs.header_type==nilthen
 header=args.header_type
 else
 header=string.lower(args.header_type)
 end

 localdeleted=args.decommissionedorargs.deletedorheader=="former"
 localuc=header=="under construction"orheader=="const"orheader=="uc"
 localminor=header=="minor"
 localhist=header=="hist"orheader=="historic"orheader=="historical"orheader=="scenic"
 localcolor=parser(args,'color')orargs['header_color']
 localfreeway=header=="freeway"

 iffreewaythen
 return"header-MUTCDblue"
 elseifucthen
 return"header-uc"
 elseifminorthen
 return"header-minor"
 elseifdeletedandheader=='hist'ordeletedandcolor=='hist'then
 return"header-deleted-hist"
 elseifdeletedthen
 return"header-deleted"
 elseifhistthen
 return"header-hist"
 elseifcolorthen
 return"header-"..color
 elseifargs.stateorargs.provinceorargs.countrythen
 localcountry=country(args)
 return"header-"..countryor"header-default"
 else
 return"header-default"
 end
 end

 -- SECOND IMAGE

 localfunctionphoto(args)
 localcountry=country(args)
 localphoto=args.photoorargs.image
 localwidth=args.photo_wideorargs.image_widthor"290px"
 localalt=args.photo_altorargs.image_altorphoto

 ifphoto==nilthen
 returnnil
 elseifcountry=="USA"then
 returnnil
 elsereturnstring.format('[[File:%s|%s|alt=%s]]',photo,width,alt)
 end
 end

 functionp.photo(frame)
 localargs=getArgs(frame)
 returnphoto(args)
 end

 -- TRANSLATION

 localfunctiontranslate(args,lang)
 locallang=parser(args,'lang')orargs.langor'none'
 localtranslation=args.translationorparser(args,'translation')or''

 ifcountry(args)=="PAK"andtranslation~=''then
 localroute=args.route

 ifroute~=nilthen
 localarabicModule=require("Module:Convert to eastern arabic numerals")
 localarabic=arabicModule._convert({route})
 localtranslated=string.gsub(translation,route,arabic)

 returnframe:expandTemplate{title='Nastaliq',args={translated}}
 else
 returnframe:expandTemplate{title='Nastaliq',args={translation}}
 end
 elseiftranslation~=''andlang=='none'then
 returntranslation
 elseifcountry(args)=="CHN"andargs.type=="Expwy"then
 localtrans=require("Module:Road data/masks/CHN/Expwy translations")
 localroute=args.route

 returnlangModule._lang({lang,trans[route]})
 elseifcountry(args)=="HUN"then
 localnominal=require("Module:Road data/masks/HUN")
 localrouteNum
 localleading

 ifstring.len(args.route)>2then
 routeNum=string.match(args.route,"%d%d$",0)
 leading=string.match(args.route,"(%d*)%d%d$",0)
 else
 routeNum=args.route
 leading=''
 end

 ifargs.type=="M"then
 returnlangModule._lang({"hu","M"..leading..nominal[routeNum].." autópálya"})
 elseifargs.type=="Mb"then
 returnlangModule._lang({"hu","M"..leading..nominal[routeNum].." autóút"})
 elseifargs.type=="MR"then
 returnlangModule._lang({"hu",leading..nominal[routeNum].." főút"})
 elseifargs.type=="Mb"then
 returnlangModule._lang({"hu",leading..nominal[routeNum].." közút"})
 end
 elseiflang=="ar"andtranslation~=''then
 localroute=args.route
 localarabicModule=require("Module:Convert to eastern arabic numerals")
 localarabic=arabicModule._convert({route})
 localtranslated=string.gsub(translation,route,arabic)

 returnlangModule._lang({lang,translated})
 elseiftranslation~=''andlang~='none'then
 returnlangModule._lang({lang,translation})
 else
 returnnil
 end
 end

 functionp.translate(frame)
 localpframe=frame:getParent()
 localconfig=frame.args-- the arguments passed BY the template, in the wikitext of the template itself
 localargs=pframe.args-- the arguments passed TO the template, in the wikitext that transcludes the template

 locallang=config.lang
 returntranslate(args,lang)
 end

 -- MAINTAINED BY

 localfunctionmaint(args)
 localmaint=args.maintorparser(args,'maint')or''
 ifmaint=="none"ormaint==''then
 returnnil
 else
 return"Maintained by "..maint
 end
 end

 functionp.maint(frame)
 localargs=getArgs(frame)
 returnmaint(args)
 end

 -- DEFINED BY LAW

 localfunctionlaw(args)
 locallaw=parser(args,'law')or''
 ifargs.section==''then
 returnnil
 else
 return"Defined by "..law
 end
 end

 functionp.law(frame)
 localargs=getArgs(frame)
 returnlaw(args)
 end

 -- EXISTED

 functionp._existed(args)
 localformed=args.establishedorargs.formedor''
 localdeleted=args.decommissionedorargs.deletedor''

 ifformed==''then
 returnnil
 elseifdeleted==''then
 returnformed.."–present"
 else
 returnformed.."–"..deleted
 end
 end

 functionp.existed(frame)
 localargs=getArgs(frame)
 returnp._existed(args)
 end

 -- TIME PERIOD

 localfunctionperiod(args)

 localinfobox_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

 ifargs.time_periodthen
 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

 returnframe:expandTemplate({title='Infobox',args=infobox_args})
 end

 localfunctionperiod_params(args)

 ifargs.time_periodorargs.known_forthen
 returntrue
 else
 returnfalse
 end
 end

 functionp.period(frame)
 localargs=getArgs(frame)

 ifperiod_params(args)==falsethen
 returnnil
 else
 returnperiod(args)
 end
 end

 -- ALLOCATION

 localfunctionallocation(args)
 localcountry=country(args)

 ifcountry=="AUS"then
 return"[[Route number#Australia|Allocation]]"
 elsereturn"Component<br>highways"
 end
 end

 functionp.allocation(frame)
 localargs=getArgs(frame)
 returnallocation(args)
 end

 -- SPUR OF

 localfunctionspurOf(args)
 localstate=args.stateorargs.province
 localcountry=args.country
 localcounty=args.county
 localparentType=args.spur_type
 localparentRoute=args.spur_of
 localaux=parser(args,'aux')or"Auxiliary route"ornil
 localjct=frame:expandTemplate{
 title='jct',args={
 state=state,
 country=country,
 county1=county,
 parentType,
 parentRoute,
 noshield1="yes"
 }
 }

 ifnotparentTypeandnotparentRoutethen
 returnnil
 elseiftype(aux)=="table"then
 return"Auxiliary route of "..jct
 elsereturntostring(aux).." of "..jct
 end
 end

 functionp.spurOf(frame)
 localargs=getArgs(frame)
 returnspurOf(args)
 end

 -- PART OF

 localfunctionpartOf(args)

 ifargs["e-road"]orargs.ahnorargs.tahnorargs.mrnthen

 localinfobox_args={}

 infobox_args['bodystyle']='display:inline-table;'
 infobox_args['child']='yes'
 infobox_args['decat']='yes'

 ifargs["e-road"]then
 localeshield=args["e-road-shield"]or''
 infobox_args['data1']=eshield.." Part of "..args["e-road"]
 end
 ifargs.ahnthen
 localashield=args["ahn-shield"]or''
 infobox_args['data2']=ashield.." Part of "..args.ahn
 end
 ifargs.tahnthen
 localtshield=args["tahn-shield"]or''
 infobox_args['data3']=tshield.." Part of "..args.tahn
 end
 ifargs.mrnthen
 localmshield=args["mrn-shield"]or''
 infobox_args['data4']=mshield.." Part of "..args.mrn
 end

 returnframe:expandTemplate({title='Infobox',args=infobox_args})

 elsereturnnil
 end
 end

 functionp.partOf(frame)
 localargs=getArgs(frame)
 returnpartOf(args)
 end

 --BROWSE LINKS

 localfunctionbrowse(args)
 ifargs.nobrowsethenreturnnilend

 localpreviousRoute=args.previous_route
 localnextRoute=args.next_route
 ifpreviousRouteornextRoutethen
 localboxModule=require"Module:Road data/browse"
 localprimary=boxModule._browse(args)
 localtblModule=require"Module:Road data/browsetable"
 returntblModule._browsetable(primary)
 end
 end

 functionp.browse(frame)
 localargs=getArgs(frame)
 returnbrowse(args)
 end

 localfunctionextended(args)
 localextended=args.browse
 ifargs.nobrowseorextended==nilthen
 returnnil
 else
 localtblModule=require"Module:Road data/browsetable"
 -- Negative margin to counteract infobox border-spacing
 returntblModule._browsetable(extended,'margin-top:-3px')
 end
 end

 functionp.extended(frame)
 localargs=getArgs(frame)
 returnextended(args)
 end

 -- HIGHWAY SYSTEM LINKS

 localfunctionsystem(args)
 ifargs.system1then

 localinfobox_args={
 ['child']="yes",
 ['decat']="yes",
 ['bodystyle']="border-collapse:collapse;"
 }


 locali=1
 while(1)do
 localsystemClassn="class"..i
 localsystemDatan="data"..i
 localsystemArgn=args['system'..i]

 infobox_args[systemClassn]="hlist"
 infobox_args[systemDatan]=systemArgn

 ifi==10then
 break
 else
 i=i+1
 end
 end

 returnframe:expandTemplate({title='Infobox',args=infobox_args})
 end
 end

 functionp.system(frame)
 localargs=getArgs(frame)
 returnsystem(args)
 end

 -- ROUTE INFORMATION HEADER

 localfunctioninfo(args)
 localmaint=maint(args)
 locallaw=law(args)
 localperiod=period_params(args)
 localexisted=args.establishedorargs.formedornil
 localspur=args.spur_typeorargs.spur_ofornil
 localpart=partOf(args)

 ifperiod==trueorspur~=nilorpart~=nilorexisted~=nilormaint~=nilorargs.sectionorargs.length_miorargs.length_kmorargs.allocationorargs.historyorargs.restrictionsorargs.touristorargs.statusorargs.margarythen
 return"Route information"
 else
 returnnil
 end
 end

 functionp.info(frame)
 localargs=getArgs(frame)
 returninfo(args)
 end

 -- HIGHWAY SYSTEM HEADER

 localfunctionhighwaySystem(args)
 ifargs.nobrowsethenreturnnilend
 localcountry=country(args)orargs.countries

 ifcountry==nilthen
 returnnil
 elseifcountry=="GBR"orcountry=="ENG"orcountry=="NIR"orcountry=="SCT"orcountry=="WLS"or
 country=="GGY"orcountry=="IMN"orcountry=="JEY"orcountry=="AIA"orcountry=="BMU"or
 country=="IOT"orcountry=="VGB"orcountry=="CYM"orcountry=="FLK"orcountry=="GIB"or
 country=="MSR"orcountry=="PCN"orcountry=="SHN"orcountry=="SGS"orcountry=="TCA"then
 return"Road network"
 elsereturn"Highway system"
 end
 end

 functionp.highwaySystem(frame)
 localargs=getArgs(frame)
 returnhighwaySystem(args)
 end

 returnp

AltStyle によって変換されたページ (->オリジナル) /