<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Modul%3ALRR</id>
	<title>Modul:LRR - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Modul%3ALRR"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Modul:LRR&amp;action=history"/>
	<updated>2026-05-24T17:04:34Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Modul:LRR&amp;diff=2916457&amp;oldid=prev</id>
		<title>imported&gt;Hgzh: fixierte Hintergrundfarbe für Logozelle</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Modul:LRR&amp;diff=2916457&amp;oldid=prev"/>
		<updated>2025-07-03T06:38:27Z</updated>

		<summary type="html">&lt;p&gt;fixierte Hintergrundfarbe für Logozelle&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local xp = {}&lt;br /&gt;
&lt;br /&gt;
-- load standard colors&lt;br /&gt;
local _, Standardfarbe = pcall( require, &amp;quot;Module:Vorlage:Standardfarbe&amp;quot; )&lt;br /&gt;
if type( Standardfarbe ) == &amp;quot;table&amp;quot; then&lt;br /&gt;
    Standardfarbe = Standardfarbe()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- TODO: import this from an external module once similar one exists&lt;br /&gt;
xp.countrycode = {&lt;br /&gt;
 BG=&amp;quot;[[Bulgarien|BG]]&amp;quot;,&lt;br /&gt;
 CZ=&amp;quot;[[Tschechien|CZ]]&amp;quot;,&lt;br /&gt;
 NO=&amp;quot;[[Norwegen|NO]]&amp;quot;,&lt;br /&gt;
 PL=&amp;quot;[[Polen|PL]]&amp;quot;,&lt;br /&gt;
 D =&amp;quot;[[Deutschland|D]]&amp;quot;,&lt;br /&gt;
 BW=&amp;quot;[[Baden-Württemberg|BW]]&amp;quot;,&lt;br /&gt;
 BY=&amp;quot;[[Bayern|BY]]&amp;quot;,&lt;br /&gt;
 BB=&amp;quot;[[Brandenburg|BB]]&amp;quot;,&lt;br /&gt;
 BE=&amp;quot;[[Berlin|BE]]&amp;quot;,&lt;br /&gt;
 DE=&amp;quot;[[Deutschland|DE]]&amp;quot;,&lt;br /&gt;
 SH=&amp;quot;[[Freie Hansestadt Bremen|HB]]&amp;quot;,&lt;br /&gt;
 HH=&amp;quot;[[Hamburg|HH]]&amp;quot;,&lt;br /&gt;
 HE=&amp;quot;[[Hessen|HE]]&amp;quot;,&lt;br /&gt;
 MV=&amp;quot;[[Mecklenburg-Vorpommern|MV]]&amp;quot;,&lt;br /&gt;
 NI=&amp;quot;[[Niedersachsen|NI]]&amp;quot;,&lt;br /&gt;
 NW=&amp;quot;[[Nordrhein-Westfalen|NW]]&amp;quot;,&lt;br /&gt;
 RP=&amp;quot;[[Rheinland-Pfalz|RP]]&amp;quot;,&lt;br /&gt;
 SL=&amp;quot;[[Saarland|SL]]&amp;quot;,&lt;br /&gt;
 SN=&amp;quot;[[Sachsen|SN]]&amp;quot;,&lt;br /&gt;
 ST=&amp;quot;[[Sachsen-Anhalt|ST]]&amp;quot;,&lt;br /&gt;
 SH=&amp;quot;[[Schleswig-Holstein|SH]]&amp;quot;,&lt;br /&gt;
 TH=&amp;quot;[[Thüringen|TH]]&amp;quot;,&lt;br /&gt;
 coda=&amp;quot;&amp;#039;&amp;#039;coda&amp;#039;&amp;#039;&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
xp.countrycode[&amp;quot;&amp;quot;]=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
function cond(c, t, f)&lt;br /&gt;
    if c then return t else return f end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- genRefs solely exists to workaround a bug in Mediawiki:&lt;br /&gt;
-- If ANY input parameter contains &amp;lt;ref&amp;gt; these are translated to strip markers.&lt;br /&gt;
-- _Regardless_ of wheter any of them are returned, Mediawiki complains about a&lt;br /&gt;
-- missing &amp;lt;references&amp;gt; section.&lt;br /&gt;
-- Use &amp;#039;&amp;amp;lt;ref &amp;#039; instead of &amp;#039;&amp;lt;ref &amp;#039; and decide here wheter ref tags are to be&lt;br /&gt;
-- expanded or not.&lt;br /&gt;
function genRefs(f, s)&lt;br /&gt;
    if mw.title.getCurrentTitle().isTalkPage&lt;br /&gt;
       then return s&lt;br /&gt;
           :gsub(&amp;#039;&amp;amp;lt;ref [^&amp;gt;]*/&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
           :gsub(&amp;#039;&amp;amp;lt;ref [^&amp;gt;]*&amp;gt;[^&amp;gt;]*&amp;lt;/ref&amp;gt;&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
       else return f:preprocess(s:gsub(&amp;#039;&amp;amp;lt;ref &amp;#039;, &amp;#039;&amp;lt;ref &amp;#039;))&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function genSortkey(s) -- use DIN 5007-1&lt;br /&gt;
    return s&lt;br /&gt;
    :gsub(&amp;quot;^.[^!]+!&amp;quot;, &amp;quot;&amp;quot;):gsub(&amp;quot;%[%[[^]]-|([^]]-)]]&amp;quot;, &amp;quot;%1&amp;quot;) -- strip wikilink&lt;br /&gt;
    :gsub(&amp;quot;ä&amp;quot;, &amp;quot;a&amp;quot;):gsub(&amp;quot;Ä&amp;quot;, &amp;quot;A&amp;quot;)&lt;br /&gt;
    :gsub(&amp;quot;ö&amp;quot;, &amp;quot;o&amp;quot;):gsub(&amp;quot;Ö&amp;quot;, &amp;quot;O&amp;quot;)&lt;br /&gt;
    :gsub(&amp;quot;ü&amp;quot;, &amp;quot;u&amp;quot;):gsub(&amp;quot;Ü&amp;quot;, &amp;quot;U&amp;quot;)&lt;br /&gt;
    :gsub(&amp;quot;ß&amp;quot;, &amp;quot;ss&amp;quot;)&lt;br /&gt;
    :gsub(&amp;quot;%f[%w].&amp;quot;, function(s) return s:upper() end) -- upper first in word&lt;br /&gt;
    :gsub(&amp;quot;[^%w_]&amp;quot;, &amp;#039;&amp;#039;) -- strip any character not a letter nor an underscore&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function xp.getArgs(frame)&lt;br /&gt;
    local ret = {}&lt;br /&gt;
    local f = frame&lt;br /&gt;
&lt;br /&gt;
    if frame.getParent and frame:getParent() and&lt;br /&gt;
        mw.title.getCurrentTitle().subjectNsText~=&amp;quot;Vorlage&amp;quot;&lt;br /&gt;
    then f = frame:getParent()&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- lowercase argument names and preprocess refs&lt;br /&gt;
    for k, v in pairs(f.args)&lt;br /&gt;
    do ret[k:lower()] = genRefs(f, v)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- map alternative argument names&lt;br /&gt;
    for k, v in pairs(frame.alt_arg_names)&lt;br /&gt;
    do for sk, _ in pairs(v)&lt;br /&gt;
        do if ret[sk] then ret[k] = ret[sk] end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        -- assign nil parms a default if given or the empty string&lt;br /&gt;
        if not ret[k] then ret[k] = cond(v.default, v.default, &amp;quot;&amp;quot;) end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function xp.wikilink(frame)&lt;br /&gt;
    setmetatable(frame.args, {__index={sep=&amp;quot;&amp;quot;}})&lt;br /&gt;
    local ret = &amp;quot;&amp;quot;&lt;br /&gt;
    local s, sep, ext =&lt;br /&gt;
        frame.args[1] or frame.args.s,&lt;br /&gt;
        frame.args[2] or frame.args.sep,&lt;br /&gt;
        nil&lt;br /&gt;
&lt;br /&gt;
    for v in mw.text.gsplit(s, &amp;quot;, *&amp;quot;)&lt;br /&gt;
    do if #v&amp;gt;0&lt;br /&gt;
        then if v:sub(1, 1)==&amp;quot;!&amp;quot;&lt;br /&gt;
            then ret = ret..v:sub(2)..sep&lt;br /&gt;
            else local t = mw.text.split(v:gsub(&amp;#039;!.*$&amp;#039;,&lt;br /&gt;
                    function(s) return s:gsub(&amp;#039;:&amp;#039;,&amp;quot;&amp;amp;#58;&amp;quot;) end), &amp;quot;: *&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
                if #t&amp;gt;1&lt;br /&gt;
                then&lt;br /&gt;
                    if not ext&lt;br /&gt;
                    then ext  = t[1]&lt;br /&gt;
                         t[1] = cond(#t[1]&amp;gt;3,&amp;quot;&amp;quot;,&amp;quot;&amp;lt;small&amp;gt;&amp;quot;)..&amp;quot;(&amp;quot;..&lt;br /&gt;
                                xp.countrycode[t[1]]..&amp;quot;: &amp;quot;&lt;br /&gt;
                    elseif ext==t[1]&lt;br /&gt;
                    then t[1] = &amp;quot;&amp;quot;&lt;br /&gt;
                    else ext  = t[1]&lt;br /&gt;
                         t[1] = xp.countrycode[t[1]]..&amp;quot;: &amp;quot;&lt;br /&gt;
                    end&lt;br /&gt;
                else     t[2] = t[1]&lt;br /&gt;
                         t[1] = &amp;quot;&amp;quot;&lt;br /&gt;
                    if ext&lt;br /&gt;
                    then ret  = ret:sub(1, #ret - #sep)&lt;br /&gt;
                         t[1] = &amp;quot;)&amp;quot;..cond(#ext&amp;gt;3,&amp;quot;&amp;quot;,&amp;quot;&amp;lt;/small&amp;gt;&amp;quot;)..sep&lt;br /&gt;
                         ext  = nil&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
&lt;br /&gt;
                if #t[2]&amp;gt;0&lt;br /&gt;
                then&lt;br /&gt;
                    ret = ret..t[1]..&amp;quot;[[&amp;quot;..mw.ustring.gsub(&lt;br /&gt;
                      t[2]:gsub(&amp;#039;!&amp;#039;,&amp;#039;|&amp;#039;):gsub(&amp;quot;Bad &amp;quot;, &amp;quot;Bad&amp;amp;nbsp;&amp;quot;),&lt;br /&gt;
                      &amp;quot;^([^|]-)([^|%w–]?)(%w+–[%w–]*)([^|%w–]?)([^|]-)$&amp;quot;,&lt;br /&gt;
                      &amp;quot;%0|%1%2&amp;lt;span style=\&amp;quot;white-space:nowrap\&amp;quot;&amp;gt;%3&amp;lt;/span&amp;gt;%4%5&amp;quot;)&lt;br /&gt;
                    ..&amp;quot;]]&amp;quot;..sep&lt;br /&gt;
                else&lt;br /&gt;
                    ret = ret..t[1]:gsub(&amp;quot;: $&amp;quot;, &amp;quot;&amp;quot;)..sep&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if #ret&amp;gt;0&lt;br /&gt;
    then ret = ret:sub(1, #ret - #sep)..cond(ext, &amp;quot;)&amp;lt;/small&amp;gt;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function xp.row(frame)&lt;br /&gt;
    frame.alt_arg_names = {&lt;br /&gt;
        logo   = { symbol=1, zeichen=1, icon=1 },&lt;br /&gt;
        ldim   = { lsize=1 },&lt;br /&gt;
        name   = { titel=1 },&lt;br /&gt;
        nalt   = { talt=1, nameerg=1, titelerg=1 },&lt;br /&gt;
        nsort  = { tsort=1 },&lt;br /&gt;
        _von   = { vonerg=1, starterg=1 },&lt;br /&gt;
        von    = { start=1 },&lt;br /&gt;
        via    = { ueber=1, stationen=1 },&lt;br /&gt;
        bis    = { ende=1, nach=1, ziel=1 },&lt;br /&gt;
        _bis   = { biserg=1, endeerg=1, nacherg=1, zielerg=1 },&lt;br /&gt;
        km     = { laenge=1 },&lt;br /&gt;
        bt     = { bahntrasse=1, bahndamm=1 },&lt;br /&gt;
        fc     = { adfc=1, minkrit=1 },&lt;br /&gt;
        rk     = { rundkurs=1 },&lt;br /&gt;
        region = { iso_rgn=1 },&lt;br /&gt;
        pkarte = { karte=1, lagekarte=1, positionskarte=1 },&lt;br /&gt;
        profil = { kommentar=1 }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    local a = xp.getArgs(frame)&lt;br /&gt;
&lt;br /&gt;
    math.randomseed(os.time()-os.clock()*1000)&lt;br /&gt;
    math.random()&lt;br /&gt;
    math.random()&lt;br /&gt;
&lt;br /&gt;
    -- if no sortkey is given, plain name is used&lt;br /&gt;
    a.nsort = genSortkey(a.nsort..a.name)&lt;br /&gt;
&lt;br /&gt;
    -- wikilink strings&lt;br /&gt;
    for p in mw.text.gsplit(&amp;quot;name nalt von bis&amp;quot;, &amp;quot; &amp;quot;, true)&lt;br /&gt;
    do a[p] = xp.wikilink{ args = { a[p], &amp;quot;, &amp;quot; } }&lt;br /&gt;
    end&lt;br /&gt;
    for p in mw.text.gsplit(&amp;quot;via _von _bis&amp;quot;, &amp;quot; &amp;quot;, true)&lt;br /&gt;
    do a[p] = xp.wikilink{ args = { a[p], &amp;quot;&amp;amp;nbsp;↔ &amp;quot; } }&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- column logo/pikto, Spalte Logo/Piktogramm&lt;br /&gt;
    if #a.ldim==0 then a.ldim = &amp;quot;48x48px&amp;quot; end&lt;br /&gt;
    if #a.logo&amp;gt;0 and not a.logo:find(&amp;quot;[[&amp;quot;, 1, true)&lt;br /&gt;
    then a.logo = &amp;quot;[[Datei:&amp;quot;..a.logo..&amp;quot;|&amp;quot;..a.ldim..&amp;quot;]]&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- column name/title, Spalte Name/Titel und Ergänzung falls angegeben&lt;br /&gt;
    if #a.nalt&amp;gt;0 then a.nalt = &amp;quot;, &amp;lt;small&amp;gt;&amp;quot;..a.nalt..&amp;quot;&amp;lt;/small&amp;gt;&amp;quot; end&lt;br /&gt;
    local stname = &amp;quot;data-sort-value=\&amp;quot;&amp;quot;..a.nsort..&amp;quot;\&amp;quot;|&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    -- columns start/dst, Spalten von/bis und Prä-/Suffix falls angegeben&lt;br /&gt;
    a._von = a._von:gsub(&amp;quot;[^&amp;gt;]$&amp;quot;, &amp;quot;%0, &amp;quot;):gsub(&amp;quot;%)&amp;lt;/small&amp;gt;$&amp;quot;, &amp;quot;&amp;amp;nbsp;↔%0 &amp;quot;)&lt;br /&gt;
    a._bis = a._bis:gsub(&amp;quot;^[^&amp;lt;]&amp;quot;, &amp;quot;, %0&amp;quot;):gsub(&amp;quot;^&amp;lt;small&amp;gt;%(&amp;quot;, &amp;quot; %0↔ &amp;quot;)&lt;br /&gt;
    local stvon  = &amp;quot;data-sort-value=\&amp;quot;&amp;quot;..genSortkey(a.von)..&amp;quot;\&amp;quot;|&amp;quot;&lt;br /&gt;
    local stbis  = &amp;quot;data-sort-value=\&amp;quot;&amp;quot;..genSortkey(a.bis)..&amp;quot;\&amp;quot;|&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    -- column length,     Spalte Länge (in Kilometer)&lt;br /&gt;
    if #a.km&amp;gt;0 and not a.km:find(&amp;quot;km&amp;quot;) then a.km = a.km..&amp;quot; km&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
    -- column railtrail,  Spalte Bahntrasse / Bahndamm&lt;br /&gt;
    if a.bt:match(&amp;quot;[jJyYtT1]&amp;quot;)&lt;br /&gt;
    then local v = mw.text.split(a.bt, &amp;quot;, *&amp;quot;)&lt;br /&gt;
        if v[1]:match(&amp;quot;weise&amp;quot;)&lt;br /&gt;
    	then a.bt = &amp;quot;data-sort-value=\&amp;quot;Teilweise&amp;quot;..a.nsort..&amp;quot;\&amp;quot; &amp;quot;..&lt;br /&gt;
            frame:expandTemplate{ title = &amp;quot;Teilweise-Feld&amp;quot;, args = { &amp;quot;&amp;quot; } }&lt;br /&gt;
        else a.bt = &amp;quot;data-sort-value=\&amp;quot;Vollständig&amp;quot;..a.nsort..&amp;quot;\&amp;quot; &amp;quot;..&lt;br /&gt;
            frame:expandTemplate{ title = &amp;quot;Ja-Feld&amp;quot;, args = { &amp;quot;&amp;quot; } }&lt;br /&gt;
        end&lt;br /&gt;
        a.bt = a.bt..&amp;quot;[[Datei:BSicon lDAMPF.svg|20px|verweis=&amp;quot;..&lt;br /&gt;
            cond(v[2], v[2], &amp;quot;&amp;quot;)..&amp;quot;]]&amp;lt;br/&amp;gt;&amp;lt;small&amp;gt;(&amp;quot;..v[1]..&amp;quot;)&amp;lt;/small&amp;gt;&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
        if a.bt:match(&amp;quot;[-nNfF0]&amp;quot;)&lt;br /&gt;
        then a.bt = &amp;quot;data-sort-value=\&amp;quot;–Nirgends&amp;quot;..a.nsort..&amp;quot;\&amp;quot; &amp;quot;..&lt;br /&gt;
            frame:expandTemplate{ title = &amp;quot;N/A-Feld&amp;quot;, args = {} }&lt;br /&gt;
        else a.bt = &amp;quot;data-sort-value=\&amp;quot;–Unbekannt&amp;quot;..a.nsort..&amp;quot;\&amp;quot;|&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- column wayquality, Spalte Mindestkriterien / Fahrradclub / ADFC&lt;br /&gt;
    if a.fc:match(&amp;quot;[jJyYtT1-9]&amp;quot;)&lt;br /&gt;
    then a.fc = frame:expandTemplate{ title = &amp;quot;Ja-Feld&amp;quot;, args = { &amp;quot;&amp;quot; } }..&lt;br /&gt;
        &amp;quot;&amp;lt;span style=&amp;#039;font-size:larger&amp;#039;&amp;gt;&amp;quot;..cond(a.fc:match(&amp;quot;[1-9]&amp;quot;), a.fc, &amp;quot;&amp;quot;)..&amp;quot;&amp;amp;#9733;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
    elseif a.fc:match(&amp;quot;[-nNfF0]&amp;quot;)&lt;br /&gt;
    then a.fc = frame:expandTemplate{ title = &amp;quot;Nein-Feld&amp;quot;, args = { &amp;quot;&amp;quot; } }..&lt;br /&gt;
        &amp;quot;&amp;lt;span style=&amp;#039;font-size:larger&amp;#039;&amp;gt;&amp;amp;#10008;&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- column roundtrip,  Spalte Rundkurs&lt;br /&gt;
    if a.rk:match(&amp;quot;[jJyYtT1]&amp;quot;)&lt;br /&gt;
    then a.rk = &amp;quot;data-sort-value=\&amp;quot;Einer&amp;quot;..a.nsort..&amp;quot;\&amp;quot; &amp;quot;..&lt;br /&gt;
        frame:expandTemplate{ title = &amp;quot;Ja-Feld&amp;quot;, args = { &amp;quot;&amp;lt;span style=&amp;#039;font-size:larger&amp;#039;&amp;gt;♺&amp;lt;/span&amp;gt;&amp;quot; } }&lt;br /&gt;
    elseif a.rk:match(&amp;quot;[mMvV]&amp;quot;)&lt;br /&gt;
    then a.rk = &amp;quot;data-sort-value=\&amp;quot;Viele&amp;quot;..a.nsort..&amp;quot;\&amp;quot; &amp;quot;..&lt;br /&gt;
        frame:expandTemplate{title = &amp;quot;Ja-Feld&amp;quot;, args = { &amp;quot;♺ ♺&amp;lt;br/&amp;gt;♺&amp;quot; } }&lt;br /&gt;
    elseif a.rk:match(&amp;quot;[-nNfF0]&amp;quot;)&lt;br /&gt;
    then a.rk = frame:expandTemplate{ title = &amp;quot;N/A-Feld&amp;quot;, args = {} }&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- column minimap,    Spalte Mini-Lagekarte&lt;br /&gt;
    if #a.pkarte&amp;gt;0&lt;br /&gt;
    then local img, fmt, lnk, ipos, ivert = nil, &amp;quot;|64px&amp;quot;, &amp;quot;&amp;quot;, &amp;quot;left&amp;quot;, &amp;quot;-18px&amp;quot;&lt;br /&gt;
        for v in mw.text.gsplit(a.pkarte, &amp;quot;, *&amp;quot;)&lt;br /&gt;
        do  if v:sub(1, 1)==&amp;quot;!&amp;quot;&lt;br /&gt;
            then fmt = v:gsub(&amp;quot;!&amp;quot;, &amp;quot;|&amp;quot;)&lt;br /&gt;
            elseif v:find(&amp;quot;^%d+$&amp;quot;)&lt;br /&gt;
            then lnk = &amp;quot;https://cycling.waymarkedtrails.org/#route?type=relation&amp;amp;id=&amp;quot;..v&lt;br /&gt;
            elseif v:find(&amp;quot;^r%d+$&amp;quot;)&lt;br /&gt;
            then lnk = &amp;quot;http://www.openstreetmap.org/relation/&amp;quot;..v:sub(2)&lt;br /&gt;
            elseif v:find(&amp;quot;^%[&amp;quot;)&lt;br /&gt;
            then lnk = v&lt;br /&gt;
            else img = &amp;quot;File:&amp;quot;..v&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        lnk = lnk:gsub(&amp;quot;^http.*&amp;quot;, &amp;quot;|verweis=%0|Lagekarte unter %0 aufrufen&amp;quot;)&lt;br /&gt;
                 :gsub(&amp;quot;^%[+(.-)%]+$&amp;quot;, &amp;quot;|verweis=%1|%1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
        if a.region == &amp;quot;DE-SN&amp;quot; or a.region == &amp;quot;DE-TH&amp;quot;&lt;br /&gt;
        then ipos = &amp;quot;right&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        if a.region == &amp;quot;DE-TH&amp;quot;&lt;br /&gt;
        then ivert = &amp;quot;-58px;height:58px&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
&lt;br /&gt;
        a.pkarte = &amp;quot;style=\&amp;quot;background:#E0E0E0;padding:.2em 0em\&amp;quot;|[[&amp;quot;..img..fmt..&lt;br /&gt;
            lnk..&amp;quot;]]&amp;lt;div style=\&amp;quot;margin-top:&amp;quot;..ivert..&amp;quot;;padding:0em .2em;&amp;quot;..&lt;br /&gt;
            &amp;quot;text-align:&amp;quot;..ipos..&amp;quot;\&amp;quot;&amp;gt;[[File:Desc-i_gray.svg|18px|verweis=&amp;quot;..&lt;br /&gt;
            &amp;quot;commons:&amp;quot;..img..&amp;#039;|&amp;#039;..img:sub(5)..&amp;quot;]]&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
        a.pkarte = [[style=&amp;quot;background:#E0E0E0;padding:0px&amp;quot;|]]&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- return entry depending on page title, default is a table row&lt;br /&gt;
    if mw.title.getCurrentTitle().text:find(&amp;quot;/[Dd]ruck$&amp;quot;, -6)&lt;br /&gt;
    then return &amp;quot;;&amp;quot;..a.name&lt;br /&gt;
        ..cond(a.nsort:find(&amp;quot;[Ww]eg%f[%W%u]&amp;quot;),&amp;quot;\nDer &amp;quot;,&amp;quot;\nDie &amp;quot;&lt;br /&gt;
            ..cond(a.nsort:find(&amp;quot;[Rr]oute%f[%W%u]&amp;quot;) or&lt;br /&gt;
                a.nsort:find(&amp;quot;[Tt]our%f[%W%u]&amp;quot;),&amp;quot;&amp;quot;,&amp;quot;Radroute &amp;quot;))..a.name..&amp;quot; &amp;quot;&lt;br /&gt;
        ..({&amp;quot;verläuft&amp;quot;,&amp;quot;führt&amp;quot;,&amp;quot;weist&amp;quot;,&amp;quot;leitet&amp;quot;})[math.random(1,4)]&lt;br /&gt;
        ..&amp;quot; von &amp;quot;..a.von..&amp;quot; nach &amp;quot;..a.bis..&amp;quot; &amp;quot;&lt;br /&gt;
        ..({&amp;quot;und durchquert&amp;quot;,&amp;quot;über&amp;quot;,&amp;quot;durch die Orte&amp;quot;, &amp;quot;mit Stationen in&amp;quot;,&lt;br /&gt;
            &amp;quot;und verbindet&amp;quot;,&amp;quot;mit Halt in&amp;quot;,&amp;quot;und erschließt den Radelnden&amp;quot;,&lt;br /&gt;
            &amp;quot;und zeigt RadlerInnen Landschaft und Natur um&amp;quot;})[math.random(1,8)]&lt;br /&gt;
        ..&amp;quot; &amp;quot;..a.via:gsub(&amp;quot;&amp;amp;nbsp;↔&amp;quot;,&amp;quot;,&amp;quot;):gsub(&amp;quot;, ([^,]*)$&amp;quot;, &amp;quot; und %1&amp;quot;)..&amp;quot;. &amp;quot;&lt;br /&gt;
        ..({&amp;quot;Die Route&amp;quot;,&amp;quot;Der Weg&amp;quot;,&amp;quot;Die Tour&amp;quot;,&lt;br /&gt;
            cond(a.nsort:find(&amp;quot;[Ww]eg%f[%W]&amp;quot;),&amp;quot;Er &amp;quot;,&amp;quot;Sie &amp;quot;)})[math.random(1,4)]&lt;br /&gt;
        ..&amp;quot; ist&amp;quot;..cond(not a.rk:find(&amp;quot;♺&amp;quot;),&amp;quot;&amp;quot;,&amp;quot; als Rundkurs &amp;quot;&lt;br /&gt;
            ..({&amp;quot;fahrbar&amp;quot;,&amp;quot;angelegt&amp;quot;,&amp;quot;verwirklicht&amp;quot;})[math.random(1,3)]..&amp;quot; und&amp;quot;)&lt;br /&gt;
        ..&amp;quot; insgesamt&amp;quot;..a.km:gsub(&amp;quot;^.-([%d.,]+)%D-$&amp;quot;,&amp;quot; %1&amp;amp;nbsp;Kilometer lang&amp;quot;)&lt;br /&gt;
        ..cond(not a.km:find(&amp;quot;%d+%D+%d&amp;quot;),&amp;quot;.&amp;quot;,a.km:gsub(&amp;quot;^%D-([%d.,]+).-$&amp;quot;,&lt;br /&gt;
        	&amp;quot;, wovon %1&amp;amp;nbsp;km auf &amp;quot;..xp.countrycode[a.region:sub(-2)]&lt;br /&gt;
        	    :gsub(&amp;quot;^%[?%[?([^]|]*).-$&amp;quot;,&amp;quot;%1&amp;quot;)..&amp;quot; entfallen.&amp;quot;))&lt;br /&gt;
    elseif mw.title.getCurrentTitle().isTalkPage&lt;br /&gt;
    then return &amp;#039;*&amp;#039;..a.name&lt;br /&gt;
    else return &amp;quot;|-\n|style=\&amp;quot;text-align:center; background:#&amp;quot; .. Standardfarbe.getColor(&amp;quot;hintergrund&amp;quot;, &amp;quot;1&amp;quot;, &amp;quot;light&amp;quot;, false) .. &amp;quot;;\&amp;quot;|&amp;quot;..a.logo..&amp;quot; ||&amp;quot;..stname..a.name..a.nalt&lt;br /&gt;
        ..&amp;quot; ||&amp;quot;..stvon..a._von..a.von..&amp;quot; ||&amp;quot;..a.via..&amp;quot; ||&amp;quot;..stbis..a.bis..a._bis&lt;br /&gt;
        ..&amp;quot; ||&amp;quot;..a.km..&amp;quot; ||&amp;quot;..a.bt..&amp;quot; ||&amp;quot;..a.fc..&amp;quot; ||&amp;quot;..a.rk&lt;br /&gt;
        ..&amp;quot; ||&amp;quot;..a.pkarte..&amp;quot; ||&amp;quot;..a.profil&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function xp.emptyrow(frame)&lt;br /&gt;
    frame.alt_arg_names = {&lt;br /&gt;
        farbe = { color=1, colour=1, default = &amp;quot;grey&amp;quot; }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    local a = xp.getArgs(frame)&lt;br /&gt;
&lt;br /&gt;
    -- if used on a Talk/Disk page, supress output&lt;br /&gt;
    if mw.title.getCurrentTitle().isTalkPage then return &amp;#039;&amp;lt;!-- // --&amp;gt;&amp;#039; end&lt;br /&gt;
&lt;br /&gt;
    -- return table row entry&lt;br /&gt;
    return [[|- style=&amp;quot;border-top:]]..a.farbe..[[ 2px solid&amp;quot;]]..&amp;#039;\n&amp;#039;..&lt;br /&gt;
        string.rep([[ ||data-sort-value=&amp;quot;ZZZ&amp;quot; style=&amp;quot;padding:0px&amp;quot;|]], 11)&lt;br /&gt;
        :gsub(&amp;quot;ZZZ&amp;quot;,&lt;br /&gt;
            (function()&lt;br /&gt;
                local n=0&lt;br /&gt;
                return function(s) n=n+1 return cond(n==6, &amp;quot;99999&amp;quot;, s) end&lt;br /&gt;
            end)())&lt;br /&gt;
        :sub(3)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function xp.header(frame)&lt;br /&gt;
    return [==[&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-style=&amp;quot;font-size:small;&amp;quot;&lt;br /&gt;
!class=&amp;quot;unsortable&amp;quot;|Logo&lt;br /&gt;
!Name&lt;br /&gt;
!style=&amp;quot;vertical-align:top;padding-left:21px;min-width:64px&amp;quot;|von&lt;br /&gt;
!style=&amp;quot;vertical-align:top;padding-left:21px;min-width:64px&amp;quot;|Stationen&amp;lt;br&amp;gt;(Auswahl)&lt;br /&gt;
!style=&amp;quot;vertical-align:top;padding-left:21px;min-width:64px&amp;quot;|bis&lt;br /&gt;
!style=&amp;quot;min-width:48px&amp;quot; data-sort-type=&amp;quot;number&amp;quot;|Länge&amp;lt;br&amp;gt;(ca.)&lt;br /&gt;
!title=&amp;quot;verläuft auf ehem. Bahntrasse&amp;quot;|Bahn&amp;amp;shy;trasse&lt;br /&gt;
!title=&amp;quot;erfüllt ADFC-Mindeststandards für Radfernweg&amp;quot;|Mindest&amp;amp;shy;standards&lt;br /&gt;
!Rund&amp;amp;shy;kurs&lt;br /&gt;
!class=&amp;quot;unsortable&amp;quot;|Lage&amp;amp;shy;karte&lt;br /&gt;
!class=&amp;quot;unsortable&amp;quot;|Streckenprofil&amp;amp;nbsp;und&amp;lt;br&amp;gt;Kommentare]==]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function xp.footer(frame)&lt;br /&gt;
    return &amp;quot;|}&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--function xp.print_invisible_debug_info(frame)&lt;br /&gt;
--    local ret = &amp;quot;&amp;quot;&lt;br /&gt;
--    for c in frame.args[1]:gmatch(&amp;quot;.&amp;quot;)&lt;br /&gt;
--    do ret = ret..mw.ustring.format(&amp;quot;%x %s &amp;quot;, c:byte(), c)&lt;br /&gt;
--    end&lt;br /&gt;
--    return &amp;quot;&amp;lt;div style=\&amp;quot;display:none\&amp;quot;&amp;gt;this: &amp;quot;..frame:getTitle()..&lt;br /&gt;
--        &amp;quot; parent: &amp;quot;..frame:getParent():getTitle()..&lt;br /&gt;
--        &amp;quot; namespace: &amp;quot;..mw.title.getCurrentTitle().subjectNsText..&lt;br /&gt;
--        &amp;quot; fulltitle: &amp;quot;..mw.title.getCurrentTitle().prefixedText..&lt;br /&gt;
--        &amp;quot; hexdump_firstarg: &amp;quot;..ret..&lt;br /&gt;
--        &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
--end&lt;br /&gt;
&lt;br /&gt;
return xp&lt;/div&gt;</summary>
		<author><name>imported&gt;Hgzh</name></author>
	</entry>
</feed>