Changes

Pywikibot 6.4.0
--[==[
To inspect the content of this data module, use [[Special:ExpandTemplates]]
and enter the following input text:
{{#invoke:Road data/dump|dump|module=Module:<name-of-this-module>}}

To inspect the content of this data module when editing, enter the following
into the Debug console:
local util = require("Module:Road data/util")
print(util.arrayToString(p))
To inspect a particular route type, change `p` above to include the route type,
e.g., `p.I` and `p["US-Hist"]`.
]==]

-- Iowa
local IA = {}

local util = require("Module:Road data/util")
local format = mw.ustring.format
util.addAll(IA, require("Module:Road data/strings/USA"))

local suffix = " ([dab||%dab%, |]Iowa)"
local maint = "[[Iowa Department of Transportation|Iowa DOT]]"

IA[" common "] = {
location = {
["first-label"] = "State",
["first-level"] = "[[Iowa]]",
["second-label"] = "Counties",
},
browse = {
{link = "Iowa Primary Highway System", bold = true},
{
noprint = true,
{link = "List of Interstate Highways in Iowa", name = "Interstate"},
{link = "List of U.S. Highways in Iowa", name = "U.S."},
{link = "List of Iowa state highways", name = "State"},
{link = "County roads in Iowa", name = "Secondary"},
{link = "Iowa Scenic Byways", name = "Scenic"}
}
}
}

IA.I.maint = maint
IA.I.link = {
["129"] = "Interstate 129",
["280"] = "Interstate 280 (Iowa–Illinois)",
["480"] = "Interstate 480 (Nebraska–Iowa)",
["680"] = "Interstate 680 (Nebraska–Iowa)",
default = {
hook = "splitlen",
split = 3,
above = "Interstate %route% (Iowa)",
below = "Interstate %route% in Iowa"
}
}

IA["I-Express"] = {
shield = IA.I.shield,
shieldmain = IA.I.shieldmain,
name = IA.I.name .. " Express",
link = IA.I.link,
abbr = IA.I.abbr .. " Express",
banner = "Express plate yellow.svg",
width = "expand"
}

IA["I-Local"] = {
shield = IA.I.shield,
shieldmain = IA.I.shieldmain,
name = IA.I.name .. " Local",
link = IA.I.link,
abbr = IA.I.abbr .. " Local",
banner = "Local plate yellow.svg",
width = "expand"
}

IA.BL.name = IA.I.name .. " Business Loop"
IA.BL.link = IA.I.base .. " Business" .. suffix
IA.BL.abbr = IA.I.abbr .. " Business Loop"

IA["I 1957"].link = IA.I.link
IA["I 1961"].link = IA.I.link

IA.US.name = "U.S. Highway %route%"
IA.US.maint = maint
IA.US.link = {["32"] = "U.S. Route 6 in Iowa",
["55"] = "U.S. Route 55",
["151"] = "U.S. Route 151",
["161"] = "U.S. Route 161",
["163"] = "Iowa Highway 163",
["218"] = "U.S. Route 218",
["275"] = "U.S. Route 275",
default = "U.S. Route %route% in Iowa"}

for _,year in ipairs({"1926", "1948", "1961"}) do
IA["US " .. year] = {
shield = format("US %%route%% (%s).svg", year),
shieldmain = format("US %%route%% Iowa %s.svg", year),
base = IA.US.base,
name = IA.US.name,
link = IA.US.link,
abbr = IA.US.abbr,
width = "square",
}
end

IA["US 1961"].shield = "US %route% (1961).svg"
IA["US 1961"].shieldmain = "US %route% (1961).svg"

for _,type in ipairs({'US', 'US 1961'}) do
for _,auxType in ipairs({"Alt", "Bus", "Byp", "Conn", "Emerg", "Opt", "Scenic", "Spur", "Temp", "Truck"}) do
local spec = IA[" aux "][auxType]
IA[type .. "-" .. auxType] = {
shield = IA['US 1961'].shield,
shieldmain = IA['US 1961'].shieldmain,
name = IA[type].name .. " " .. spec.name,
link = "U.S. Route %route% " .. spec.name .. suffix,
abbr = IA[type].abbr .. " " .. spec.name,
banner = spec.bannerprefix .. " plate.svg",
aux = spec.aux,
width = square
}
end
end

IA["US-Hist"].link = IA.US.link

IA["US 1926-City"] = {
shield = "US %route% City 1926.svg",
name = "City " .. IA.US.name,
link = IA.US.base .. " City" .. suffix,
abbr = "City " .. IA.US.abbr,
browse = IA.US.browse
}

IA["US 1948-City"] = IA["US 1926-City"]
IA["US 1971"] = IA["US 1961"]

IA.IA = {
base = "Iowa Highway %route%",
shield = {
hook = "splitlen",
split = 2,
above = "Elongated circle %route%.svg",
below = "Circle sign %route%.svg"
},
name = "Iowa Highway %route%",
link = "Iowa Highway %route%" .. IA[" dab "],
abbr = "Iowa&nbsp;%route%",
maint = maint,
width = "expand"
}

for _,type in ipairs({"IA"}) do
for _,year in ipairs({"1926", "1948", "1961", "1980"}) do
IA["IA " .. year] = {
shield = format("Iowa %%route%% (%s).svg", year),
shieldmain = format("Iowa %%route%% (%s).svg", year),
name = IA.IA.name,
link = IA.IA.link,
abbr = IA.IA.abbr,
width = "square",
}
end
end

IA["IA 1926"].shield = "Iowa %route% 1926.svg"
IA["IA 1926"].shieldmain = "Iowa %route% 1926.svg"

IA["IA 1980"].shield = {
hook = "between",
lower = 10,
upper = 100,
yes = "Elongated circle %route%.svg",
no = "Circle sign %route%.svg"
}
IA["IA 1980"].shieldmain = IA["IA 1980"].shield

IA["IA 1961"].shield = {
hook = "splitlen",
split = 3,
above = "Circle sign %route% (small).svg",
below = {
hook = "splitlen",
split = 2,
above = "Elongated circle %route%.svg",
below = "Circle sign %route%.svg"
}
}
IA["IA 1961"].shieldmain = IA["IA 1961"].shield

IA["IA-Bus"] = {
shield = IA["IA 1980"].shield,
shieldmain = IA["IA 1980"].shield,
name = "Iowa Highway %route% Business",
link = "Iowa Highway %route% Business [dab||(%dab%)|]",
abbr = IA.IA.abbr.." Business",
banner = "Business plate.svg",
width = "square"
}

IA.AOTS = {
shield = "Elongated circle 27.svg",
shieldmain = "Elongated circle 27.svg",
name = "Avenue of the Saints",
link = "Avenue of the Saints",
abbr = "Iowa&nbsp;27",
banner = "Avenue of the Saints banner.svg"
}

IA.CR.link = {
["105"] = "Iowa Highway 105",
["99"] = "Iowa Highway 99",
["X99"] = "Iowa Highway 99",
default = {
ifexists = true,
default = "County Road %route% (%county% County, Iowa)"
}
}

IA.Primary = {
shield = "Iowa Primary %route%.svg",
shieldmain = "Iowa Primary %route%.svg",
name = "Primary Road No. %route%",
link = "Iowa Primary Road No. %route%",
abbr = "No. %route%",
width = "37"
}

IA.Lincoln.link = "Lincoln Highway in Iowa"
IA.Lincoln.abbr = "Lincoln Highway Heritage Byway"
IA.Jefferson.abbr = "Jefferson Highway Heritage Byway"

IA.IL = {alias = {module = "USA/IL", type = "IL"}}
IA.MN = {alias = {module = "USA/MN", type = "MN"}}
IA.MO = {alias = {module = "USA/MO", type = "MO"}}
IA.NE = {alias = {module = "USA/NE", type = "NE"}}
IA.SD = {alias = {module = "USA/SD", type = "SD"}}
IA.WI = {alias = {module = "USA/WI", type = "WI"}}

return IA