Modul:EuroVelo

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Die Erklärung ergibt sich aus den Anmerkungen. Es wurden zusätzlich einige Parameter verwendet, die somit für eine fremdsprachige Version reserviert sind.


--[=[ 2019-09-04
-- Beta-Version
-- Zur Darstellung der EuroVelo-Routen in Listen und Tabellen
]=]

p = {}

local nr, nrc, c = 0, '0', 1
local evl = "EuroVelo"
local unk = "''- unbekannt -''"
local liste = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,19}
local logopxdefault = 20
local s, linktextformat = '', ''
local ll = true
local lang = mw.getContentLanguage():getCode()
local Liste = "Modul:EuroVelo/Routenliste_" .. lang
local evx = mw.loadData(Liste)
local ev = {
{"Atlantikküsten-Route",1,8186,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-1]","[[Nordkap]] (EV7, EV11) – [[Norwegen#Küste|norwegische Küste]] – [[Trondheim]] (EV3) – [[Bergen (Norwegen)|Bergen]] (EV12) – [[Aberdeen]] (EV12) – [[Inverness]] (EV12) – [[Glasgow]] – [[Stranraer]] – [[Belfast]] – [[Galway]] (EV2) – [[Cork]] – [[Rosslare]] – [[Fishguard]] – [[Bristol]] (EV2) – [[Plymouth]] – [[Roscoff]] (EV4) – [[Nantes]] (EV6) – [[La Rochelle]] – [[Pamplona]] (EV3) – [[Salamanca]] – [[Sagres]]","Norwegen, Vereinigtes Königreich, Irland, Frankreich, Spanien, Portugal"},
{"Hauptstadt-Route",2,5500,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-2]","[[Galway]] (EV1) – [[Dublin]] – [[Holyhead]] – [[Bristol]] (EV1) – [[London]] (EV5) – [[Harwich]] – [[Rotterdam]] (EV12, EV19) – [[Den Haag]] – [[Münster]] (EV3) – [[Berlin]] (EV7) – [[Posen]] (EV9) – [[Warschau]] (EV11) – [[Minsk]] – [[Moskau]]","IRL, GB-UKM, Niederlande, Deutschland (dort: [[Europaroute (D3)|Europaroute D3]]), Polen, Weißrussland, Russland"},
{"Pilgerroute",3,5122,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-3]","[[Santiago de Compostela]] – [[León]] – [[Pamplona]] (EV1) – [[Bordeaux]] – [[Tours]] (EV6) – [[Orléans]] (EV6) – [[Paris]] – [[Namur]] (EV5, EV19) – [[Aachen]] – [[Köln]] (EV15) – Münster (EV2) – [[Hamburg]] (EV12) – [[Flensburg]] – [[Viborg]] – [[Frederikshavn]] (EV12) – [[Göteborg]] (EV12) – [[Oslo]] – [[Røros]] – [[Trondheim]](EV1)","Spanien, Frankreich, Belgien, Deutschland, Dänemark, Schweden, Norwegen"},
{"Mitteleuropa-Route",4,4000,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-4]","[[Roscoff]] (EV1) – französische Atlantikküste – [[Le Havre]] – [[Calais]] (EV5) – [[Middelburg]] – [[Düsseldorf]] (EV15) – [[Bonn]] (EV15) – [[Frankfurt am Main]] – [[Prag]] (EV7) – [[Brünn]] (EV9) – [[Krakau]] (EV11) – [[Lwiw]] – [[Kiew]]","Frankreich, Belgien, Deutschland, Tschechien, Polen, Ukraine"},
{"Via Romea Francigena",5,3900,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-5]","London (EV2) – [[Canterbury]] – Calais (EV4) – [[Brüssel]] – [[Namur]] (EV3, EV19) – [[Luxemburg (Stadt)|Luxemburg]] – [[Saarbrücken]] – [[Straßburg]] (EV15) – [[Basel]] (EV6) – [[Luzern]] – [[Andermatt]] (EV15, EV17) – [[Mailand]] – [[Piacenza]] (EV8) – [[Parma]] – [[Florenz]] (EV7) – [[Siena]] – [[Rom]] (EV7) – [[Brindisi]]","Vereinigtes Königreich, Frankreich, Belgien, Luxemburg, Deutschland, Schweiz, Italien"},
{"Atlantik - Schwarzes Meer",6,4448,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-6] [http://de.eurovelo6-france.com/]","[[Nantes]] (EV1) – [[Tours]](EV3) – [[Orléans]] (EV3) – [[Nevers]] – [[Chalon-sur-Saône]] – [[Basel]] (EV5) – [[Ulm]] – [[Passau]] – [[Linz]] – [[Ybbs an der Donau|Ybbs]] (EV7) – [[Wien]] (EV9) – [[Bratislava]] – [[Budapest]] – [[Belgrad]] (EV11) – [[Bukarest]] – [[Constanța]]","Frankreich, Schweiz, Deutschland, Österreich, Slowakei, Ungarn, Serbien, Rumänien"},
{"Sonnen-Route",7,7409,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-7]","[[Nordkap]] (EV1, EV11) – [[Haparanda]] (EV10) – [[Sundsvall]] (EV10) – [[Svealand|Mittelschweden]] – [[Kopenhagen]] (EV10) – [[Gedser]] – [[Rostock]] (EV10) – [[Berlin]] (EV2) – [[Prag]] (EV4) – [[Ybbs an der Donau|Ybbs]] (EV6) – [[Salzburg]] – [[Mantua]] (EV8) – [[Bologna]] – [[Florenz]] (EV5) – [[Rom]] (EV5) – [[Neapel]] – [[Syracus]] – [[Malta]]","Norwegen, Schweden, Dänemark, Deutschland, Tschechien, Österreich, Italien, Malta"},
{"Mittelmeer-Route",8,5888,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-8]","[[Cádiz]] – [[Málaga]] – [[Almería]] – [[Valencia]] – [[Barcelona]] – [[Avignon]] (EV17) – [[Monaco]] – [[Piacenza]] (EV5) – [[Mantua]] (EV7) – [[Ferrara]] – [[Venedig]] – [[Triest]] (EV9) – [[Rijeka]] – [[Split]] – [[Dubrovnik]] – [[Tirana]] – [[Patras]] – [[Athen]] (EV11) – [[Nikosia]]","Spanien, Frankreich, Monaco, Italien, Slowenien, Kroatien, Bosnien und Herzegowina, Montenegro, Albanien, Griechenland, Zypern"},
{"Baltisch-Adriatische Route",9,1930,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-9]","[[Danzig]] (EV10) – [[Posen]] (EV2) – [[Breslau]] – [[Olmütz]] – [[Brünn]] (EV4) – [[Wien]] (EV6) – [[Maribor]] – [[Ljubljana]] – [[Triest]] (EV8) – [[Pula]]","Polen, Tschechien, Österreich, Slowenien, Italien, Kroatien"},
{"Ostseeküsten-Route",10,7980,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-10]","[[Sankt Petersburg]] – [[Helsinki]] (EV11) – [[Vaasa]] – [[Oulu]] – [[Haparanda]] (EV7) – [[Sundsvall]] (EV7) – [[Stockholm]] – [[Ystad]] – [[Malmö]] – [[Kopenhagen]] (EV7) – [[Odense]] – [[Rostock]] (EV7) – [[Danzig]] (EV9) – [[Kaliningrad]] – [[Riga]] – [[Tallinn]] (EV11) – [[Sankt Petersburg]]","RUS, Finnland, Schweden, Dänemark, Deutschland, Polen, Litauen, Lettland, Estland"},
{"Osteuropa-Route",11,5984,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-11]","[[Nordkapp|Nordkap]] (EV1, EV7) – [[Finnische Seenplatte]] – [[Helsinki]] (EV10) – [[Tallinn]] (EV10) – [[Tartu]] – [[Vilnius]] – [[Warschau]] (EV2) – [[Krakau]] (EV4) – [[Kosice]] – [[Belgrad]] (EV6) – [[Skopje]] – [[Thessaloniki]] – [[Athen]] (EV8)","Norwegen, Finnland, Estland, Lettland, Litauen, Polen, Slowakei, Ungarn, Serbien, Nordmazedonien, Griechenland"},
{"Nordseeküsten-Route",12,5932,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-12] [http://www.northsea-cycle.com/]","Bergen (EV1) – Stavanger – Kristiansand – [[Göteborg]] (EV3) – [[Varberg]] – [[Grenaa]] – [[Frederikshavn]] (EV3) – [[Hirtshals]] – [[Esbjerg]] – [[Hamburg]] (EV3) – [[Den Haag]] (EV2) – [[Rotterdam]] (EV19) – [[Harwich]] (EV2) – [[Kingston upon Hull|Hull]] – [[Newcastle upon Tyne|Newcastle]] – [[Edinburgh]] – [[Aberdeen]] (EV1) – [[Inverness]] (EV1) – [[Thurso]] – [[Orkney]] – [[Shetland]] – [[Bergen (Norwegen)|Bergen]] (EV1)","Norwegen, Schweden, Dänemark, Deutschland, Niederlande, Vereinigtes Königreich"},
{"Iron Curtain Trail",13,9000,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-13] [https://www.michael-cramer.eu/rund-ums-rad/euroveloroute-13/]","[[Kirkenes]] – [[Inari (Ort)|Inari]] – [[Virolahti]] (EV10) – [[Sankt Petersburg]] – [[Tallinn]] (EV11) – [[Riga]] – [[Klaipėda]] – [[Kaliningrad|Königsberg]] – [[Danzig]] (EV9) – [[Warnemünde]] (EV7) – [[Ilsenburg]] (EV2) – [[Eisenach]] – [[Mödlareuth]] – [[Cheb|Eger]] (EV4) – [[Waldmünchen]] – [[České Velenice]] (EV7) – [[Břeclav]] (EV9) – [[Sopron]] – [[Beli Manastir]] (EV6) – [[Szeged]] – [[Moldova Nouă|Moldova]] Veche – [[Pirot]] – [[Tran]] – [[Berovo]] – [[Svilengrad]] – [[Edirne]] – [[Resowo]] ''am [[Schwarzes Meer|Schwarzen Meer]]''","Norwegen, Finnland, RUS, Estland, Lettland, Litauen, Polen, Deutschland, Tschechien, Österreich, Slowakei, Ungarn, Slowenien, Kroatien, Rumänien, Serbien, Bulgarien, Nordmazedonien, Griechenland, Türkei"},
{"Gewässer von Mitteleuropa",14,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-14]","[[Zell am See]] - [[Bischofshofen]] (EV7) - [[Graz]] - [[Fehring]] (EV9) - [[Szentgotthárd]] (EV13) - [[Székesfehérvár]] - [[Budapest]] (EV6) - [[Tiszafüred]] (EV11) - [[Debrecen]]","Österreich, Ungarn"},
{"Rheinradweg",15,1320,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-15] [https://de.eurovelo.com/news/2019-05-03_spring-fever-along-the-eurovelo-15-rhine-cycle-route]","[[Andermatt]] (EV5, EV17) – [[Chur]] – [[Schaffhausen]] – [[Basel]] (EV6) – [[Huningue]] – [[Neuf-Brisach]] – [[Straßburg]] (EV5) – [[Lauterbourg]] – [[Karlsruhe]] – [[Ludwigshafen]] – [[Mannheim]] – [[Mainz]] – [[Wiesbaden]] – [[Bingen]] – [[Koblenz]] – [[Bonn]] – [[Köln]] – [[Düsseldorf]] – [[Duisburg]] – [[Xanten]] – [[Arnhem]] (EV19) – [[Utrecht]] – [[Rotterdam]] (EV2, EV12, EV15)","Schweiz, Frankreich, Deutschland, Niederlande"},
{unk,16,unk,unk,unk,unk},
{"Rhone Radweg",17,1160,unk,"[http://www.eurovelo.com/de/eurovelos/eurovelo-17] [https://www.schweizmobil.ch/de/veloland/route-01.html]","[[Andermatt]] (EV5, EV15) – [[Furkapass]] – [[Bezirk Goms|Goms]] – [[Brig]] – [[Siders]] – [[Sitten]] – [[Vevey]] – [[Montreux]] – [[Lausanne]] – [[Nyon]] – [[Genf]] – [[Lyon]] – [[Valence]] – [[Avignon]] (EV8)<br />östliches Ende: [[Avignon]] (EV8) – [[Arles]] (EV8) – [[Port-Saint-Louis-du-Rhône]]<br />westliches Ende: [[Avignon]] (EV8) – [[Nîmes]] (EV8) – [[Palavas-les-Flots]]","Schweiz (dort: [[Rhone-Route|Rhone-Route, Veloroute 1]]), Frankreich"},
{unk,18,unk,unk,unk,unk},
{"Maas-Radweg",19,1152,2019-03-08,"[http://maasradweg.eu/] [https://de.eurovelo.com/ev19]","[[Plateau von Langres|Langres-Plateau]] – [[Pagny-sur-Meuse]] – [[Namur]] (EV3, EV19) – [[Lüttich]] – [[Roermond]] – [[Arnheim]] (EV15) – [[Rotterdam]] (EV2, EV12, EV15), [[Hoek van Holland]]","Frankreich, Belgien, Niederlande"},
{unk,20,unk,unk,unk,unk}
}
ev[0] = {"EuroVelo",0,78911,1998-01-01,"https://de.eurovelo.com/",unk,unk} -- Extrawurst, da es 0 im Array nicht gibt

function ups1(a,s,z) -- wandelt in Versalien und extrahiert erstes (oder 's'-tes) Zeichen oder Anzahl z
	return string.sub(string.upper(a), s or 1, z or 1)
end

local function istroute(val) -- Prüft, ob es eine definierte Route ist (16,18 und über 19 sind es derzeit nicht
	val = tonumber(val)
	for i = 1, #liste do
		if liste[i] == val then return val end
	end
	return 0 -- default = [[EuroVelo]]
end

local function nowrap(s) -- Verhindert Umbruch der Darstellung
	if umbruch then return s end
	s = '<span style="white-space:nowrap;">' .. s .. '</span>'
	return s
end

local function formatiere(f, nr, lnk) -- Setzt die Textdarstellung entsprechend Parameter zusammen
	if string.len(f or '') > 1 then r = f else f = ups1(f)
		if f == '#' then ll = nil
			elseif f == 'K' or f == 'S' then r = lnk or 'EV' .. nr -- kurz (short), z.B. 'EV8'
			elseif f == 'M' then r = lnk or 'EuroVelo&nbsp;' .. nr -- mittel (medium), z.B. 'EuroVelo 8'
			elseif f == 'L' then r = lnk or ev[nr][1] -- lang (long), z.B. 'Mittelmeer-Route'
			else r = ev[nr][1] .. ' (EV' .. nr ..')' -- default z.B. 'Mittelmeer-Route (EV8)'
		end -- if f == ...
	end -- if string ...
	return r
end

local function information(nr, wert) -- extrahiert die Infos aus der Tabelle ev entsprechend Parameter. ev={"Name",nr,km,datum,www,strecke,Länder}, ...
	i = ups1(wert) --1. Buchstaben extrahieren
	d = ups1(wert,2) --2. Buchstaben extrahieren
	local l = 1
	if i == 'K' then j = 3 -- Kilometer
		elseif i == 'D' then j = 4 -- Startdatum
		elseif i == 'U' then j = 5 -- URI
		elseif i == 'R' then j = 6 -- Route
		else j = 7 -- durchfahrene Staaten
	end
	r = ev[nr][j] or "- '''unbekannt''' -"
	return r
end

function p.f(frame) -- Startfunktion: Parameterübernahme und Zusammensetzung des darzustellenden Strings

	frame = frame:getParent() -- 'durchgereichte Parameter sammeln

	-- erst mal die übergebenen Parameter aufrufen
	for key, wert in pairs(frame.args) do
		key=ups1(key) -- hier auf einen Großbuchstaben verkürzen
		if key == "1" or key == 'N' then nrc = wert or '0'; nr = istroute(nrc)
			elseif key == "2" or key == 'F' then fmt = formatiere(wert, nr, lnk) -- format (ggf. Text)
			elseif key == "3" or key == 'P' then logopx = wert -- pixel
			elseif key == 'L' then lnk = wert -- link abweichend von aus 'N'
			elseif key == 'Z' or key == 'T' then lnk = wert; fmt = wert -- Ziel, auch Anzeige
			elseif key == 'S' then srt = wert -- sort
			elseif key == 'W' or key == 'U' then umbruch = wert -- wrap bzw. Umbruch
			elseif key == 'I' then return information(nr, wert) -- Für die Erweiterung Info
			else nrc ='0'; nr = 0
		end -- if key ...
	end -- for key ...

	-- Link erstellen
	link = lnk or ev[nr][c] .. ' (EV' .. nrc .. ')'; logolink = link
	logopx = logopx or logopxdefault -- Defaultvorgabe
	logo = ("[[File:EV%d-Logo.svg|%spx|class=noviewer|alt=|link=%s|%s]]"):format(nr, logopx, logolink, logolink)

	-- Verarbeitung, sichtbaren String zusammenbasteln
	if string.len(fmt or '') > 1 then text = fmt
		else text = ev[nr][c] or unk
			if c > 0 then text = text ..' (EV' .. nrc ..')' end -- default z.B. 'Mittelmeer-Route (EV8)'
	end -- if string.len ...
	if nr == 0 and text then link = lnk or ev[0][1]; text = fmt or ev[0][1] end

	-- Textdisplay und link zusammensetzen
	if string.len(text or '') > 1 and ll then 	lk = ' [[' .. link .. '|' .. text .. ']]' else lk = '' end
	
	--[[ Falls Sortierung vorgegeben. Eleganter wäre eine Lösung mit 'data-sort-value=' .. srt .. '|', das könnte aber zu Problemen führen, wenn es im Fließtext außerhalb von Tabellen steht.--]]
	if srt then sort = ('<span style="display:none;">' .. srt .. '</span>') else sort = '' end

	 return sort .. nowrap(logo .. lk)

end -- function p.f(frame)

return p