Modul:LRR
Erscheinungsbild
![]() |
Dieses Modul ist Teil der Formatvorlage Radroutenliste
Lies Dir bitte vor der Verwendung die Anleitung dort durch. Insbesondere sollten die Vorlagen nur in Artikeln der Art Liste der Radrouten in .. verwendet werden. Statt Radrouten ist auch Radwanderrouten, Touristische Radrouten, und leider auch Radwanderwege, Radfernwege, Fernradwege, etc. gebräuchlich. Der Begriff Radweg ist mehrdeutig, siehe die BKL Radweg. |
Dieses Modul transkludiert vorübergehend die folgenden Vorlagen:
Nachdem diese Vorlagen in Lua-Module übersetzt wurden, können die Transklusionen durch Funktionsaufrufe der dann entstandenen Module ersetzt werden.
local xp = {}
function cond( c, t, f )
if c then return t else return f end
end
function xp.wikilink( frame )
setmetatable(frame.args, {__index={sep=""}})
local ret = ""
local s, sep =
frame.args[1] or frame.args.s,
frame.args[2] or frame.args.sep
for v in mw.text.gsplit( s, ", *" )
do if #v > 0
then if v:sub( 1, 1 ) == "!"
then ret = ret .. v:sub( 2 ) .. sep
else ret = ret .. "[[" .. v:gsub( "!", "|" ) .. "]]" .. sep
end
end
end
return cond( #ret > 0, ret:sub( 1, #ret - #sep ), ret )
end
function xp.title( frame )
return "<div style=\"display:none\">this: " .. frame:getTitle() ..
" parent: " .. frame:getParent():getTitle() ..
" namespace: " .. mw.title.getCurrentTitle().nsText ..
" fulltitle: " .. mw.title.getCurrentTitle().fullText ..
"</div>"
end
function xp.row( frame )
local a = {}
local parms = "logo name nalt nsort von via bis km bt fc rk profil"
-- lowercase argument names
for k, v in pairs( frame:getParent().args )
do a[k:lower()] = v
end
-- map alternative argument names
a.nalt, a.km, a.bt, a.fc, a.rk =
a.nalt or a.nameerg,
a.km or a.laenge,
a.bt or a.bahntrasse or a.bahndamm,
a.fc or a.adfc or a.minkrit,
a.rk or a.rundkurs
-- assign nil parms the empty string
for p in mw.text.gsplit(parms, " ", true)
do if not a[p] then a[p] = "" end
end
-- fill-in defaults or potentially missing parts, wikilink strings
if not a.lsize then a.lsize = "48x48px" end
if #a.logo > 0 and not a.logo:find("[[", 1, true)
then a.logo = "[[Datei:" .. a.logo .. "|" .. a.lsize .. "]]"
end
for p in mw.text.gsplit( "name nalt von via bis", " ", true )
do a[p] = xp.wikilink{ args = { a[p], cond( p == "via", " ↔ ", ", " ) } }
end
if #a.nalt > 0 then a.nalt = "(" .. a.nalt .. ")" end
if #a.nsort > 0 then a.nsort = "data-sort-value=\"" .. a.nsort .. "\"|" end
if #a.km > 0 and not a.km:find("km") then a.km = a.km .. " km" end
-- handle 'toggle' fields
if a.fc:match("[jJyYtT1-9]")
then a.fc = frame:expandTemplate{ title = "Ja-Feld", args = { "" } } ..
"<big>" .. cond(a.fc:match("[1-9]"), a.fc, "") .. "★</big>"
elseif a.fc:match("[-nNfF0]")
then a.fc = frame:expandTemplate{ title = "Nein-Feld", args = { "" } } ..
"<big>✘</big>"
end
if a.bt:match("[jJyYtT1]")
then a.bt = frame:expandTemplate{ title = "Ja-Feld", args = { "" } } ..
"[[Datei:BSicon_MBAHN.svg|20px|verweis=]]"
elseif a.bt:match("[-nNfF0]")
then a.bt = frame:expandTemplate{ title = "N/A-Feld", args = { } }
end
if a.rk:match("[jJyYtT1]")
then a.rk = frame:expandTemplate{ title = "Ja-Feld", args = { "" } } ..
"<big>♺</big>"
elseif a.rk:match("[-nNfF0]")
then a.rk = frame:expandTemplate{ title = "N/A-Feld", args = { } }
end
return "|-\n" ..
"|align=\"center\"| " .. a.logo ..
"||" .. a.nsort .. " " .. a.name .. " " .. a.nalt ..
"|| " .. a.von .. "|| " .. a.via .. "|| " .. a.bis .. "|| " .. a.km ..
"|| " .. a.bt .. "|| " .. a.fc .. "|| " .. a.rk .. "|| " .. a.profil
end
return xp