local p =
local concat = table.concatlocal insert = table.insertlocal format = mw.ustring.formatlocal frame = mw.getCurrentFrame
function p._length(num, args) local km = args["length_km" .. num] or local mi = args["length_mi" .. num] or local nmi = args["length_nmi" .. num] or local ref = args["length_ref" .. num] or local notes = args["length_notes" .. num] or
if mi
and nmi
local first, unit, unit2, unit3-- if nmi ~= '0' and mi
then if tonumber (nmi) then first = nmi unit = "nmi" unit2 = "km mi" unit3 = "km mi"-- elseif mi ~= '0' and km
then elseif tonumber (km) then first = km unit = "km" unit2 = "mi" unit3 = "mi ft" else return nil -- something other than numbers so abandon end
if not first then return nil end-- if mi
and nmi
" .. notes .. "
" elseif notes
" .. notes .. "
" else return frame:expandTemplate .. ")" endend
function p.length(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 num = config.num or return p._length(num, args)end
return p