From beab95509117f9f523d9b15d9f80bbab5ae297f1 Mon Sep 17 00:00:00 2001 From: MoritzWeber Date: Thu, 23 Jul 2026 12:13:35 +0200 Subject: [PATCH 1/4] feat: Add initial route planner support --- .pre-commit-config.yaml | 1 + archetypes/country/index.de.md | 3 +- archetypes/country/index.en.md | 3 +- archetypes/country/index.fr.md | 3 +- assets/js/main.js | 1 + assets/js/routePlanner.js | 500 +++++++++++++++++++ assets/sass/main.scss | 1 + assets/sass/routePlanner.scss | 403 +++++++++++++++ content/country/austria/index.de.md | 36 +- content/country/austria/index.en.md | 36 +- content/country/austria/index.fr.md | 36 +- content/country/belgium/index.de.md | 6 +- content/country/belgium/index.en.md | 6 +- content/country/belgium/index.fr.md | 6 +- content/country/bulgaria/index.de.md | 3 +- content/country/bulgaria/index.en.md | 3 +- content/country/bulgaria/index.fr.md | 3 +- content/country/czechia/index.de.md | 21 +- content/country/czechia/index.en.md | 21 +- content/country/czechia/index.fr.md | 21 +- content/country/denmark/index.de.md | 21 +- content/country/denmark/index.en.md | 21 +- content/country/denmark/index.fr.md | 21 +- content/country/france/index.de.md | 21 +- content/country/france/index.en.md | 21 +- content/country/france/index.fr.md | 21 +- content/country/germany/index.de.md | 246 ++++++--- content/country/germany/index.en.md | 246 ++++++--- content/country/germany/index.fr.md | 246 ++++++--- content/country/greece/index.de.md | 6 +- content/country/greece/index.en.md | 6 +- content/country/greece/index.fr.md | 6 +- content/country/ireland/index.de.md | 3 +- content/country/ireland/index.en.md | 3 +- content/country/ireland/index.fr.md | 3 +- content/country/italy/index.de.md | 24 +- content/country/italy/index.en.md | 24 +- content/country/italy/index.fr.md | 24 +- content/country/latvia/index.de.md | 3 +- content/country/latvia/index.en.md | 3 +- content/country/latvia/index.fr.md | 3 +- content/country/lithuania/index.de.md | 3 +- content/country/lithuania/index.en.md | 3 +- content/country/lithuania/index.fr.md | 3 +- content/country/netherlands/index.de.md | 24 +- content/country/netherlands/index.en.md | 24 +- content/country/netherlands/index.fr.md | 24 +- content/country/norway/index.de.md | 12 +- content/country/norway/index.en.md | 12 +- content/country/norway/index.fr.md | 12 +- content/country/poland/index.de.md | 18 +- content/country/poland/index.en.md | 18 +- content/country/poland/index.fr.md | 18 +- content/country/portugal/index.de.md | 3 +- content/country/portugal/index.en.md | 3 +- content/country/portugal/index.fr.md | 3 +- content/country/romania/index.de.md | 18 +- content/country/romania/index.en.md | 18 +- content/country/romania/index.fr.md | 18 +- content/country/serbia/index.de.md | 3 +- content/country/serbia/index.en.md | 3 +- content/country/serbia/index.fr.md | 3 +- content/country/slovakia/index.de.md | 6 +- content/country/slovakia/index.en.md | 6 +- content/country/slovakia/index.fr.md | 6 +- content/country/slovenia/index.de.md | 3 +- content/country/slovenia/index.en.md | 3 +- content/country/slovenia/index.fr.md | 3 +- content/country/spain/index.de.md | 9 +- content/country/spain/index.en.md | 9 +- content/country/spain/index.fr.md | 9 +- content/country/switzerland/index.de.md | 18 +- content/country/switzerland/index.en.md | 18 +- content/country/switzerland/index.fr.md | 18 +- content/country/united-kingdom/index.de.md | 45 +- content/country/united-kingdom/index.en.md | 45 +- content/country/united-kingdom/index.fr.md | 45 +- content/general/_index.de.md | 1 + content/general/_index.en.md | 1 + content/general/_index.fr.md | 1 + content/general/route-planner/index.de.md | 4 + content/general/route-planner/index.en.md | 4 + content/general/route-planner/index.fr.md | 4 + content/operator/bdz/index.de.md | 3 + content/operator/bdz/index.en.md | 3 + content/operator/bdz/index.fr.md | 3 + content/operator/bls/index.de.md | 4 + content/operator/bls/index.en.md | 4 + content/operator/bls/index.fr.md | 4 + content/operator/cd/index.de.md | 4 + content/operator/cd/index.en.md | 4 + content/operator/cd/index.fr.md | 4 + content/operator/cfl/index.de.md | 3 + content/operator/cfl/index.en.md | 3 + content/operator/cfl/index.fr.md | 3 + content/operator/cfr/index.de.md | 3 + content/operator/cfr/index.en.md | 3 + content/operator/cfr/index.fr.md | 3 + content/operator/cie/index.de.md | 4 + content/operator/cie/index.en.md | 4 + content/operator/cie/index.fr.md | 4 + content/operator/cp/index.de.md | 4 + content/operator/cp/index.en.md | 4 + content/operator/cp/index.fr.md | 4 + content/operator/db/index.de.md | 20 + content/operator/db/index.en.md | 20 + content/operator/db/index.fr.md | 20 + content/operator/dsb/index.de.md | 3 + content/operator/dsb/index.en.md | 3 + content/operator/dsb/index.fr.md | 3 + content/operator/eurostar/index.de.md | 13 + content/operator/eurostar/index.en.md | 13 + content/operator/eurostar/index.fr.md | 12 + content/operator/fs/index.de.md | 3 + content/operator/fs/index.en.md | 3 + content/operator/fs/index.fr.md | 3 + content/operator/gysev/index.de.md | 4 + content/operator/gysev/index.en.md | 4 + content/operator/gysev/index.fr.md | 4 + content/operator/ht/index.de.md | 4 + content/operator/ht/index.en.md | 4 + content/operator/ht/index.fr.md | 4 + content/operator/kd/index.de.md | 3 + content/operator/kd/index.en.md | 3 + content/operator/kd/index.fr.md | 3 + content/operator/kml/index.de.md | 3 + content/operator/kml/index.en.md | 3 + content/operator/kml/index.fr.md | 3 + content/operator/ks/index.de.md | 3 + content/operator/ks/index.en.md | 3 + content/operator/ks/index.fr.md | 3 + content/operator/kw/index.de.md | 3 + content/operator/kw/index.en.md | 3 + content/operator/kw/index.fr.md | 3 + content/operator/lka/index.de.md | 3 + content/operator/lka/index.en.md | 3 + content/operator/lka/index.fr.md | 3 + content/operator/ltg/index.de.md | 3 + content/operator/ltg/index.en.md | 3 + content/operator/ltg/index.fr.md | 3 + content/operator/nir/index.de.md | 4 + content/operator/nir/index.en.md | 4 + content/operator/nir/index.fr.md | 4 + content/operator/ns/index.de.md | 5 + content/operator/ns/index.en.md | 5 + content/operator/ns/index.fr.md | 5 + content/operator/oebb/index.de.md | 5 + content/operator/oebb/index.en.md | 5 + content/operator/oebb/index.fr.md | 5 + content/operator/pkp/index.de.md | 4 + content/operator/pkp/index.en.md | 4 + content/operator/pkp/index.fr.md | 4 + content/operator/renfe/index.de.md | 8 + content/operator/renfe/index.en.md | 8 + content/operator/renfe/index.fr.md | 8 + content/operator/sbb/index.de.md | 6 + content/operator/sbb/index.en.md | 6 + content/operator/sbb/index.fr.md | 6 + content/operator/sncb/index.de.md | 4 + content/operator/sncb/index.en.md | 4 + content/operator/sncb/index.fr.md | 4 + content/operator/sncf/index.de.md | 4 + content/operator/sncf/index.en.md | 4 + content/operator/sncf/index.fr.md | 4 + content/operator/sv/index.de.md | 3 + content/operator/sv/index.en.md | 3 + content/operator/sv/index.fr.md | 3 + content/operator/sz/index.de.md | 4 + content/operator/sz/index.en.md | 4 + content/operator/sz/index.fr.md | 4 + content/operator/vy/index.de.md | 6 + content/operator/vy/index.en.md | 6 + content/operator/vy/index.fr.md | 6 + content/operator/zpcg/index.de.md | 3 + content/operator/zpcg/index.en.md | 3 + content/operator/zpcg/index.fr.md | 3 + content/operator/zssk/index.de.md | 3 + content/operator/zssk/index.en.md | 3 + content/operator/zssk/index.fr.md | 3 + hugo.yaml | 14 +- i18n/de.yaml | 24 + i18n/en.yaml | 24 + i18n/fr.yaml | 24 + layouts/_default/home.transitousmapping.json | 38 ++ layouts/_shortcodes/train-category.html | 4 + layouts/country/single.html | 2 +- layouts/general/route-planner/single.html | 128 +++++ package-lock.json | 20 + package.json | 1 + 189 files changed, 2754 insertions(+), 557 deletions(-) create mode 100644 assets/js/routePlanner.js create mode 100644 assets/sass/routePlanner.scss create mode 100644 content/general/route-planner/index.de.md create mode 100644 content/general/route-planner/index.en.md create mode 100644 content/general/route-planner/index.fr.md create mode 100644 layouts/_default/home.transitousmapping.json create mode 100644 layouts/general/route-planner/single.html diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index d5b7d27f9..5ea443e80 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -15,6 +15,7 @@ repos: - id: check-case-conflict - id: check-executables-have-shebangs - id: check-json + exclude: "layouts/_default/home.transitousmapping.json$" - id: check-merge-conflict - id: check-shebang-scripts-are-executable - id: check-symlinks diff --git a/archetypes/country/index.de.md b/archetypes/country/index.de.md index 2f8fb99e3..dd7a927fa 100644 --- a/archetypes/country/index.de.md +++ b/archetypes/country/index.de.md @@ -4,7 +4,8 @@ title: "{{ .File.ContentBaseName | title }}" # Ändere den Name auf den deutsche country: "{{ .File.ContentBaseName }}" params: operators_without_fip: - - # Liste Betreiber, die kein FIP akzeptieren + - name: # Betreibername + query: # z.B. agencyName == "Betreibername" --- diff --git a/archetypes/country/index.en.md b/archetypes/country/index.en.md index 9a845c761..89014724a 100644 --- a/archetypes/country/index.en.md +++ b/archetypes/country/index.en.md @@ -4,7 +4,8 @@ title: "{{ .File.ContentBaseName | title }}" # Change the name to the English co country: "{{ .File.ContentBaseName }}" params: operators_without_fip: - - # List operators without FIP here + - name: # Operator name + query: # e.g. agencyName == "Operator Name" --- diff --git a/archetypes/country/index.fr.md b/archetypes/country/index.fr.md index 06df884ac..209b1b6d9 100644 --- a/archetypes/country/index.fr.md +++ b/archetypes/country/index.fr.md @@ -4,7 +4,8 @@ title: "{{ .File.ContentBaseName | title }}" # Change le nom par le nom du pays country: "{{ .File.ContentBaseName }}" params: operators_without_fip: - - # Listez ici les opérateurs ne participant pas au FIP + - name: # Nom de l'opérateur + query: # p.ex. agencyName == "Nom de l'opérateur" --- diff --git a/assets/js/main.js b/assets/js/main.js index 250f2f335..24410a683 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -11,3 +11,4 @@ import "./expander.js"; import "./dialog.js"; import "./fipValidityComparison.js"; import "./search.js"; +import "./routePlanner.js"; diff --git a/assets/js/routePlanner.js b/assets/js/routePlanner.js new file mode 100644 index 000000000..c6c35f8b3 --- /dev/null +++ b/assets/js/routePlanner.js @@ -0,0 +1,500 @@ +import { client, geocode, plan } from "@motis-project/motis-client"; + +client.setConfig({ + baseUrl: "https://api.transitous.org", + querySerializer: (params) => { + const parts = []; + for (const [key, value] of Object.entries(params)) { + if (value === undefined || value === null) continue; + if (Array.isArray(value)) { + parts.push(`${key}=${value.map(encodeURIComponent).join(",")}`); + } else { + parts.push(`${encodeURIComponent(key)}=${encodeURIComponent(value)}`); + } + } + return parts.join("&"); + }, +}); + +const DEBOUNCE_MS = 300; +const MIN_QUERY_LEN = 2; + +let fromPlace = null; +let toPlace = null; + +let transitousMapping = null; + +async function loadData() { + const lang = window.routePlannerConfig.lang; + const mappingRes = await fetch(`/${lang}/transitous-mapping.json`); + transitousMapping = await mappingRes.json(); +} + +function evalQuery(query, leg) { + try { + const { + agencyId, + agencyName, + routeShortName, + displayName, + mode, + routeId, + tripShortName, + } = leg; + return Function( + "agencyId", + "agencyName", + "routeShortName", + "displayName", + "mode", + "routeId", + "tripShortName", + `"use strict"; return (${query});`, + )( + agencyId, + agencyName, + routeShortName, + displayName, + mode, + routeId, + tripShortName, + ); + } catch { + return false; + } +} + +function matchLeg(leg) { + if (!transitousMapping) return null; + for (const op of transitousMapping) { + for (const entry of op.mapping) { + if (evalQuery(entry.query, leg)) { + return { + operatorSlug: op.operator, + categoryId: entry.category || null, + fipAccepted: entry.fipAccepted ?? null, + matchedQuery: entry.query, + country: entry.country || null, + }; + } + } + } + return null; +} + +function getFipStatus(leg) { + const cfg = window.routePlannerConfig; + const debug = { + from: leg.from?.name || null, + to: leg.to?.name || null, + startTime: leg.startTime ? new Date(leg.startTime).toLocaleString() : null, + endTime: leg.endTime ? new Date(leg.endTime).toLocaleString() : null, + agencyId: leg.agencyId || null, + agencyName: leg.agencyName || null, + routeShortName: leg.routeShortName || null, + displayName: leg.displayName || null, + mode: leg.mode || null, + routeId: leg.routeId || null, + tripShortName: leg.tripShortName || null, + matchedQuery: null, + }; + + const match = matchLeg(leg); + if (!match) { + return { + status: "unknown", + label: cfg.labels.fipUnknown, + categoryUrl: null, + operatorSlug: null, + debug, + }; + } + + debug.matchedQuery = match.matchedQuery; + const { + operatorSlug, + categoryId, + fipAccepted: matchedFipAccepted, + country, + } = match; + const isNoFip = operatorSlug === "no-fip"; + const operatorUrl = isNoFip ? null : `/${cfg.lang}/operator/${operatorSlug}/`; + const categoryUrl = isNoFip + ? country + ? `/${cfg.lang}/country/${country}/#operators-without-fip-title` + : null + : categoryId + ? `/${cfg.lang}/operator/${operatorSlug}/#${categoryId}` + : operatorUrl; + + if (matchedFipAccepted === false || matchedFipAccepted === "false") { + return { + status: "not-accepted", + label: cfg.labels.fipNotAccepted, + categoryUrl, + operatorSlug, + debug, + }; + } + if (matchedFipAccepted === "partially") { + return { + status: "partial", + label: cfg.labels.fipPartial, + categoryUrl, + operatorSlug, + debug, + }; + } + if (matchedFipAccepted === true || matchedFipAccepted === "true") { + return { + status: "accepted", + label: cfg.labels.fipAccepted, + categoryUrl, + operatorSlug, + debug, + }; + } + return { + status: "unknown", + label: cfg.labels.fipUnknown, + categoryUrl, + operatorSlug, + debug, + }; +} + +function formatTime(isoString) { + if (!isoString) return ""; + const d = new Date(isoString); + return d.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }); +} + +function formatDuration(seconds) { + const h = Math.floor(seconds / 3600); + const m = Math.floor((seconds % 3600) / 60); + if (h > 0) return `${h}h ${m}min`; + return `${m}min`; +} + +let fipDebugCounter = 0; + +function renderFipBadge(fipStatus) { + const cfg = window.routePlannerConfig; + const popoverId = `fip-debug-${++fipDebugCounter}`; + + const rows = Object.entries(fipStatus.debug) + .map( + ([k, v]) => + `${k}${v !== null ? v : "—"}`, + ) + .join(""); + const popoverHtml = ` +
+ ${rows}
+
`; + + let badgeHtml = `${fipStatus.label}`; + badgeHtml += ` ${popoverHtml}`; + if (fipStatus.categoryUrl) { + badgeHtml += ` ${cfg.labels.viewInFipGuide}`; + } + return badgeHtml; +} + +function renderLeg(leg) { + const cfg = window.routePlannerConfig; + + if (leg.mode === "WALK" || leg.mode === "FOOT") { + const mins = Math.round(leg.duration / 60); + return ` +
+
🚶
+
+ ${cfg.labels.walk} ${mins}min +
+
`; + } + + const agencyName = leg.agencyName || ""; + const fipStatus = getFipStatus(leg); + const legLabel = leg.displayName || leg.routeShortName || ""; + const depTime = formatTime(leg.startTime); + const arrTime = formatTime(leg.endTime); + const headsign = leg.headsign ? ` → ${leg.headsign}` : ""; + const routeColor = leg.routeColor + ? `#${leg.routeColor}` + : "var(--link-default)"; + const textColor = leg.routeTextColor ? `#${leg.routeTextColor}` : "#fff"; + const fromPlatform = leg.from?.platformCode + ? ` ${cfg.labels.platform} ${leg.from.platformCode}` + : ""; + const toPlatform = leg.to?.platformCode + ? ` ${cfg.labels.platform} ${leg.to.platformCode}` + : ""; + + return ` +
+
+ ${legLabel} +
+
+
+ ${legLabel}${headsign} + ${agencyName ? `(${agencyName})` : ""} +
+
+ ${depTime} ${leg.from?.name || ""}${fromPlatform} + ${formatDuration(leg.duration)} + ${arrTime} ${leg.to?.name || ""}${toPlatform} +
+
+ ${renderFipBadge(fipStatus)} +
+
+
`; +} + +function renderItinerary(itinerary, index) { + const cfg = window.routePlannerConfig; + const depTime = formatTime( + itinerary.startTime || itinerary.legs?.[0]?.startTime, + ); + const arrTime = formatTime( + itinerary.endTime || itinerary.legs?.[itinerary.legs.length - 1]?.endTime, + ); + const duration = formatDuration(itinerary.duration); + + const transitLegs = + itinerary.legs?.filter((l) => l.mode !== "WALK" && l.mode !== "FOOT") || []; + const transfers = Math.max(0, transitLegs.length - 1); + + const legsHtml = (itinerary.legs || []) + .map((leg) => renderLeg(leg)) + .join('
'); + + return ` +
+ + ${depTime} – ${arrTime} + ${duration} + ${transfers > 0 ? `${transfers} ${cfg.labels.transfer}` : ""} + +
+ ${legsHtml} +
+
`; +} + +async function search() { + if (!fromPlace || !toPlace) return; + + const cfg = window.routePlannerConfig; + const resultsEl = document.getElementById("route-planner-results"); + const loadingEl = document.getElementById("route-planner-loading"); + const errorEl = document.getElementById("route-planner-error"); + const itinerariesEl = document.getElementById("route-planner-itineraries"); + + resultsEl.hidden = false; + loadingEl.hidden = false; + errorEl.hidden = true; + itinerariesEl.innerHTML = ""; + + const timeInput = document.getElementById("route-planner-time"); + const timeValue = timeInput.value + ? new Date(timeInput.value).toISOString() + : new Date().toISOString(); + + try { + const response = await plan({ + query: { + fromPlace: fromPlace.id, + toPlace: toPlace.id, + time: timeValue, + withFares: true, + numLegAlternatives: 3, + fastestDirectFactor: 1.5, + joinInterlinedLegs: false, + maxMatchingDistance: 250, + numItineraries: 5, + transitModes: [ + "TRAM", + "FERRY", + "AIRPLANE", + "BUS", + "RAIL", + "FUNICULAR", + "AERIAL_LIFT", + "OTHER", + ], + }, + }); + + if (response.error) { + errorEl.textContent = cfg.labels.errorGeneric; + errorEl.hidden = false; + return; + } + + const itineraries = response.data?.itineraries || []; + if (itineraries.length === 0) { + itinerariesEl.innerHTML = `

${cfg.labels.noResults}

`; + return; + } + + itinerariesEl.innerHTML = itineraries + .map((it, i) => renderItinerary(it, i)) + .join(""); + } catch (err) { + errorEl.textContent = cfg.labels.errorGeneric; + errorEl.hidden = false; + } finally { + loadingEl.hidden = true; + } +} + +function setupAutocomplete(inputId, suggestionsId, onSelect) { + const input = document.getElementById(inputId); + const suggestions = document.getElementById(suggestionsId); + let debounce = null; + let activeIndex = -1; + let currentMatches = []; + + function hideSuggestions() { + suggestions.hidden = true; + input.setAttribute("aria-expanded", "false"); + activeIndex = -1; + } + + function showSuggestions(matches) { + currentMatches = matches; + if (matches.length === 0) { + hideSuggestions(); + return; + } + suggestions.innerHTML = matches + .map((m, i) => { + const area = m.areas?.[0]?.name + ? `${m.areas[0].name}` + : ""; + return `
  • ${m.name}${area}
  • `; + }) + .join(""); + suggestions.hidden = false; + input.setAttribute("aria-expanded", "true"); + activeIndex = -1; + } + + input.addEventListener("input", () => { + clearTimeout(debounce); + const q = input.value.trim(); + if (q.length < MIN_QUERY_LEN) { + hideSuggestions(); + onSelect(null); + return; + } + debounce = setTimeout(async () => { + try { + const res = await geocode({ query: { text: q, numResults: 20 } }); + showSuggestions((res.data || []).filter((r) => r.type === "STOP")); + } catch { + hideSuggestions(); + } + }, DEBOUNCE_MS); + }); + + suggestions.addEventListener("mousedown", (e) => { + const li = e.target.closest("[data-index]"); + if (!li) return; + e.preventDefault(); + const match = currentMatches[parseInt(li.dataset.index, 10)]; + input.value = match.name; + onSelect(match); + hideSuggestions(); + }); + + input.addEventListener("keydown", (e) => { + if (suggestions.hidden) return; + if (e.key === "ArrowDown") { + e.preventDefault(); + activeIndex = Math.min(activeIndex + 1, currentMatches.length - 1); + updateActive(); + } else if (e.key === "ArrowUp") { + e.preventDefault(); + activeIndex = Math.max(activeIndex - 1, 0); + updateActive(); + } else if (e.key === "Enter" && activeIndex >= 0) { + e.preventDefault(); + const match = currentMatches[activeIndex]; + input.value = match.name; + onSelect(match); + hideSuggestions(); + } else if (e.key === "Escape") { + hideSuggestions(); + } + }); + + function updateActive() { + const items = suggestions.querySelectorAll("[data-index]"); + items.forEach((item, i) => { + item.classList.toggle( + "o-route-planner__suggestion-item--active", + i === activeIndex, + ); + }); + } + + document.addEventListener("click", (e) => { + if (!input.contains(e.target) && !suggestions.contains(e.target)) { + hideSuggestions(); + } + }); +} + +function setDefaultTime() { + const input = document.getElementById("route-planner-time"); + const now = new Date(); + now.setSeconds(0, 0); + input.value = now.toISOString().slice(0, 16); +} + +function initRoutePlanner() { + if (!document.getElementById("route-planner-search")) return; + + setDefaultTime(); + loadData(); + + setupAutocomplete( + "route-planner-from", + "route-planner-from-suggestions", + (match) => { + fromPlace = match; + }, + ); + + setupAutocomplete( + "route-planner-to", + "route-planner-to-suggestions", + (match) => { + toPlace = match; + }, + ); + + document + .getElementById("route-planner-search") + .addEventListener("click", search); + + document + .getElementById("route-planner-swap") + .addEventListener("click", () => { + const fromInput = document.getElementById("route-planner-from"); + const toInput = document.getElementById("route-planner-to"); + [fromInput.value, toInput.value] = [toInput.value, fromInput.value]; + [fromPlace, toPlace] = [toPlace, fromPlace]; + }); +} + +if (document.readyState !== "loading") { + initRoutePlanner(); +} else { + document.addEventListener("DOMContentLoaded", initRoutePlanner); +} diff --git a/assets/sass/main.scss b/assets/sass/main.scss index 3aed6e2f5..5f4a26739 100644 --- a/assets/sass/main.scss +++ b/assets/sass/main.scss @@ -26,3 +26,4 @@ @import "dialog.scss"; @import "fip-validity.scss"; @import "404.scss"; +@import "routePlanner.scss"; diff --git a/assets/sass/routePlanner.scss b/assets/sass/routePlanner.scss new file mode 100644 index 000000000..4a9d4c01a --- /dev/null +++ b/assets/sass/routePlanner.scss @@ -0,0 +1,403 @@ +.o-route-planner { + &__fields { + display: flex; + flex-direction: column; + gap: 1rem; + max-width: 640px; + } + + &__field-group { + display: flex; + flex-direction: column; + gap: 0.25rem; + + label { + font-weight: 500; + font-size: 2rem; + } + } + + &__autocomplete-wrapper { + position: relative; + } + + &__suggestions { + position: absolute; + top: 100%; + left: 0; + right: 0; + z-index: 100; + background: var(--bg-default); + border: 1px solid var(--border-visible); + border-radius: var(--border-radius-s); + box-shadow: var(--box-shadow); + list-style: none; + margin: 0.25rem 0 0; + padding: 0.25rem 0; + max-height: 320px; + overflow-y: auto; + } + + &__suggestion-item { + padding: 0.65rem 1rem; + cursor: pointer; + font-size: 2rem; + + &:hover, + &--active { + background: var(--bg-neutral); + } + } + + &__suggestion-area { + display: block; + font-size: 1.4rem; + color: #666; + + [data-theme="dark"] & { + color: #aaa; + } + } + + &__swap { + align-self: flex-start; + margin-top: 0.25rem; + } + + &__results { + margin-top: 1.5rem; + } + + &__loading { + display: flex; + align-items: center; + gap: 0.75rem; + color: var(--color-onLight, #000); + font-size: 1.5rem; + padding: 1rem 0; + + &[hidden] { + display: none; + } + } + + &__spinner { + display: inline-block; + width: 1.25rem; + height: 1.25rem; + border: 2px solid var(--bg-neutral); + border-top-color: var(--link-default); + border-radius: 50%; + animation: route-planner-spin 0.7s linear infinite; + + @media (prefers-reduced-motion: reduce) { + animation: none; + border-top-color: var(--link-default); + } + } + + &__error { + color: map-get($tag-colors, error); + padding: 0.75rem 1rem; + border: 1px solid currentColor; + border-radius: var(--border-radius-s); + background: rgba(map-get($tag-colors, error), 0.05); + + [data-theme="dark"] & { + color: map-get($tag-colors-dark, error); + } + } + + &__no-results { + color: #666; + font-style: italic; + } + + &__itinerary { + border: 1px solid var(--border-visible); + border-radius: var(--border-radius-m); + margin-bottom: 1rem; + overflow: hidden; + + &[open] > summary .a-icon { + transform: rotate(180deg); + } + } + + &__itinerary-summary { + display: flex; + align-items: center; + gap: 1rem; + padding: 0.875rem 1rem; + cursor: pointer; + background: var(--bg-neutral); + flex-wrap: wrap; + list-style: none; + + &::-webkit-details-marker { + display: none; + } + + &:hover { + background: darken(#ebe9e1, 5%); + } + } + + &__itinerary-times { + font-weight: 600; + font-size: 1.75rem; + } + + &__itinerary-duration { + color: #555; + font-size: 2rem; + + [data-theme="dark"] & { + color: #aaa; + } + } + + &__itinerary-transfers { + font-size: 1.5rem; + background: var(--bg-default); + border-radius: 999px; + padding: 0.1rem 0.5rem; + border: 1px solid var(--border-visible); + } + + &__itinerary-legs { + padding: 1.25rem; + display: flex; + flex-direction: column; + gap: 0; + } + + &__leg-connector { + width: 2px; + height: 1.25rem; + background: var(--border-visible); + margin-left: 1.5rem; + } + + &__leg { + display: flex; + gap: 1rem; + align-items: flex-start; + + &--walk { + opacity: 0.7; + font-size: 1.5rem; + } + + &--transit { + .o-route-planner__leg-info { + flex: 1; + min-width: 0; + } + } + } + + &__leg-line { + flex-shrink: 0; + width: 8rem; + display: flex; + justify-content: center; + } + + &__leg-badge { + display: inline-block; + background: var(--leg-color, var(--link-default)); + color: var(--leg-text-color, #fff); + font-weight: 700; + font-size: 1.4rem; + padding: 0.25rem 0.5rem; + border-radius: var(--border-radius-s); + white-space: nowrap; + max-width: 8rem; + overflow: hidden; + text-overflow: ellipsis; + } + + &__leg-icon { + flex-shrink: 0; + width: 3rem; + text-align: center; + font-size: 2rem; + } + + &__leg-route { + font-size: 2rem; + margin-bottom: 0.3rem; + } + + &__agency { + font-size: 1.4rem; + color: #666; + margin-left: 0.25rem; + + [data-theme="dark"] & { + color: #aaa; + } + } + + &__leg-times { + display: flex; + align-items: center; + gap: 0.5rem; + font-size: 1.5rem; + color: #444; + margin-bottom: 0.4rem; + flex-wrap: wrap; + + [data-theme="dark"] & { + color: #ccc; + } + } + + &__leg-duration { + font-style: italic; + flex-shrink: 0; + } + + &__platform { + font-size: 1.3rem; + background: var(--bg-neutral); + border-radius: var(--border-radius-s); + padding: 0.1rem 0.3rem; + } + + &__leg-walk { + font-size: 1.5rem; + color: #555; + + [data-theme="dark"] & { + color: #aaa; + } + } + + &__leg-fip { + display: flex; + align-items: center; + gap: 0.5rem; + flex-wrap: wrap; + margin-top: 0.2rem; + } + + &__fip-badge { + display: inline-block; + font-size: 1.3rem; + font-weight: 600; + padding: 0.2rem 0.6rem; + border-radius: 999px; + border: 1px solid currentColor; + + &--accepted { + color: map-get($tag-colors, success); + background: rgba(map-get($tag-colors, success), 0.08); + + [data-theme="dark"] & { + color: map-get($tag-colors-dark, success); + background: rgba(map-get($tag-colors-dark, success), 0.1); + } + } + + &--partial { + color: map-get($tag-colors, warning); + background: rgba(map-get($tag-colors, warning), 0.08); + + [data-theme="dark"] & { + color: map-get($tag-colors-dark, warning); + background: rgba(map-get($tag-colors-dark, warning), 0.1); + } + } + + &--not-accepted { + color: map-get($tag-colors, error); + background: rgba(map-get($tag-colors, error), 0.08); + + [data-theme="dark"] & { + color: map-get($tag-colors-dark, error); + background: rgba(map-get($tag-colors-dark, error), 0.1); + } + } + + &--unknown { + color: map-get($tag-colors, info); + background: rgba(map-get($tag-colors, info), 0.08); + + [data-theme="dark"] & { + color: map-get($tag-colors-dark, info); + background: rgba(map-get($tag-colors-dark, info), 0.1); + } + } + } + + &__fip-link { + font-size: 1.3rem; + } + + &__fip-info { + display: inline-flex; + align-items: center; + background: none; + border: none; + padding: 0; + cursor: pointer; + color: var(--text-muted, currentColor); + opacity: 0.6; + vertical-align: middle; + + &:hover { + opacity: 1; + } + + .a-icon { + font-size: 2rem; + } + } + + &__fip-debug-popover { + position: fixed; + margin: auto; + padding: 0.75rem 1rem; + border: 1px solid var(--border-default, #ccc); + border-radius: 0.5rem; + background: var(--bg-default, #fff); + color: var(--text-default, #000); + font-size: 1.3rem; + max-width: 480px; + width: 90vw; + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); + + [data-theme="dark"] & { + box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5); + } + } + + &__fip-debug-table { + border-collapse: collapse; + width: 100%; + + td { + padding: 0.2rem 0.4rem; + vertical-align: top; + } + } + + &__fip-debug-key { + font-weight: 600; + white-space: nowrap; + padding-right: 1rem; + } + + &__fip-debug-val { + font-family: monospace; + word-break: break-all; + } +} + +@keyframes route-planner-spin { + to { + transform: rotate(360deg); + } +} diff --git a/content/country/austria/index.de.md b/content/country/austria/index.de.md index e3964f407..b193832be 100644 --- a/content/country/austria/index.de.md +++ b/content/country/austria/index.de.md @@ -4,18 +4,30 @@ title: "Österreich" country: "austria" params: operators_without_fip: - - Achenseebahn - - '[CAT (City Airport Train) Wien](/operator/oebb#wien-flughafen-city-airport-train-cat "CAT")' - - Graz–Köflacher Bahn (GKB) - - Montafonerbahn - - NÖVOG - - Pinzgauer Lokalbahn - - RegioJet - - Salzburger Lokalbahn - - Steiermärkische Landesbahnen - - WESTbahn - - Wiener Lokalbahn (Badner Bahn) - - Zillertalbahn + - name: Achenseebahn + query: + - name: '[CAT (City Airport Train) Wien](/operator/oebb#wien-flughafen-city-airport-train-cat "CAT")' + query: + - name: Graz–Köflacher Bahn (GKB) + query: + - name: Montafonerbahn + query: + - name: NÖVOG + query: + - name: Pinzgauer Lokalbahn + query: + - name: RegioJet + query: + - name: Salzburger Lokalbahn + query: + - name: Steiermärkische Landesbahnen + query: + - name: WESTbahn + query: + - name: Wiener Lokalbahn (Badner Bahn) + query: + - name: Zillertalbahn + query: --- ## FIP Nutzung diff --git a/content/country/austria/index.en.md b/content/country/austria/index.en.md index d89fa881f..cfa0178f3 100644 --- a/content/country/austria/index.en.md +++ b/content/country/austria/index.en.md @@ -4,18 +4,30 @@ title: "Austria" country: "austria" params: operators_without_fip: - - Achenseebahn - - '[CAT (City Airport Train) Vienna](/operator/oebb#vienna-airport-city-airport-train-cat "CAT")' - - Graz–Köflacher Bahn (GKB) - - Montafonerbahn - - NÖVOG - - Pinzgauer Lokalbahn - - RegioJet - - Salzburger Lokalbahn - - Steiermärkische Landesbahnen - - WESTbahn - - Wiener Lokalbahn (Badner Bahn) - - Zillertalbahn + - name: Achenseebahn + query: + - name: '[CAT (City Airport Train) Vienna](/operator/oebb#vienna-airport-city-airport-train-cat "CAT")' + query: + - name: Graz–Köflacher Bahn (GKB) + query: + - name: Montafonerbahn + query: + - name: NÖVOG + query: + - name: Pinzgauer Lokalbahn + query: + - name: RegioJet + query: + - name: Salzburger Lokalbahn + query: + - name: Steiermärkische Landesbahnen + query: + - name: WESTbahn + query: + - name: Wiener Lokalbahn (Badner Bahn) + query: + - name: Zillertalbahn + query: --- ## FIP Information diff --git a/content/country/austria/index.fr.md b/content/country/austria/index.fr.md index 3e2674efb..a39a13742 100644 --- a/content/country/austria/index.fr.md +++ b/content/country/austria/index.fr.md @@ -4,18 +4,30 @@ title: "Autriche" country: "austria" params: operators_without_fip: - - Achenseebahn - - ’[CAT (City Airport Train) Vienne](/operator/oebb#aéroport-de-vienne--city-airport-train-cat "CAT")’ - - Graz–Köflacher Bahn (GKB) - - Montafonerbahn - - NÖVOG - - Pinzgauer Lokalbahn - - RegioJet - - Salzburger Lokalbahn - - Steiermärkische Landesbahnen - - WESTbahn - - Wiener Lokalbahn (Badner Bahn) - - Zillertalbahn + - name: Achenseebahn + query: + - name: ’[CAT (City Airport Train) Vienne](/operator/oebb#aéroport-de-vienne--city-airport-train-cat "CAT")’ + query: + - name: Graz–Köflacher Bahn (GKB) + query: + - name: Montafonerbahn + query: + - name: NÖVOG + query: + - name: Pinzgauer Lokalbahn + query: + - name: RegioJet + query: + - name: Salzburger Lokalbahn + query: + - name: Steiermärkische Landesbahnen + query: + - name: WESTbahn + query: + - name: Wiener Lokalbahn (Badner Bahn) + query: + - name: Zillertalbahn + query: --- ## Informations FIP diff --git a/content/country/belgium/index.de.md b/content/country/belgium/index.de.md index 4bd5e334c..ebd2e79c4 100644 --- a/content/country/belgium/index.de.md +++ b/content/country/belgium/index.de.md @@ -4,8 +4,10 @@ title: "Belgien" country: "belgium" params: operators_without_fip: - - European Sleeper - - OUIGO + - name: European Sleeper + query: + - name: OUIGO + query: --- ## FIP Nutzung diff --git a/content/country/belgium/index.en.md b/content/country/belgium/index.en.md index 3818b497a..77e1734a2 100644 --- a/content/country/belgium/index.en.md +++ b/content/country/belgium/index.en.md @@ -4,8 +4,10 @@ title: "Belgium" country: "belgium" params: operators_without_fip: - - European Sleeper - - OUIGO + - name: European Sleeper + query: + - name: OUIGO + query: --- ## FIP Information diff --git a/content/country/belgium/index.fr.md b/content/country/belgium/index.fr.md index 372f96073..08b3b4735 100644 --- a/content/country/belgium/index.fr.md +++ b/content/country/belgium/index.fr.md @@ -4,8 +4,10 @@ title: "Belgique" country: "belgium" params: operators_without_fip: - - European Sleeper - - OUIGO + - name: European Sleeper + query: + - name: OUIGO + query: --- ## Informations FIP diff --git a/content/country/bulgaria/index.de.md b/content/country/bulgaria/index.de.md index d7679d870..61085841a 100644 --- a/content/country/bulgaria/index.de.md +++ b/content/country/bulgaria/index.de.md @@ -4,7 +4,8 @@ title: "Bulgarien" country: "bulgaria" params: operators_without_fip: - - Optima Express + - name: Optima Express + query: --- ## FIP Nutzung diff --git a/content/country/bulgaria/index.en.md b/content/country/bulgaria/index.en.md index e8cca3580..ed84a979d 100644 --- a/content/country/bulgaria/index.en.md +++ b/content/country/bulgaria/index.en.md @@ -4,7 +4,8 @@ title: "Bulgaria" country: "bulgaria" params: operators_without_fip: - - Optima Express + - name: Optima Express + query: --- ## FIP Information diff --git a/content/country/bulgaria/index.fr.md b/content/country/bulgaria/index.fr.md index dab58f35d..e1ad5623b 100644 --- a/content/country/bulgaria/index.fr.md +++ b/content/country/bulgaria/index.fr.md @@ -4,7 +4,8 @@ title: "Bulgarie" country: "bulgaria" params: operators_without_fip: - - Optima Express + - name: Optima Express + query: --- ## Informations FIP diff --git a/content/country/czechia/index.de.md b/content/country/czechia/index.de.md index 162f373e9..f86c07ecd 100644 --- a/content/country/czechia/index.de.md +++ b/content/country/czechia/index.de.md @@ -4,13 +4,20 @@ title: "Tschechien" country: "czechia" params: operators_without_fip: - - ARRIVA vlaky s. r. o. - - AŽD Praha s.r.o. - - GW Train Regio - - Jindřichohradecké místní dráhy (JHMD) - - Leo Express - - RegioJet - - Trilex / Die Länderbahn + - name: ARRIVA vlaky s. r. o. + query: + - name: AŽD Praha s.r.o. + query: + - name: GW Train Regio + query: + - name: Jindřichohradecké místní dráhy (JHMD) + query: + - name: Leo Express + query: + - name: RegioJet + query: + - name: Trilex / Die Länderbahn + query: --- ## FIP Nutzung diff --git a/content/country/czechia/index.en.md b/content/country/czechia/index.en.md index 1b2f97144..45db56db9 100644 --- a/content/country/czechia/index.en.md +++ b/content/country/czechia/index.en.md @@ -4,13 +4,20 @@ title: "Czechia" country: "czechia" params: operators_without_fip: - - ARRIVA vlaky s. r. o. - - AŽD Praha s.r.o. - - GW Train Regio - - Jindřichohradecké místní dráhy (JHMD) - - Leo Express - - RegioJet - - Trilex / Die Länderbahn + - name: ARRIVA vlaky s. r. o. + query: + - name: AŽD Praha s.r.o. + query: + - name: GW Train Regio + query: + - name: Jindřichohradecké místní dráhy (JHMD) + query: + - name: Leo Express + query: + - name: RegioJet + query: + - name: Trilex / Die Länderbahn + query: --- ## FIP Information diff --git a/content/country/czechia/index.fr.md b/content/country/czechia/index.fr.md index 04f8526d0..e170bc693 100644 --- a/content/country/czechia/index.fr.md +++ b/content/country/czechia/index.fr.md @@ -4,13 +4,20 @@ title: "Tchéquie" country: "czechia" params: operators_without_fip: - - ARRIVA vlaky s. r. o. - - AŽD Praha s.r.o. - - GW Train Regio - - Jindřichohradecké místní dráhy (JHMD) - - Leo Express - - RegioJet - - Trilex / Die Länderbahn + - name: ARRIVA vlaky s. r. o. + query: + - name: AŽD Praha s.r.o. + query: + - name: GW Train Regio + query: + - name: Jindřichohradecké místní dráhy (JHMD) + query: + - name: Leo Express + query: + - name: RegioJet + query: + - name: Trilex / Die Länderbahn + query: --- ## Informations FIP diff --git a/content/country/denmark/index.de.md b/content/country/denmark/index.de.md index b3737d735..08f7cfd45 100644 --- a/content/country/denmark/index.de.md +++ b/content/country/denmark/index.de.md @@ -4,13 +4,20 @@ title: "Dänemark" country: "denmark" params: operators_without_fip: - - GoCollective (ehemals Arriva Danmark) - - Lokaltog - - Øresundståg - - Midtjyske Jernbaner - - Nordjyske Jernbaner - - SJ - - Snälltåget + - name: GoCollective (ehemals Arriva Danmark) + query: + - name: Lokaltog + query: + - name: Øresundståg + query: + - name: Midtjyske Jernbaner + query: + - name: Nordjyske Jernbaner + query: + - name: SJ + query: + - name: Snälltåget + query: --- ## FIP Nutzung diff --git a/content/country/denmark/index.en.md b/content/country/denmark/index.en.md index c795f5a24..2320ea55a 100644 --- a/content/country/denmark/index.en.md +++ b/content/country/denmark/index.en.md @@ -4,13 +4,20 @@ title: "Denmark" country: "denmark" params: operators_without_fip: - - GoCollective (ehemals Arriva Danmark) - - Lokaltog - - Øresundståg - - Midtjyske Jernbaner - - Nordjyske Jernbaner - - SJ - - Snälltåget + - name: GoCollective (ehemals Arriva Danmark) + query: + - name: Lokaltog + query: + - name: Øresundståg + query: + - name: Midtjyske Jernbaner + query: + - name: Nordjyske Jernbaner + query: + - name: SJ + query: + - name: Snälltåget + query: --- ## FIP Information diff --git a/content/country/denmark/index.fr.md b/content/country/denmark/index.fr.md index 5513c5aa7..9bc58e390 100644 --- a/content/country/denmark/index.fr.md +++ b/content/country/denmark/index.fr.md @@ -4,13 +4,20 @@ title: "Danemark" country: "denmark" params: operators_without_fip: - - GoCollective (anciennement Arriva Danmark) - - Lokaltog - - Øresundståg - - Midtjyske Jernbaner - - Nordjyske Jernbaner - - SJ - - Snälltåget + - name: GoCollective (anciennement Arriva Danmark) + query: + - name: Lokaltog + query: + - name: Øresundståg + query: + - name: Midtjyske Jernbaner + query: + - name: Nordjyske Jernbaner + query: + - name: SJ + query: + - name: Snälltåget + query: --- ## Informations FIP diff --git a/content/country/france/index.de.md b/content/country/france/index.de.md index e33436df5..29b9b0b9f 100644 --- a/content/country/france/index.de.md +++ b/content/country/france/index.de.md @@ -4,13 +4,20 @@ title: "Frankreich" country: "france" params: operators_without_fip: - - CFC (Chemins de fer de la Corse / Eisenbahnen auf Korsika) - - '[Frecciarossa (Trenitalia)](/operator/fs/#internationale-frecciarossa-züge-nach-paris "Frecciarossa (Trenitalia)")' - - Getlink (Eurotunnel LeShuttle) - - GoVolta - - '[OUIGO](/operator/sncf#Fernverkehr "OUIGO")' - - RATP - - Transdev + - name: CFC (Chemins de fer de la Corse / Eisenbahnen auf Korsika) + query: + - name: '[Frecciarossa (Trenitalia)](/operator/fs/#internationale-frecciarossa-züge-nach-paris "Frecciarossa (Trenitalia)")' + query: + - name: Getlink (Eurotunnel LeShuttle) + query: + - name: GoVolta + query: + - name: '[OUIGO](/operator/sncf#Fernverkehr "OUIGO")' + query: + - name: RATP + query: + - name: Transdev + query: --- ## FIP Nutzung diff --git a/content/country/france/index.en.md b/content/country/france/index.en.md index a0aee3cd8..7ad3036e1 100644 --- a/content/country/france/index.en.md +++ b/content/country/france/index.en.md @@ -4,13 +4,20 @@ title: "France" country: "france" params: operators_without_fip: - - CFC (Chemins de fer de la Corse / Railways in Corsica) - - '[Frecciarossa (Trenitalia)](/operator/fs/#international-frecciarossa-trains-to-paris "Frecciarossa (Trenitalia)")' - - Getlink (Eurotunnel LeShuttle) - - GoVolta - - '[OUIGO](/operator/sncf#Fernverkehr "OUIGO")' - - RATP - - Transdev + - name: CFC (Chemins de fer de la Corse / Railways in Corsica) + query: + - name: '[Frecciarossa (Trenitalia)](/operator/fs/#international-frecciarossa-trains-to-paris "Frecciarossa (Trenitalia)")' + query: + - name: Getlink (Eurotunnel LeShuttle) + query: + - name: GoVolta + query: + - name: '[OUIGO](/operator/sncf#Fernverkehr "OUIGO")' + query: + - name: RATP + query: + - name: Transdev + query: --- ## FIP Information diff --git a/content/country/france/index.fr.md b/content/country/france/index.fr.md index 6b58949ef..a8f11c4ae 100644 --- a/content/country/france/index.fr.md +++ b/content/country/france/index.fr.md @@ -4,13 +4,20 @@ title: "France" country: "france" params: operators_without_fip: - - CFC (Chemins de fer de la Corse / Chemins de fer corses) - - ’[Frecciarossa (Trenitalia)](/operator/fs/#trains-frecciarossa-internationaux-vers-paris "Frecciarossa (Trenitalia)")’ - - Getlink (Eurotunnel LeShuttle) - - GoVolta - - ’[OUIGO](/operator/sncf#Fernverkehr "OUIGO")’ - - RATP - - Transdev + - name: CFC (Chemins de fer de la Corse / Chemins de fer corses) + query: + - name: ’[Frecciarossa (Trenitalia)](/operator/fs/#trains-frecciarossa-internationaux-vers-paris "Frecciarossa (Trenitalia)")’ + query: + - name: Getlink (Eurotunnel LeShuttle) + query: + - name: GoVolta + query: + - name: ’[OUIGO](/operator/sncf#Fernverkehr "OUIGO")’ + query: + - name: RATP + query: + - name: Transdev + query: --- ## Informations FIP diff --git a/content/country/germany/index.de.md b/content/country/germany/index.de.md index 041f67a40..3232102bf 100644 --- a/content/country/germany/index.de.md +++ b/content/country/germany/index.de.md @@ -4,88 +4,170 @@ title: "Deutschland" country: "germany" params: operators_without_fip: - - Abellio Rail Mitteldeutschland GmbH - - agilis – ag - - AKN Eisenbahn GmbH – AKN - - Albtal-Vekehrs-Gesellschaft mbH - - alex - Die Länderbahn GmbH DLB - - Arriva Danmark A/S - - Arriva Nederland - - Arverio Baden-Württemberg - - Arverio Bayern - - BahnTouristikExpress GmbH – BTE - - Bayerische Regiobahn – BRB - - Bayerische Zugspitzbahn Bergbahn AG - - Bentheimer Eisenbahn – BE - - Bodensee-Oberschwaben-Bahn - - Borkumer Kleinbahn- und Dampfschiffahrt GmbH - - Brohltal Schmalspureisenbahn Betriebs GmbH – P - - cantus Verkehrsgesellschaft - - City-Bahn Chemnitz – CB - - Daadetalbahn – Dab - - Dessau-Wörlitzer Eisenbahn – DWE - - Erfurter Bahn GmbH - - erixx – erx - - eurobahn - - European Sleeper – ES - - EVB ELBE-WESER GmbH – EVB - - FlixTrain GmbH – FLX - - Förderverein Mainschleifenbahn e.V. – MSB - - Freiberger Eisenbahngesellschaft mbH – FEG - - GoVolta - - Hamburger Hochbahn - - Hanseatische Eisenbahn GmbH - - Harzer Schmalspurbahn – HSB - - HLB Hessenbahn GmbH – HLB - - Kandertalbahn – KTB - - Kasbachtalbahn – P - - Leo Express - - Mecklenburgische Bäderbahn Molli – MBB - - metronom – ME - - Mitteldeutsche Regiobahn – MRB - - Mittelrheinbahn – MRB - - National Express – NX - - NEB Niederbarnimer Eisenbahn - - neg Niebüll GmbH – neg - - nordbahn – NBE - - NordWestBahn – NWB - - oberpfalzbahn - Die Länderbahn GmbH DLB - - Öchsle-Bahn Betriebsgesellschaft mbH – ÖBA - - Ostdeutsche Eisenbahn GmbH - - Pressnitztalbahn – PRE - - RDC Autozug Sylt GmbH – AS - - RDC Deutschland GmbH - - REGIOBAHN - - Regionalverkehre Start Deutschland GmbH (Start Mitteldeutschland) - - Regionalverkehre Start Deutschland GmbH (Start Niedersachsen-Mitte) - - Regionalverkehre Start Deutschland GmbH (Start Taunus) – STN - - Regionalverkehre Start Deutschland GmbH (Start Unterelbe) - - RegioTram – RT - - Rhein-Neckar-Verkehr GmbH - - RheinRuhrBahn (Transdev) – RRB - - Rurtalbahn – RTB - - Saarbahn - - Sächsisch-Oberlausitzer Eisenbahngesellschaft – SOE - - S-Bahn Hannover (Transdev) - - SBB GmbH – SBB - - Schienenverkehrsgesellschaft mbH (SVG) - - Schwäbische Alb-Bahn – SAB - - SDG Sächsische Dampfeisenbahngesellschaft mbH – SDG - - Snältågget – D - - Süd-Thüringen-Bahn GmbH - - SWEG Südwestdeutsche Landesverkehrs-GmbH – SWE - - Touristik-Eisenbahn Lüneburger Heide GmbH – TEL - - trilex - Die Länderbahn GmbH DLB – TL - - trilex-Express - Die Länderbahn GmbH DLB – TLX - - TRI Train Rental GmbH – TRI - - VIAS GmbH – VIA - - VIAS Rail GmbH – VIA - - vlexx - - vogtlandbahn - Die Länderbahn GmbH DLB – VBG - - waldbahn - Die Länderbahn GmbH DLB - - WESTbahn – WB - - WestfalenBahn – WFB - - Württembergische Eisenbahn-Gesellschaft mbH – WEG + - name: Abellio Rail Mitteldeutschland GmbH + query: + - name: agilis – ag + query: + - name: AKN Eisenbahn GmbH – AKN + query: + - name: Albtal-Vekehrs-Gesellschaft mbH + query: + - name: alex - Die Länderbahn GmbH DLB + query: + - name: Arriva Danmark A/S + query: + - name: Arriva Nederland + query: + - name: Arverio Baden-Württemberg + query: + - name: Arverio Bayern + query: + - name: BahnTouristikExpress GmbH – BTE + query: + - name: Bayerische Regiobahn – BRB + query: + - name: Bayerische Zugspitzbahn Bergbahn AG + query: + - name: Bentheimer Eisenbahn – BE + query: + - name: Bodensee-Oberschwaben-Bahn + query: + - name: Borkumer Kleinbahn- und Dampfschiffahrt GmbH + query: + - name: Brohltal Schmalspureisenbahn Betriebs GmbH – P + query: + - name: cantus Verkehrsgesellschaft + query: + - name: City-Bahn Chemnitz – CB + query: + - name: Daadetalbahn – Dab + query: + - name: Dessau-Wörlitzer Eisenbahn – DWE + query: + - name: Erfurter Bahn GmbH + query: + - name: erixx – erx + query: + - name: eurobahn + query: + - name: European Sleeper – ES + query: + - name: EVB ELBE-WESER GmbH – EVB + query: + - name: FlixTrain GmbH – FLX + query: + - name: Förderverein Mainschleifenbahn e.V. – MSB + query: + - name: Freiberger Eisenbahngesellschaft mbH – FEG + query: + - name: GoVolta + query: + - name: Hamburger Hochbahn + query: + - name: Hanseatische Eisenbahn GmbH + query: + - name: Harzer Schmalspurbahn – HSB + query: + - name: HLB Hessenbahn GmbH – HLB + query: + - name: Kandertalbahn – KTB + query: + - name: Kasbachtalbahn – P + query: + - name: Leo Express + query: + - name: Mecklenburgische Bäderbahn Molli – MBB + query: + - name: metronom – ME + query: + - name: Mitteldeutsche Regiobahn – MRB + query: + - name: Mittelrheinbahn – MRB + query: + - name: National Express – NX + query: agencyName == "National Express" + - name: NEB Niederbarnimer Eisenbahn + query: + - name: neg Niebüll GmbH – neg + query: + - name: nordbahn – NBE + query: + - name: NordWestBahn – NWB + query: + - name: oberpfalzbahn - Die Länderbahn GmbH DLB + query: + - name: Öchsle-Bahn Betriebsgesellschaft mbH – ÖBA + query: + - name: Ostdeutsche Eisenbahn GmbH + query: + - name: Pressnitztalbahn – PRE + query: + - name: RDC Autozug Sylt GmbH – AS + query: + - name: RDC Deutschland GmbH + query: + - name: REGIOBAHN + query: + - name: Regionalverkehre Start Deutschland GmbH (Start Mitteldeutschland) + query: + - name: Regionalverkehre Start Deutschland GmbH (Start Niedersachsen-Mitte) + query: + - name: Regionalverkehre Start Deutschland GmbH (Start Taunus) – STN + query: + - name: Regionalverkehre Start Deutschland GmbH (Start Unterelbe) + query: + - name: RegioTram – RT + query: + - name: Rhein-Neckar-Verkehr GmbH + query: + - name: RheinRuhrBahn (Transdev) – RRB + query: + - name: Rurtalbahn – RTB + query: + - name: Saarbahn + query: + - name: Sächsisch-Oberlausitzer Eisenbahngesellschaft – SOE + query: + - name: S-Bahn Hannover (Transdev) + query: + - name: SBB GmbH – SBB + query: + - name: Schienenverkehrsgesellschaft mbH (SVG) + query: + - name: Schwäbische Alb-Bahn – SAB + query: + - name: SDG Sächsische Dampfeisenbahngesellschaft mbH – SDG + query: + - name: Snältågget – D + query: + - name: Süd-Thüringen-Bahn GmbH + query: + - name: SWEG Südwestdeutsche Landesverkehrs-GmbH – SWE + query: + - name: Touristik-Eisenbahn Lüneburger Heide GmbH – TEL + query: + - name: trilex - Die Länderbahn GmbH DLB – TL + query: + - name: trilex-Express - Die Länderbahn GmbH DLB – TLX + query: + - name: TRI Train Rental GmbH – TRI + query: + - name: VIAS GmbH – VIA + query: + - name: VIAS Rail GmbH – VIA + query: + - name: vlexx + query: + - name: vogtlandbahn - Die Länderbahn GmbH DLB – VBG + query: + - name: waldbahn - Die Länderbahn GmbH DLB + query: + - name: WESTbahn – WB + query: + - name: WestfalenBahn – WFB + query: + - name: Württembergische Eisenbahn-Gesellschaft mbH – WEG + query: --- ## FIP Nutzung diff --git a/content/country/germany/index.en.md b/content/country/germany/index.en.md index 73668c8ce..e7aa5e40b 100644 --- a/content/country/germany/index.en.md +++ b/content/country/germany/index.en.md @@ -4,88 +4,170 @@ title: "Germany" country: "germany" params: operators_without_fip: - - Abellio Rail Mitteldeutschland GmbH - - agilis – ag - - AKN Eisenbahn GmbH – AKN - - Albtal-Vekehrs-Gesellschaft mbH - - alex - Die Länderbahn GmbH DLB - - Arriva Danmark A/S - - Arriva Nederland - - Arverio Baden-Württemberg - - Arverio Bayern - - BahnTouristikExpress GmbH – BTE - - Bayerische Regiobahn – BRB - - Bayerische Zugspitzbahn Bergbahn AG - - Bentheimer Eisenbahn – BE - - Bodensee-Oberschwaben-Bahn - - Borkumer Kleinbahn- und Dampfschiffahrt GmbH - - Brohltal Schmalspureisenbahn Betriebs GmbH – P - - cantus Verkehrsgesellschaft - - City-Bahn Chemnitz – CB - - Daadetalbahn – Dab - - Dessau-Wörlitzer Eisenbahn – DWE - - Erfurter Bahn GmbH - - erixx – erx - - eurobahn - - European Sleeper – ES - - EVB ELBE-WESER GmbH – EVB - - FlixTrain GmbH – FLX - - Förderverein Mainschleifenbahn e.V. – MSB - - Freiberger Eisenbahngesellschaft mbH – FEG - - GoVolta - - Hamburger Hochbahn - - Hanseatische Eisenbahn GmbH - - Harzer Schmalspurbahn – HSB - - HLB Hessenbahn GmbH – HLB - - Kandertalbahn – KTB - - Kasbachtalbahn – P - - Leo Express - - Mecklenburgische Bäderbahn Molli – MBB - - metronom – ME - - Mitteldeutsche Regiobahn – MRB - - Mittelrheinbahn – MRB - - National Express – NX - - NEB Niederbarnimer Eisenbahn - - neg Niebüll GmbH – neg - - nordbahn – NBE - - NordWestBahn – NWB - - oberpfalzbahn - Die Länderbahn GmbH DLB - - Öchsle-Bahn Betriebsgesellschaft mbH – ÖBA - - Ostdeutsche Eisenbahn GmbH - - Pressnitztalbahn – PRE - - RDC Autozug Sylt GmbH – AS - - RDC Deutschland GmbH - - REGIOBAHN - - Regionalverkehre Start Deutschland GmbH (Start Mitteldeutschland) - - Regionalverkehre Start Deutschland GmbH (Start Niedersachsen-Mitte) - - Regionalverkehre Start Deutschland GmbH (Start Taunus) – STN - - Regionalverkehre Start Deutschland GmbH (Start Unterelbe) - - RegioTram – RT - - Rhein-Neckar-Verkehr GmbH - - RheinRuhrBahn (Transdev) – RRB - - Rurtalbahn – RTB - - Saarbahn - - Sächsisch-Oberlausitzer Eisenbahngesellschaft – SOE - - S-Bahn Hannover (Transdev) - - SBB GmbH – SBB - - Schienenverkehrsgesellschaft mbH (SVG) - - Schwäbische Alb-Bahn – SAB - - SDG Sächsische Dampfeisenbahngesellschaft mbH – SDG - - Snältågget – D - - Süd-Thüringen-Bahn GmbH - - SWEG Südwestdeutsche Landesverkehrs-GmbH – SWE - - Touristik-Eisenbahn Lüneburger Heide GmbH – TEL - - trilex - Die Länderbahn GmbH DLB – TL - - trilex-Express - Die Länderbahn GmbH DLB – TLX - - TRI Train Rental GmbH – TRI - - VIAS GmbH – VIA - - VIAS Rail GmbH – VIA - - vlexx - - vogtlandbahn - Die Länderbahn GmbH DLB – VBG - - waldbahn - Die Länderbahn GmbH DLB - - WESTbahn – WB - - WestfalenBahn – WFB - - Württembergische Eisenbahn-Gesellschaft mbH – WEG + - name: Abellio Rail Mitteldeutschland GmbH + query: + - name: agilis – ag + query: + - name: AKN Eisenbahn GmbH – AKN + query: + - name: Albtal-Vekehrs-Gesellschaft mbH + query: + - name: alex - Die Länderbahn GmbH DLB + query: + - name: Arriva Danmark A/S + query: + - name: Arriva Nederland + query: + - name: Arverio Baden-Württemberg + query: + - name: Arverio Bayern + query: + - name: BahnTouristikExpress GmbH – BTE + query: + - name: Bayerische Regiobahn – BRB + query: + - name: Bayerische Zugspitzbahn Bergbahn AG + query: + - name: Bentheimer Eisenbahn – BE + query: + - name: Bodensee-Oberschwaben-Bahn + query: + - name: Borkumer Kleinbahn- und Dampfschiffahrt GmbH + query: + - name: Brohltal Schmalspureisenbahn Betriebs GmbH – P + query: + - name: cantus Verkehrsgesellschaft + query: + - name: City-Bahn Chemnitz – CB + query: + - name: Daadetalbahn – Dab + query: + - name: Dessau-Wörlitzer Eisenbahn – DWE + query: + - name: Erfurter Bahn GmbH + query: + - name: erixx – erx + query: + - name: eurobahn + query: + - name: European Sleeper – ES + query: + - name: EVB ELBE-WESER GmbH – EVB + query: + - name: FlixTrain GmbH – FLX + query: + - name: Förderverein Mainschleifenbahn e.V. – MSB + query: + - name: Freiberger Eisenbahngesellschaft mbH – FEG + query: + - name: GoVolta + query: + - name: Hamburger Hochbahn + query: + - name: Hanseatische Eisenbahn GmbH + query: + - name: Harzer Schmalspurbahn – HSB + query: + - name: HLB Hessenbahn GmbH – HLB + query: + - name: Kandertalbahn – KTB + query: + - name: Kasbachtalbahn – P + query: + - name: Leo Express + query: + - name: Mecklenburgische Bäderbahn Molli – MBB + query: + - name: metronom – ME + query: + - name: Mitteldeutsche Regiobahn – MRB + query: + - name: Mittelrheinbahn – MRB + query: + - name: National Express – NX + query: agencyName == "National Express" + - name: NEB Niederbarnimer Eisenbahn + query: + - name: neg Niebüll GmbH – neg + query: + - name: nordbahn – NBE + query: + - name: NordWestBahn – NWB + query: + - name: oberpfalzbahn - Die Länderbahn GmbH DLB + query: + - name: Öchsle-Bahn Betriebsgesellschaft mbH – ÖBA + query: + - name: Ostdeutsche Eisenbahn GmbH + query: + - name: Pressnitztalbahn – PRE + query: + - name: RDC Autozug Sylt GmbH – AS + query: + - name: RDC Deutschland GmbH + query: + - name: REGIOBAHN + query: + - name: Regionalverkehre Start Deutschland GmbH (Start Mitteldeutschland) + query: + - name: Regionalverkehre Start Deutschland GmbH (Start Niedersachsen-Mitte) + query: + - name: Regionalverkehre Start Deutschland GmbH (Start Taunus) – STN + query: + - name: Regionalverkehre Start Deutschland GmbH (Start Unterelbe) + query: + - name: RegioTram – RT + query: + - name: Rhein-Neckar-Verkehr GmbH + query: + - name: RheinRuhrBahn (Transdev) – RRB + query: + - name: Rurtalbahn – RTB + query: + - name: Saarbahn + query: + - name: Sächsisch-Oberlausitzer Eisenbahngesellschaft – SOE + query: + - name: S-Bahn Hannover (Transdev) + query: + - name: SBB GmbH – SBB + query: + - name: Schienenverkehrsgesellschaft mbH (SVG) + query: + - name: Schwäbische Alb-Bahn – SAB + query: + - name: SDG Sächsische Dampfeisenbahngesellschaft mbH – SDG + query: + - name: Snältågget – D + query: + - name: Süd-Thüringen-Bahn GmbH + query: + - name: SWEG Südwestdeutsche Landesverkehrs-GmbH – SWE + query: + - name: Touristik-Eisenbahn Lüneburger Heide GmbH – TEL + query: + - name: trilex - Die Länderbahn GmbH DLB – TL + query: + - name: trilex-Express - Die Länderbahn GmbH DLB – TLX + query: + - name: TRI Train Rental GmbH – TRI + query: + - name: VIAS GmbH – VIA + query: + - name: VIAS Rail GmbH – VIA + query: + - name: vlexx + query: + - name: vogtlandbahn - Die Länderbahn GmbH DLB – VBG + query: + - name: waldbahn - Die Länderbahn GmbH DLB + query: + - name: WESTbahn – WB + query: + - name: WestfalenBahn – WFB + query: + - name: Württembergische Eisenbahn-Gesellschaft mbH – WEG + query: --- ## FIP Information diff --git a/content/country/germany/index.fr.md b/content/country/germany/index.fr.md index 1a015854e..507d9ef23 100644 --- a/content/country/germany/index.fr.md +++ b/content/country/germany/index.fr.md @@ -4,88 +4,170 @@ title: "Allemagne" country: "germany" params: operators_without_fip: - - Abellio Rail Mitteldeutschland GmbH - - agilis – ag - - AKN Eisenbahn GmbH – AKN - - Albtal-Vekehrs-Gesellschaft mbH - - alex - Die Länderbahn GmbH DLB - - Arriva Danmark A/S - - Arriva Nederland - - Arverio Baden-Württemberg - - Arverio Bayern - - BahnTouristikExpress GmbH – BTE - - Bayerische Regiobahn – BRB - - Bayerische Zugspitzbahn Bergbahn AG - - Bentheimer Eisenbahn – BE - - Bodensee-Oberschwaben-Bahn - - Borkumer Kleinbahn- und Dampfschiffahrt GmbH - - Brohltal Schmalspureisenbahn Betriebs GmbH – P - - cantus Verkehrsgesellschaft - - City-Bahn Chemnitz – CB - - Daadetalbahn – Dab - - Dessau-Wörlitzer Eisenbahn – DWE - - Erfurter Bahn GmbH - - erixx – erx - - eurobahn - - European Sleeper – ES - - EVB ELBE-WESER GmbH – EVB - - FlixTrain GmbH – FLX - - Förderverein Mainschleifenbahn e.V. – MSB - - Freiberger Eisenbahngesellschaft mbH – FEG - - GoVolta - - Hamburger Hochbahn - - Hanseatische Eisenbahn GmbH - - Harzer Schmalspurbahn – HSB - - HLB Hessenbahn GmbH – HLB - - Kandertalbahn – KTB - - Kasbachtalbahn – P - - Leo Express - - Mecklenburgische Bäderbahn Molli – MBB - - metronom – ME - - Mitteldeutsche Regiobahn – MRB - - Mittelrheinbahn – MRB - - National Express – NX - - NEB Niederbarnimer Eisenbahn - - neg Niebüll GmbH – neg - - nordbahn – NBE - - NordWestBahn – NWB - - oberpfalzbahn - Die Länderbahn GmbH DLB - - Öchsle-Bahn Betriebsgesellschaft mbH – ÖBA - - Ostdeutsche Eisenbahn GmbH - - Pressnitztalbahn – PRE - - RDC Autozug Sylt GmbH – AS - - RDC Deutschland GmbH - - REGIOBAHN - - Regionalverkehre Start Deutschland GmbH (Start Mitteldeutschland) - - Regionalverkehre Start Deutschland GmbH (Start Niedersachsen-Mitte) - - Regionalverkehre Start Deutschland GmbH (Start Taunus) – STN - - Regionalverkehre Start Deutschland GmbH (Start Unterelbe) - - RegioTram – RT - - Rhein-Neckar-Verkehr GmbH - - RheinRuhrBahn (Transdev) – RRB - - Rurtalbahn – RTB - - Saarbahn - - Sächsisch-Oberlausitzer Eisenbahngesellschaft – SOE - - S-Bahn Hannover (Transdev) - - SBB GmbH – SBB - - Schienenverkehrsgesellschaft mbH (SVG) - - Schwäbische Alb-Bahn – SAB - - SDG Sächsische Dampfeisenbahngesellschaft mbH – SDG - - Snältågget – D - - Süd-Thüringen-Bahn GmbH - - SWEG Südwestdeutsche Landesverkehrs-GmbH – SWE - - Touristik-Eisenbahn Lüneburger Heide GmbH – TEL - - trilex - Die Länderbahn GmbH DLB – TL - - trilex-Express - Die Länderbahn GmbH DLB – TLX - - TRI Train Rental GmbH – TRI - - VIAS GmbH – VIA - - VIAS Rail GmbH – VIA - - vlexx - - vogtlandbahn - Die Länderbahn GmbH DLB – VBG - - waldbahn - Die Länderbahn GmbH DLB - - WESTbahn – WB - - WestfalenBahn – WFB - - Württembergische Eisenbahn-Gesellschaft mbH – WEG + - name: Abellio Rail Mitteldeutschland GmbH + query: + - name: agilis – ag + query: + - name: AKN Eisenbahn GmbH – AKN + query: + - name: Albtal-Vekehrs-Gesellschaft mbH + query: + - name: alex - Die Länderbahn GmbH DLB + query: + - name: Arriva Danmark A/S + query: + - name: Arriva Nederland + query: + - name: Arverio Baden-Württemberg + query: + - name: Arverio Bayern + query: + - name: BahnTouristikExpress GmbH – BTE + query: + - name: Bayerische Regiobahn – BRB + query: + - name: Bayerische Zugspitzbahn Bergbahn AG + query: + - name: Bentheimer Eisenbahn – BE + query: + - name: Bodensee-Oberschwaben-Bahn + query: + - name: Borkumer Kleinbahn- und Dampfschiffahrt GmbH + query: + - name: Brohltal Schmalspureisenbahn Betriebs GmbH – P + query: + - name: cantus Verkehrsgesellschaft + query: + - name: City-Bahn Chemnitz – CB + query: + - name: Daadetalbahn – Dab + query: + - name: Dessau-Wörlitzer Eisenbahn – DWE + query: + - name: Erfurter Bahn GmbH + query: + - name: erixx – erx + query: + - name: eurobahn + query: + - name: European Sleeper – ES + query: + - name: EVB ELBE-WESER GmbH – EVB + query: + - name: FlixTrain GmbH – FLX + query: + - name: Förderverein Mainschleifenbahn e.V. – MSB + query: + - name: Freiberger Eisenbahngesellschaft mbH – FEG + query: + - name: GoVolta + query: + - name: Hamburger Hochbahn + query: + - name: Hanseatische Eisenbahn GmbH + query: + - name: Harzer Schmalspurbahn – HSB + query: + - name: HLB Hessenbahn GmbH – HLB + query: + - name: Kandertalbahn – KTB + query: + - name: Kasbachtalbahn – P + query: + - name: Leo Express + query: + - name: Mecklenburgische Bäderbahn Molli – MBB + query: + - name: metronom – ME + query: + - name: Mitteldeutsche Regiobahn – MRB + query: + - name: Mittelrheinbahn – MRB + query: + - name: National Express – NX + query: agencyName == "National Express" + - name: NEB Niederbarnimer Eisenbahn + query: + - name: neg Niebüll GmbH – neg + query: + - name: nordbahn – NBE + query: + - name: NordWestBahn – NWB + query: + - name: oberpfalzbahn - Die Länderbahn GmbH DLB + query: + - name: Öchsle-Bahn Betriebsgesellschaft mbH – ÖBA + query: + - name: Ostdeutsche Eisenbahn GmbH + query: + - name: Pressnitztalbahn – PRE + query: + - name: RDC Autozug Sylt GmbH – AS + query: + - name: RDC Deutschland GmbH + query: + - name: REGIOBAHN + query: + - name: Regionalverkehre Start Deutschland GmbH (Start Mitteldeutschland) + query: + - name: Regionalverkehre Start Deutschland GmbH (Start Niedersachsen-Mitte) + query: + - name: Regionalverkehre Start Deutschland GmbH (Start Taunus) – STN + query: + - name: Regionalverkehre Start Deutschland GmbH (Start Unterelbe) + query: + - name: RegioTram – RT + query: + - name: Rhein-Neckar-Verkehr GmbH + query: + - name: RheinRuhrBahn (Transdev) – RRB + query: + - name: Rurtalbahn – RTB + query: + - name: Saarbahn + query: + - name: Sächsisch-Oberlausitzer Eisenbahngesellschaft – SOE + query: + - name: S-Bahn Hannover (Transdev) + query: + - name: SBB GmbH – SBB + query: + - name: Schienenverkehrsgesellschaft mbH (SVG) + query: + - name: Schwäbische Alb-Bahn – SAB + query: + - name: SDG Sächsische Dampfeisenbahngesellschaft mbH – SDG + query: + - name: Snältågget – D + query: + - name: Süd-Thüringen-Bahn GmbH + query: + - name: SWEG Südwestdeutsche Landesverkehrs-GmbH – SWE + query: + - name: Touristik-Eisenbahn Lüneburger Heide GmbH – TEL + query: + - name: trilex - Die Länderbahn GmbH DLB – TL + query: + - name: trilex-Express - Die Länderbahn GmbH DLB – TLX + query: + - name: TRI Train Rental GmbH – TRI + query: + - name: VIAS GmbH – VIA + query: + - name: VIAS Rail GmbH – VIA + query: + - name: vlexx + query: + - name: vogtlandbahn - Die Länderbahn GmbH DLB – VBG + query: + - name: waldbahn - Die Länderbahn GmbH DLB + query: + - name: WESTbahn – WB + query: + - name: WestfalenBahn – WFB + query: + - name: Württembergische Eisenbahn-Gesellschaft mbH – WEG + query: --- ## Informations FIP diff --git a/content/country/greece/index.de.md b/content/country/greece/index.de.md index 03a1b826b..d3df41d8b 100644 --- a/content/country/greece/index.de.md +++ b/content/country/greece/index.de.md @@ -4,8 +4,10 @@ title: "Griechenland" country: "greece" params: operators_without_fip: - - STASY (Urban Rail Transport S.A.) - - THEMA S.A. – Thessaloniki Metro + - name: STASY (Urban Rail Transport S.A.) + query: + - name: THEMA S.A. – Thessaloniki Metro + query: --- ## FIP Nutzung diff --git a/content/country/greece/index.en.md b/content/country/greece/index.en.md index 66b8c77a9..b3fcdd44d 100644 --- a/content/country/greece/index.en.md +++ b/content/country/greece/index.en.md @@ -4,8 +4,10 @@ title: "Greece" country: "greece" params: operators_without_fip: - - STASY (Urban Rail Transport S.A.) - - THEMA S.A. – Thessaloniki Metro + - name: STASY (Urban Rail Transport S.A.) + query: + - name: THEMA S.A. – Thessaloniki Metro + query: --- ## FIP Information diff --git a/content/country/greece/index.fr.md b/content/country/greece/index.fr.md index bfd619d1d..4b5758e16 100644 --- a/content/country/greece/index.fr.md +++ b/content/country/greece/index.fr.md @@ -4,8 +4,10 @@ title: "Grèce" country: "greece" params: operators_without_fip: - - STASY (Urban Rail Transport S.A.) - - THEMA S.A. – Thessaloniki Metro + - name: STASY (Urban Rail Transport S.A.) + query: + - name: THEMA S.A. – Thessaloniki Metro + query: --- ## Informations FIP diff --git a/content/country/ireland/index.de.md b/content/country/ireland/index.de.md index 37e1037d8..c9f66d477 100644 --- a/content/country/ireland/index.de.md +++ b/content/country/ireland/index.de.md @@ -4,7 +4,8 @@ title: "Irland" country: "ireland" params: operators_without_fip: - - Transdev (Luas - Straßenbahn Dublin) + - name: Transdev (Luas - Straßenbahn Dublin) + query: --- ## FIP Nutzung diff --git a/content/country/ireland/index.en.md b/content/country/ireland/index.en.md index 599690a57..9b53712ec 100644 --- a/content/country/ireland/index.en.md +++ b/content/country/ireland/index.en.md @@ -4,7 +4,8 @@ title: "Ireland" country: "ireland" params: operators_without_fip: - - Transdev (Luas - Dublin Tram) + - name: Transdev (Luas - Dublin Tram) + query: --- ## FIP Information diff --git a/content/country/ireland/index.fr.md b/content/country/ireland/index.fr.md index 117c49ffc..e4665d6db 100644 --- a/content/country/ireland/index.fr.md +++ b/content/country/ireland/index.fr.md @@ -4,7 +4,8 @@ title: "Irlande" country: "ireland" params: operators_without_fip: - - Transdev (Luas - Tramway de Dublin) + - name: Transdev (Luas - Tramway de Dublin) + query: --- ## Informations FIP diff --git a/content/country/italy/index.de.md b/content/country/italy/index.de.md index 5f21b4ddb..4df62d2b7 100644 --- a/content/country/italy/index.de.md +++ b/content/country/italy/index.de.md @@ -4,14 +4,22 @@ title: "Italien" country: "italy" params: operators_without_fip: - - Azienda Regionale Sarda Trasporti - - Circumflegrea - - Circumvesuviana - - Cumana - - European Sleeper - - '[Ferrovie Sud Est](/operator/fs#gültigkeit-fip-tickets "Ferrovie Sud Est")' - - Italo / NTV - - '[Trenord](/operator/fs#gültigkeit-fip-tickets "Trenord")' + - name: Azienda Regionale Sarda Trasporti + query: + - name: Circumflegrea + query: + - name: Circumvesuviana + query: + - name: Cumana + query: + - name: European Sleeper + query: + - name: '[Ferrovie Sud Est](/operator/fs#gültigkeit-fip-tickets "Ferrovie Sud Est")' + query: + - name: Italo / NTV + query: + - name: '[Trenord](/operator/fs#gültigkeit-fip-tickets "Trenord")' + query: --- ## FIP Nutzung diff --git a/content/country/italy/index.en.md b/content/country/italy/index.en.md index ea61fb3e6..fd9c679eb 100644 --- a/content/country/italy/index.en.md +++ b/content/country/italy/index.en.md @@ -4,14 +4,22 @@ title: "Italy" country: "italy" params: operators_without_fip: - - Azienda Regionale Sarda Trasporti - - Circumflegrea - - Circumvesuviana - - Cumana - - European Sleeper - - '[Ferrovie Sud Est](/operator/fs##validity-of-fip-tickets "Ferrovie Sud Est")' - - Italo / NTV - - '[Trenord](/operator/fs##validity-of-fip-tickets "Trenord")' + - name: Azienda Regionale Sarda Trasporti + query: + - name: Circumflegrea + query: + - name: Circumvesuviana + query: + - name: Cumana + query: + - name: European Sleeper + query: + - name: '[Ferrovie Sud Est](/operator/fs##validity-of-fip-tickets "Ferrovie Sud Est")' + query: + - name: Italo / NTV + query: + - name: '[Trenord](/operator/fs##validity-of-fip-tickets "Trenord")' + query: --- ## FIP Information diff --git a/content/country/italy/index.fr.md b/content/country/italy/index.fr.md index b42c7be20..b36eca668 100644 --- a/content/country/italy/index.fr.md +++ b/content/country/italy/index.fr.md @@ -4,14 +4,22 @@ title: "Italie" country: "italy" params: operators_without_fip: - - Azienda Regionale Sarda Trasporti - - Circumflegrea - - Circumvesuviana - - Cumana - - European Sleeper - - ’[Ferrovie Sud Est](/operator/fs#validité-des-billets-fip "Ferrovie Sud Est")’ - - Italo / NTV - - ’[Trenord](/operator/fs#validité-des-billets-fip "Trenord")’ + - name: Azienda Regionale Sarda Trasporti + query: + - name: Circumflegrea + query: + - name: Circumvesuviana + query: + - name: Cumana + query: + - name: European Sleeper + query: + - name: ’[Ferrovie Sud Est](/operator/fs#validité-des-billets-fip "Ferrovie Sud Est")’ + query: + - name: Italo / NTV + query: + - name: ’[Trenord](/operator/fs#validité-des-billets-fip "Trenord")’ + query: --- ## Informations FIP diff --git a/content/country/latvia/index.de.md b/content/country/latvia/index.de.md index a73da1920..f8b63e77f 100644 --- a/content/country/latvia/index.de.md +++ b/content/country/latvia/index.de.md @@ -4,7 +4,8 @@ title: "Lettland" country: "latvia" params: operators_without_fip: - - "Latvijas dzelzceļš (LDz)" + - name: "Latvijas dzelzceļš (LDz)" + query: --- ## FIP Nutzung diff --git a/content/country/latvia/index.en.md b/content/country/latvia/index.en.md index 9bb1e19be..031b9a539 100644 --- a/content/country/latvia/index.en.md +++ b/content/country/latvia/index.en.md @@ -4,7 +4,8 @@ title: "Latvia" country: "latvia" params: operators_without_fip: - - "Latvijas dzelzceļš (LDz)" + - name: "Latvijas dzelzceļš (LDz)" + query: --- ## FIP Information diff --git a/content/country/latvia/index.fr.md b/content/country/latvia/index.fr.md index b08bd0738..e2aa48370 100644 --- a/content/country/latvia/index.fr.md +++ b/content/country/latvia/index.fr.md @@ -4,7 +4,8 @@ title: "Lettonie" country: "latvia" params: operators_without_fip: - - "Latvijas dzelzceļš (LDz)" + - name: "Latvijas dzelzceļš (LDz)" + query: --- ## Informations FIP diff --git a/content/country/lithuania/index.de.md b/content/country/lithuania/index.de.md index ed5af6889..e8489ecb3 100644 --- a/content/country/lithuania/index.de.md +++ b/content/country/lithuania/index.de.md @@ -4,7 +4,8 @@ title: "Litauen" country: "lithuania" params: operators_without_fip: - - "Aukštaitijos siaurasis geležinkelis (Museumsbahn)" + - name: "Aukštaitijos siaurasis geležinkelis (Museumsbahn)" + query: --- ## FIP Nutzung diff --git a/content/country/lithuania/index.en.md b/content/country/lithuania/index.en.md index 3a82574b3..b33d87b3b 100644 --- a/content/country/lithuania/index.en.md +++ b/content/country/lithuania/index.en.md @@ -4,7 +4,8 @@ title: "Lithuania" country: "lithuania" params: operators_without_fip: - - "Aukštaitijos siaurasis geležinkelis (heritage railway)" + - name: "Aukštaitijos siaurasis geležinkelis (heritage railway)" + query: --- ## FIP Information diff --git a/content/country/lithuania/index.fr.md b/content/country/lithuania/index.fr.md index 0bc3f00df..13f73ae63 100644 --- a/content/country/lithuania/index.fr.md +++ b/content/country/lithuania/index.fr.md @@ -4,7 +4,8 @@ title: "Lituanie" country: "lithuania" params: operators_without_fip: - - "Aukštaitijos siaurasis geležinkelis (chemin de fer musée)" + - name: "Aukštaitijos siaurasis geležinkelis (chemin de fer musée)" + query: --- ## Informations FIP diff --git a/content/country/netherlands/index.de.md b/content/country/netherlands/index.de.md index bc86a8298..13ed29b48 100644 --- a/content/country/netherlands/index.de.md +++ b/content/country/netherlands/index.de.md @@ -4,14 +4,22 @@ title: "Niederlande" country: "netherlands" params: operators_without_fip: - - Arriva Nederland - - Breng - - Connexxion - - European Sleeper - - GoVolta - - Keolis Nederland - - Qbuzz - - VIAS Rail + - name: Arriva Nederland + query: + - name: Breng + query: + - name: Connexxion + query: + - name: European Sleeper + query: + - name: GoVolta + query: + - name: Keolis Nederland + query: + - name: Qbuzz + query: + - name: VIAS Rail + query: --- ## FIP Nutzung diff --git a/content/country/netherlands/index.en.md b/content/country/netherlands/index.en.md index d2c057ad6..fe869a155 100644 --- a/content/country/netherlands/index.en.md +++ b/content/country/netherlands/index.en.md @@ -4,14 +4,22 @@ title: "Netherlands" country: "netherlands" params: operators_without_fip: - - Arriva Nederland - - Breng - - Connexxion - - European Sleeper - - GoVolta - - Keolis Nederland - - Qbuzz - - VIAS Rail + - name: Arriva Nederland + query: + - name: Breng + query: + - name: Connexxion + query: + - name: European Sleeper + query: + - name: GoVolta + query: + - name: Keolis Nederland + query: + - name: Qbuzz + query: + - name: VIAS Rail + query: --- ## FIP Information diff --git a/content/country/netherlands/index.fr.md b/content/country/netherlands/index.fr.md index 4663688ff..c45b6cf78 100644 --- a/content/country/netherlands/index.fr.md +++ b/content/country/netherlands/index.fr.md @@ -4,14 +4,22 @@ title: "Pays-Bas" country: "netherlands" params: operators_without_fip: - - Arriva Nederland - - Breng - - Connexxion - - European Sleeper - - GoVolta - - Keolis Nederland - - Qbuzz - - VIAS Rail + - name: Arriva Nederland + query: + - name: Breng + query: + - name: Connexxion + query: + - name: European Sleeper + query: + - name: GoVolta + query: + - name: Keolis Nederland + query: + - name: Qbuzz + query: + - name: VIAS Rail + query: --- ## Informations FIP diff --git a/content/country/norway/index.de.md b/content/country/norway/index.de.md index cc1aa832d..2f6b6d681 100644 --- a/content/country/norway/index.de.md +++ b/content/country/norway/index.de.md @@ -4,10 +4,14 @@ title: "Norwegen" country: "norway" params: operators_without_fip: - - Arctic Train - - Flåmbahn - - Flytoget Airport Express - - SJ Sverige + - name: Arctic Train + query: + - name: Flåmbahn + query: + - name: Flytoget Airport Express + query: + - name: SJ Sverige + query: --- ## FIP Nutzung diff --git a/content/country/norway/index.en.md b/content/country/norway/index.en.md index b3bca60d7..0ad3b0de6 100644 --- a/content/country/norway/index.en.md +++ b/content/country/norway/index.en.md @@ -4,10 +4,14 @@ title: "Norway" country: "norway" params: operators_without_fip: - - Arctic Train - - Flåm Railway - - Flytoget Airport Express - - SJ Sverige + - name: Arctic Train + query: + - name: Flåm Railway + query: + - name: Flytoget Airport Express + query: + - name: SJ Sverige + query: --- ## FIP Information diff --git a/content/country/norway/index.fr.md b/content/country/norway/index.fr.md index 524115657..a80fb1e6d 100644 --- a/content/country/norway/index.fr.md +++ b/content/country/norway/index.fr.md @@ -4,10 +4,14 @@ title: "Norvège" country: "norway" params: operators_without_fip: - - Arctic Train - - Chemin de fer de Flåm - - Flytoget Airport Express - - SJ Sverige + - name: Arctic Train + query: + - name: Chemin de fer de Flåm + query: + - name: Flytoget Airport Express + query: + - name: SJ Sverige + query: --- ## Informations FIP diff --git a/content/country/poland/index.de.md b/content/country/poland/index.de.md index 88217bb57..f3c67c130 100644 --- a/content/country/poland/index.de.md +++ b/content/country/poland/index.de.md @@ -4,12 +4,18 @@ title: Polen country: "poland" params: operators_without_fip: - - Arriva - - Leo Express - - RegioJet - - Szybka Kolej Miejska w Warszawie - - Stowarzyszenie Kolejowych Przewozów Lokalnych (SKPL) - - Warszawska Kolej Dojazdowa (WKD) + - name: Arriva + query: + - name: Leo Express + query: + - name: RegioJet + query: + - name: Szybka Kolej Miejska w Warszawie + query: + - name: Stowarzyszenie Kolejowych Przewozów Lokalnych (SKPL) + query: + - name: Warszawska Kolej Dojazdowa (WKD) + query: --- ## FIP Nutzung diff --git a/content/country/poland/index.en.md b/content/country/poland/index.en.md index ea5b4745b..1c8af7869 100644 --- a/content/country/poland/index.en.md +++ b/content/country/poland/index.en.md @@ -4,12 +4,18 @@ title: "Poland" country: "poland" params: operators_without_fip: - - Arriva - - Leo Express - - RegioJet - - Szybka Kolej Miejska w Warszawie - - Stowarzyszenie Kolejowych Przewozów Lokalnych (SKPL) - - Warszawska Kolej Dojazdowa (WKD) + - name: Arriva + query: + - name: Leo Express + query: + - name: RegioJet + query: + - name: Szybka Kolej Miejska w Warszawie + query: + - name: Stowarzyszenie Kolejowych Przewozów Lokalnych (SKPL) + query: + - name: Warszawska Kolej Dojazdowa (WKD) + query: --- ## FIP Information diff --git a/content/country/poland/index.fr.md b/content/country/poland/index.fr.md index 0ae4af525..46ebe1e97 100644 --- a/content/country/poland/index.fr.md +++ b/content/country/poland/index.fr.md @@ -4,12 +4,18 @@ title: "Pologne" country: "poland" params: operators_without_fip: - - Arriva - - Leo Express - - RegioJet - - Szybka Kolej Miejska w Warszawie - - Stowarzyszenie Kolejowych Przewozów Lokalnych (SKPL) - - Warszawska Kolej Dojazdowa (WKD) + - name: Arriva + query: + - name: Leo Express + query: + - name: RegioJet + query: + - name: Szybka Kolej Miejska w Warszawie + query: + - name: Stowarzyszenie Kolejowych Przewozów Lokalnych (SKPL) + query: + - name: Warszawska Kolej Dojazdowa (WKD) + query: --- ## Informations FIP diff --git a/content/country/portugal/index.de.md b/content/country/portugal/index.de.md index 3e3455d74..003462cfa 100644 --- a/content/country/portugal/index.de.md +++ b/content/country/portugal/index.de.md @@ -4,7 +4,8 @@ title: "Portugal" country: "portugal" params: operators_without_fip: - - Fertagus + - name: Fertagus + query: --- ## FIP Nutzung diff --git a/content/country/portugal/index.en.md b/content/country/portugal/index.en.md index cdbd6a04a..2469edee4 100644 --- a/content/country/portugal/index.en.md +++ b/content/country/portugal/index.en.md @@ -4,7 +4,8 @@ title: "Portugal" country: "portugal" params: operators_without_fip: - - Fertagus + - name: Fertagus + query: --- ## FIP Information diff --git a/content/country/portugal/index.fr.md b/content/country/portugal/index.fr.md index 44fd2361c..c78d523e9 100644 --- a/content/country/portugal/index.fr.md +++ b/content/country/portugal/index.fr.md @@ -4,7 +4,8 @@ title: "Portugal" country: "portugal" params: operators_without_fip: - - Fertagus + - name: Fertagus + query: --- ## Informations FIP diff --git a/content/country/romania/index.de.md b/content/country/romania/index.de.md index f5a33f026..f9c181e78 100644 --- a/content/country/romania/index.de.md +++ b/content/country/romania/index.de.md @@ -4,12 +4,18 @@ title: "Rumänien" country: "romania" params: operators_without_fip: - - Astra Trains Carpatic (ATC) - - IRC (InterRegional Călători) - - RC (Regio Călători) - - SFTRA (Softrans) - - TFC (Transferoviar Călători) - - TFI (Ferotrans) + - name: Astra Trains Carpatic (ATC) + query: + - name: IRC (InterRegional Călători) + query: + - name: RC (Regio Călători) + query: + - name: SFTRA (Softrans) + query: + - name: TFC (Transferoviar Călători) + query: + - name: TFI (Ferotrans) + query: --- ## FIP Nutzung diff --git a/content/country/romania/index.en.md b/content/country/romania/index.en.md index c513c5fa1..e11f7b816 100644 --- a/content/country/romania/index.en.md +++ b/content/country/romania/index.en.md @@ -4,12 +4,18 @@ title: "Romania" country: "romania" params: operators_without_fip: - - Astra Trains Carpatic (ATC) - - IRC (InterRegional Călători) - - RC (Regio Călători) - - SFTRA (Softrans) - - TFC (Transferoviar Călători) - - TFI (Ferotrans) + - name: Astra Trains Carpatic (ATC) + query: + - name: IRC (InterRegional Călători) + query: + - name: RC (Regio Călători) + query: + - name: SFTRA (Softrans) + query: + - name: TFC (Transferoviar Călători) + query: + - name: TFI (Ferotrans) + query: --- ## FIP Information diff --git a/content/country/romania/index.fr.md b/content/country/romania/index.fr.md index 14662d1a4..7ddd61f14 100644 --- a/content/country/romania/index.fr.md +++ b/content/country/romania/index.fr.md @@ -4,12 +4,18 @@ title: "Roumanie" country: "romania" params: operators_without_fip: - - Astra Trains Carpatic (ATC) - - IRC (InterRegional Călători) - - RC (Regio Călători) - - SFTRA (Softrans) - - TFC (Transferoviar Călători) - - TFI (Ferotrans) + - name: Astra Trains Carpatic (ATC) + query: + - name: IRC (InterRegional Călători) + query: + - name: RC (Regio Călători) + query: + - name: SFTRA (Softrans) + query: + - name: TFC (Transferoviar Călători) + query: + - name: TFI (Ferotrans) + query: --- ## Informations FIP diff --git a/content/country/serbia/index.de.md b/content/country/serbia/index.de.md index 3749872bf..c6823f482 100644 --- a/content/country/serbia/index.de.md +++ b/content/country/serbia/index.de.md @@ -4,7 +4,8 @@ title: "Serbien" country: "serbia" params: operators_without_fip: - - Optima Express + - name: Optima Express + query: --- ## FIP Nutzung diff --git a/content/country/serbia/index.en.md b/content/country/serbia/index.en.md index e848f0651..bc3871aaf 100644 --- a/content/country/serbia/index.en.md +++ b/content/country/serbia/index.en.md @@ -4,7 +4,8 @@ title: "Serbia" country: "serbia" params: operators_without_fip: - - Optima Express + - name: Optima Express + query: --- ## FIP Information diff --git a/content/country/serbia/index.fr.md b/content/country/serbia/index.fr.md index dfb10ea75..5b4dc119a 100644 --- a/content/country/serbia/index.fr.md +++ b/content/country/serbia/index.fr.md @@ -4,7 +4,8 @@ title: "Serbie" country: "serbia" params: operators_without_fip: - - Optima Express + - name: Optima Express + query: --- ## Informations FIP diff --git a/content/country/slovakia/index.de.md b/content/country/slovakia/index.de.md index bf3a045c3..eac9df8c6 100644 --- a/content/country/slovakia/index.de.md +++ b/content/country/slovakia/index.de.md @@ -4,8 +4,10 @@ title: "Slowakei" country: "slovakia" params: operators_without_fip: - - RegioJet - - Leo Express + - name: RegioJet + query: + - name: Leo Express + query: --- ## FIP Nutzung diff --git a/content/country/slovakia/index.en.md b/content/country/slovakia/index.en.md index ceebc658b..8315dc604 100644 --- a/content/country/slovakia/index.en.md +++ b/content/country/slovakia/index.en.md @@ -4,8 +4,10 @@ title: "Slovakia" country: "slovakia" params: operators_without_fip: - - RegioJet - - Leo Express + - name: RegioJet + query: + - name: Leo Express + query: --- ## FIP Information diff --git a/content/country/slovakia/index.fr.md b/content/country/slovakia/index.fr.md index 8925dc2a1..063623184 100644 --- a/content/country/slovakia/index.fr.md +++ b/content/country/slovakia/index.fr.md @@ -4,8 +4,10 @@ title: "Slovaquie" country: "slovakia" params: operators_without_fip: - - RegioJet - - Leo Express + - name: RegioJet + query: + - name: Leo Express + query: --- ## Informations FIP diff --git a/content/country/slovenia/index.de.md b/content/country/slovenia/index.de.md index e5b72c623..f6d5053c9 100644 --- a/content/country/slovenia/index.de.md +++ b/content/country/slovenia/index.de.md @@ -4,7 +4,8 @@ title: "Slowenien" country: "slovenia" params: operators_without_fip: - - Optima Express + - name: Optima Express + query: --- ## FIP Nutzung diff --git a/content/country/slovenia/index.en.md b/content/country/slovenia/index.en.md index 0c095e6f5..df4034b95 100644 --- a/content/country/slovenia/index.en.md +++ b/content/country/slovenia/index.en.md @@ -4,7 +4,8 @@ title: "Slovenia" country: "slovenia" params: operators_without_fip: - - Optima Express + - name: Optima Express + query: --- ## FIP Information diff --git a/content/country/slovenia/index.fr.md b/content/country/slovenia/index.fr.md index 42ccdb018..3e6d6aad6 100644 --- a/content/country/slovenia/index.fr.md +++ b/content/country/slovenia/index.fr.md @@ -4,7 +4,8 @@ title: "Slovénie" country: "slovenia" params: operators_without_fip: - - Optima Express + - name: Optima Express + query: --- ## Informations FIP diff --git a/content/country/spain/index.de.md b/content/country/spain/index.de.md index 460778168..3354c7fe0 100644 --- a/content/country/spain/index.de.md +++ b/content/country/spain/index.de.md @@ -4,9 +4,12 @@ title: "Spanien" country: "spain" params: operators_without_fip: - - Iryo - - '[OUIGO](/operator/sncf#Fernverkehr "OUIGO")' - - '[Avlo](/operator/renfe#langstrecke "Avlo")' + - name: Iryo + query: + - name: '[OUIGO](/operator/sncf#Fernverkehr "OUIGO")' + query: + - name: '[Avlo](/operator/renfe#langstrecke "Avlo")' + query: --- ## FIP Nutzung diff --git a/content/country/spain/index.en.md b/content/country/spain/index.en.md index 81afa741e..f24cecbe6 100644 --- a/content/country/spain/index.en.md +++ b/content/country/spain/index.en.md @@ -4,9 +4,12 @@ title: "Spain" country: "spain" params: operators_without_fip: - - Iryo - - OUIGO - - '[Avlo](/operator/renfe#long-distance "Avlo")' + - name: Iryo + query: + - name: OUIGO + query: + - name: '[Avlo](/operator/renfe#long-distance "Avlo")' + query: --- ## FIP Information diff --git a/content/country/spain/index.fr.md b/content/country/spain/index.fr.md index 252ede131..a8947386d 100644 --- a/content/country/spain/index.fr.md +++ b/content/country/spain/index.fr.md @@ -4,9 +4,12 @@ title: "Espagne" country: "spain" params: operators_without_fip: - - Iryo - - OUIGO - - ’[Avlo](/operator/renfe#longue-distance "Avlo")’ + - name: Iryo + query: + - name: OUIGO + query: + - name: ’[Avlo](/operator/renfe#longue-distance "Avlo")’ + query: --- ## Informations FIP diff --git a/content/country/switzerland/index.de.md b/content/country/switzerland/index.de.md index eb23e1175..9102d8830 100644 --- a/content/country/switzerland/index.de.md +++ b/content/country/switzerland/index.de.md @@ -4,12 +4,18 @@ title: "Schweiz" country: "switzerland" params: operators_without_fip: - - European Sleeper - - Heimwehfluhbahn (Interlaken – Heimwehfluh) - - Luftseilbahn Wengen – Männlichen - - Gondelbahn Grindelwald – Männlichen (GGM) - - Seilbahn Mürren – Allmendhubel (SMA) - - Luftseilbahn Stechelberg (Mürren – Schilthorn) (LSMS) + - name: European Sleeper + query: + - name: Heimwehfluhbahn (Interlaken – Heimwehfluh) + query: + - name: Luftseilbahn Wengen – Männlichen + query: + - name: Gondelbahn Grindelwald – Männlichen (GGM) + query: + - name: Seilbahn Mürren – Allmendhubel (SMA) + query: + - name: Luftseilbahn Stechelberg (Mürren – Schilthorn) (LSMS) + query: --- ## FIP Nutzung diff --git a/content/country/switzerland/index.en.md b/content/country/switzerland/index.en.md index af23b8528..e2d6d2e39 100644 --- a/content/country/switzerland/index.en.md +++ b/content/country/switzerland/index.en.md @@ -4,12 +4,18 @@ title: "Switzerland" country: "switzerland" params: operators_without_fip: - - European Sleeper - - Heimwehfluhbahn (Interlaken – Heimwehfluh) - - Luftseilbahn Wengen – Männlichen - - Gondelbahn Grindelwald – Männlichen (GGM) - - Seilbahn Mürren – Allmendhubel (SMA) - - Luftseilbahn Stechelberg (Mürren – Schilthorn) (LSMS) + - name: European Sleeper + query: + - name: Heimwehfluhbahn (Interlaken – Heimwehfluh) + query: + - name: Luftseilbahn Wengen – Männlichen + query: + - name: Gondelbahn Grindelwald – Männlichen (GGM) + query: + - name: Seilbahn Mürren – Allmendhubel (SMA) + query: + - name: Luftseilbahn Stechelberg (Mürren – Schilthorn) (LSMS) + query: --- ## FIP Information diff --git a/content/country/switzerland/index.fr.md b/content/country/switzerland/index.fr.md index 90c878022..bb2b01a13 100644 --- a/content/country/switzerland/index.fr.md +++ b/content/country/switzerland/index.fr.md @@ -4,12 +4,18 @@ title: "Suisse" country: "switzerland" params: operators_without_fip: - - European Sleeper - - Heimwehfluhbahn (Interlaken – Heimwehfluh) - - Luftseilbahn Wengen – Männlichen - - Gondelbahn Grindelwald – Männlichen (GGM) - - Seilbahn Mürren – Allmendhubel (SMA) - - Luftseilbahn Stechelberg (Mürren – Schilthorn) (LSMS) + - name: European Sleeper + query: + - name: Heimwehfluhbahn (Interlaken – Heimwehfluh) + query: + - name: Luftseilbahn Wengen – Männlichen + query: + - name: Gondelbahn Grindelwald – Männlichen (GGM) + query: + - name: Seilbahn Mürren – Allmendhubel (SMA) + query: + - name: Luftseilbahn Stechelberg (Mürren – Schilthorn) (LSMS) + query: --- ## Informations FIP diff --git a/content/country/united-kingdom/index.de.md b/content/country/united-kingdom/index.de.md index bc20d208e..a9ff8f22a 100644 --- a/content/country/united-kingdom/index.de.md +++ b/content/country/united-kingdom/index.de.md @@ -4,21 +4,36 @@ title: "Vereinigtes Königreich" country: "united-kingdom" params: operators_without_fip: - - Blackpool Tramway - - Caledonian MacBrayne Ferries - - Docklands Light Railway - - Edinburgh Tramway - - Getlink (Eurotunnel LeShuttle) - - Glasgow Subway - - Hovertravel (Portsmouth nach Ryde auf der Isle of Wight) - - '[London Underground](/operator/gb#verkehr-in-london "London Underground")' - - Midland Metro (Birmingham nach Wolverhampton) - - Nottingham Express Transit - - Sheffield Supertram - - London Trams (ehemals Croydon Tramlink) - - Transport for Greater Manchester - - Tyne and Wear Metro - - Wightlink ferry (Portsmouth Harbour nach Ryde Pier Head station auf der Isle of Wight) + - name: Blackpool Tramway + query: + - name: Caledonian MacBrayne Ferries + query: + - name: Docklands Light Railway + query: + - name: Edinburgh Tramway + query: + - name: Getlink (Eurotunnel LeShuttle) + query: + - name: Glasgow Subway + query: + - name: Hovertravel (Portsmouth nach Ryde auf der Isle of Wight) + query: + - name: '[London Underground](/operator/gb#verkehr-in-london "London Underground")' + query: + - name: Midland Metro (Birmingham nach Wolverhampton) + query: + - name: Nottingham Express Transit + query: + - name: Sheffield Supertram + query: + - name: London Trams (ehemals Croydon Tramlink) + query: + - name: Transport for Greater Manchester + query: + - name: Tyne and Wear Metro + query: + - name: Wightlink ferry (Portsmouth Harbour nach Ryde Pier Head station auf der Isle of Wight) + query: --- diff --git a/content/country/united-kingdom/index.en.md b/content/country/united-kingdom/index.en.md index be153f7c2..873e7d90f 100644 --- a/content/country/united-kingdom/index.en.md +++ b/content/country/united-kingdom/index.en.md @@ -4,21 +4,36 @@ title: "United Kingdom" country: "united-kingdom" params: operators_without_fip: - - Blackpool Tramway - - Caledonian MacBrayne Ferries - - Docklands Light Railway - - Edinburgh Tramway - - Getlink (Eurotunnel LeShuttle) - - Glasgow Subway - - Hovertravel (Portsmouth to Ryde on the Isle of Wight) - - '[London Underground](/operator/gb#verkehr-in-london "London Underground")' - - Midland Metro (Birmingham to Wolverhampton) - - Nottingham Express Transit - - Sheffield Supertram - - London Trams (formerly Croydon Tramlink) - - Transport for Greater Manchester - - Tyne and Wear Metro - - Wightlink ferry (Portsmouth Harbour to Ryde Pier Head station on the Isle of Wight) + - name: Blackpool Tramway + query: + - name: Caledonian MacBrayne Ferries + query: + - name: Docklands Light Railway + query: + - name: Edinburgh Tramway + query: + - name: Getlink (Eurotunnel LeShuttle) + query: + - name: Glasgow Subway + query: + - name: Hovertravel (Portsmouth to Ryde on the Isle of Wight) + query: + - name: '[London Underground](/operator/gb#verkehr-in-london "London Underground")' + query: + - name: Midland Metro (Birmingham to Wolverhampton) + query: + - name: Nottingham Express Transit + query: + - name: Sheffield Supertram + query: + - name: London Trams (formerly Croydon Tramlink) + query: + - name: Transport for Greater Manchester + query: + - name: Tyne and Wear Metro + query: + - name: Wightlink ferry (Portsmouth Harbour to Ryde Pier Head station on the Isle of Wight) + query: --- diff --git a/content/country/united-kingdom/index.fr.md b/content/country/united-kingdom/index.fr.md index 0f577ca3a..e60b384a3 100644 --- a/content/country/united-kingdom/index.fr.md +++ b/content/country/united-kingdom/index.fr.md @@ -4,21 +4,36 @@ title: "Royaume-Uni" country: "united-kingdom" params: operators_without_fip: - - Blackpool Tramway - - Caledonian MacBrayne Ferries - - Docklands Light Railway - - Edinburgh Tramway - - Getlink (Eurotunnel LeShuttle) - - Glasgow Subway - - Hovertravel (Portsmouth à Ryde sur l’île de Wight) - - ’[London Underground](/operator/gb#verkehr-in-london "London Underground")’ - - Midland Metro (Birmingham à Wolverhampton) - - Nottingham Express Transit - - Sheffield Supertram - - London Trams (anciennement Croydon Tramlink) - - Transport for Greater Manchester - - Tyne and Wear Metro - - Wightlink ferry (Portsmouth Harbour à Ryde Pier Head station sur l’île de Wight) + - name: Blackpool Tramway + query: + - name: Caledonian MacBrayne Ferries + query: + - name: Docklands Light Railway + query: + - name: Edinburgh Tramway + query: + - name: Getlink (Eurotunnel LeShuttle) + query: + - name: Glasgow Subway + query: + - name: Hovertravel (Portsmouth à Ryde sur l’île de Wight) + query: + - name: ’[London Underground](/operator/gb#verkehr-in-london "London Underground")’ + query: + - name: Midland Metro (Birmingham à Wolverhampton) + query: + - name: Nottingham Express Transit + query: + - name: Sheffield Supertram + query: + - name: London Trams (anciennement Croydon Tramlink) + query: + - name: Transport for Greater Manchester + query: + - name: Tyne and Wear Metro + query: + - name: Wightlink ferry (Portsmouth Harbour à Ryde Pier Head station sur l’île de Wight) + query: --- diff --git a/content/general/_index.de.md b/content/general/_index.de.md index 0781ba536..af8df55cc 100644 --- a/content/general/_index.de.md +++ b/content/general/_index.de.md @@ -8,3 +8,4 @@ Hier findest du nützliche, allgemeine Informationen zur Reise mit FIP. - [Übergreifende Infos](general/generalinformation) - [FIP Beantragung](general/fip-validity) - [FAQ](general/faq) +- [Streckenplaner](general/route-planner) diff --git a/content/general/_index.en.md b/content/general/_index.en.md index 353da579d..fba0454eb 100644 --- a/content/general/_index.en.md +++ b/content/general/_index.en.md @@ -8,3 +8,4 @@ On this pages you can find useful, general information regarding FIP. - [General Information](general/generalinformation) - [FIP Application](general/fip-validity) - [FAQ](general/faq) +- [Route Planner](general/route-planner) diff --git a/content/general/_index.fr.md b/content/general/_index.fr.md index 75c7e20b2..67643a793 100644 --- a/content/general/_index.fr.md +++ b/content/general/_index.fr.md @@ -8,3 +8,4 @@ Sur ces pages, vous trouverez des informations générales et utiles concernant - [Informations générales](general/generalinformation) - [Demande FIP](general/fip-validity) - [FAQ](general/faq) +- [Planificateur d'itinéraire](general/route-planner) diff --git a/content/general/route-planner/index.de.md b/content/general/route-planner/index.de.md new file mode 100644 index 000000000..689cf2a98 --- /dev/null +++ b/content/general/route-planner/index.de.md @@ -0,0 +1,4 @@ +--- +draft: false +title: "Streckenplaner" +--- diff --git a/content/general/route-planner/index.en.md b/content/general/route-planner/index.en.md new file mode 100644 index 000000000..eb7ff77d6 --- /dev/null +++ b/content/general/route-planner/index.en.md @@ -0,0 +1,4 @@ +--- +draft: false +title: "Route Planner" +--- diff --git a/content/general/route-planner/index.fr.md b/content/general/route-planner/index.fr.md new file mode 100644 index 000000000..79b3d07b0 --- /dev/null +++ b/content/general/route-planner/index.fr.md @@ -0,0 +1,4 @@ +--- +draft: false +title: "Planificateur d'itinéraire" +--- diff --git a/content/operator/bdz/index.de.md b/content/operator/bdz/index.de.md index 69bfe09e4..389aad322 100644 --- a/content/operator/bdz/index.de.md +++ b/content/operator/bdz/index.de.md @@ -7,6 +7,9 @@ operator: "bdz" aliases: - /booking/bdz-ticket-office +params: + transitous_mapping: + - query: agencyName == "BDZ" --- Die Balgarski Darschawni Schelesnizi (BDŽ) ist die staatliche Eisenbahngesellschaft von [Bulgarien](/country/bulgaria "Bulgarien") und betreibt derzeit fast alle Verbindungen im Personenverkehr auf dem bulgarischen Schienennetz. diff --git a/content/operator/bdz/index.en.md b/content/operator/bdz/index.en.md index 0c71dc87e..07158bb56 100644 --- a/content/operator/bdz/index.en.md +++ b/content/operator/bdz/index.en.md @@ -7,6 +7,9 @@ operator: "bdz" aliases: - /booking/bdz-ticket-office +params: + transitous_mapping: + - query: agencyName == "BDZ" --- Balgarski Darschawni Schelesnizi (BDŽ) is the state railway company of [Bulgaria](/country/bulgaria "Bulgaria") and currently operates almost all passenger services on the Bulgarian rail network. diff --git a/content/operator/bdz/index.fr.md b/content/operator/bdz/index.fr.md index 5a9b41214..75e95f69a 100644 --- a/content/operator/bdz/index.fr.md +++ b/content/operator/bdz/index.fr.md @@ -7,6 +7,9 @@ operator: "bdz" aliases: - /booking/bdz-ticket-office +params: + transitous_mapping: + - query: agencyName == "BDZ" --- Balgarski Darschawni Schelesnizi (BDŽ) est la compagnie ferroviaire nationale de [Bulgarie](/country/bulgaria "Bulgarie") et exploite actuellement presque tous les services voyageurs sur le réseau ferroviaire bulgare. diff --git a/content/operator/bls/index.de.md b/content/operator/bls/index.de.md index 50c4688ba..5942f9d1d 100644 --- a/content/operator/bls/index.de.md +++ b/content/operator/bls/index.de.md @@ -6,6 +6,10 @@ country: aliases: - /booking/bls-ticket-office +params: + transitous_mapping: + - query: agencyName == "BLS AG" + - query: agencyName == "BLS" --- Die BLS (ehemals Bern-Lötschberg-Simplon-Bahn) ist eine öffentliche Eisenbahngesellschaft in der [Schweiz](/country/switzerland "Schweiz"). Sie betreibt viele Zug-, Bus- und Schiffsverbindungen und fährt primär im Kanton Bern. diff --git a/content/operator/bls/index.en.md b/content/operator/bls/index.en.md index 19524b9ef..2c3182577 100644 --- a/content/operator/bls/index.en.md +++ b/content/operator/bls/index.en.md @@ -6,6 +6,10 @@ country: aliases: - /booking/bls-ticket-office +params: + transitous_mapping: + - query: agencyName == "BLS AG" + - query: agencyName == "BLS" --- The BLS (formerly Bern-Lötschberg-Simplon-Bahn) is a public railway company in [Switzerland](/country/switzerland "Switzerland"). It operates many train, bus and ship connections and primarily runs in the Canton of Bern. diff --git a/content/operator/bls/index.fr.md b/content/operator/bls/index.fr.md index cf454dfeb..eeaeb1e71 100644 --- a/content/operator/bls/index.fr.md +++ b/content/operator/bls/index.fr.md @@ -6,6 +6,10 @@ country: aliases: - /booking/bls-ticket-office +params: + transitous_mapping: + - query: agencyName == "BLS AG" + - query: agencyName == "BLS" --- La BLS (anciennement Bern-Lötschberg-Simplon-Bahn) est une entreprise ferroviaire publique de la [Suisse](/country/switzerland "Suisse"). Elle exploite de nombreuses liaisons de trains, de bus et de bateaux et circule principalement dans le canton de Berne. diff --git a/content/operator/cd/index.de.md b/content/operator/cd/index.de.md index 3d0fbe200..aa1f68aaa 100644 --- a/content/operator/cd/index.de.md +++ b/content/operator/cd/index.de.md @@ -8,6 +8,10 @@ operator: "cd" aliases: - /booking/cd-ticket-office - /booking/cd-website +params: + transitous_mapping: + - query: agencyName == "České dráhy" + - query: agencyName == "ČD" --- Die České dráhy (ČD) ist die staatliche Eisenbahngesellschaft der [Tschechischen Republik](/country/czechia "Tschechischen Republik") und betreibt einen großen Teil der Verbindungen im Personenverkehr auf dem tschechischen Schienennetz. diff --git a/content/operator/cd/index.en.md b/content/operator/cd/index.en.md index 84969df93..5954ab355 100644 --- a/content/operator/cd/index.en.md +++ b/content/operator/cd/index.en.md @@ -8,6 +8,10 @@ operator: "cd" aliases: - /booking/cd-ticket-office - /booking/cd-website +params: + transitous_mapping: + - query: agencyName == "České dráhy" + - query: agencyName == "ČD" --- České dráhy (ČD) is the state railway company of the [Czech Republic](/country/czechia "Czech Republic") and operates a large part of passenger services on the Czech rail network. diff --git a/content/operator/cd/index.fr.md b/content/operator/cd/index.fr.md index a985750a0..434572f23 100644 --- a/content/operator/cd/index.fr.md +++ b/content/operator/cd/index.fr.md @@ -8,6 +8,10 @@ operator: "cd" aliases: - /booking/cd-ticket-office - /booking/cd-website +params: + transitous_mapping: + - query: agencyName == "České dráhy" + - query: agencyName == "ČD" --- České dráhy (ČD) est la compagnie ferroviaire nationale de la [République tchèque](/country/czechia "République tchèque") et exploite une grande partie des services voyageurs sur le réseau ferroviaire tchèque. diff --git a/content/operator/cfl/index.de.md b/content/operator/cfl/index.de.md index b64f300d4..1eac0a2b0 100644 --- a/content/operator/cfl/index.de.md +++ b/content/operator/cfl/index.de.md @@ -8,6 +8,9 @@ operator: "cfl" aliases: - /booking/cfl-phone - /booking/cfl-ticket-office +params: + transitous_mapping: + - query: agencyName == "CFL" --- Die CFL (Société nationale des chemins de fer luxembourgeois) ist die luxemburgische Staatsbahn und die wichtigste Bahngesellschaft in [Luxemburg](/country/luxembourg "Luxemburg"). diff --git a/content/operator/cfl/index.en.md b/content/operator/cfl/index.en.md index 6a9550f2b..09fcba3c1 100644 --- a/content/operator/cfl/index.en.md +++ b/content/operator/cfl/index.en.md @@ -8,6 +8,9 @@ operator: "cfl" aliases: - /booking/cfl-phone - /booking/cfl-ticket-office +params: + transitous_mapping: + - query: agencyName == "CFL" --- CFL (Société nationale des chemins de fer luxembourgeois) is the Luxembourgish state railway and the main railway company in [Luxembourg](/country/luxembourg "Luxembourg"). diff --git a/content/operator/cfl/index.fr.md b/content/operator/cfl/index.fr.md index 012aeb643..df31a2787 100644 --- a/content/operator/cfl/index.fr.md +++ b/content/operator/cfl/index.fr.md @@ -8,6 +8,9 @@ operator: "cfl" aliases: - /booking/cfl-phone - /booking/cfl-ticket-office +params: + transitous_mapping: + - query: agencyName == "CFL" --- La CFL (Société nationale des chemins de fer luxembourgeois) est la compagnie ferroviaire nationale du [Luxembourg](/country/luxembourg "Luxembourg") et la principale société ferroviaire du pays. diff --git a/content/operator/cfr/index.de.md b/content/operator/cfr/index.de.md index c323e5c80..005fe19ee 100644 --- a/content/operator/cfr/index.de.md +++ b/content/operator/cfr/index.de.md @@ -7,6 +7,9 @@ operator: "cfr" aliases: - /booking/cfr-ticket-office +params: + transitous_mapping: + - query: agencyName == "CFR Călători" --- Die Societatea Natională de Transport Feroviar de Călători “CFR Călători” S.A., kurz CFR Călători ist die staatliche Eisenbahngesellschaft von [Rumänien](/country/romania "Rumänien") und betreibt einen Großteil der Verbindungen im Personenverkehr auf dem rumänischen Schienennetz. diff --git a/content/operator/cfr/index.en.md b/content/operator/cfr/index.en.md index 5cc2077e2..2b8910d91 100644 --- a/content/operator/cfr/index.en.md +++ b/content/operator/cfr/index.en.md @@ -7,6 +7,9 @@ operator: "cfr" aliases: - /booking/cfr-ticket-office +params: + transitous_mapping: + - query: agencyName == "CFR Călători" --- The Societatea Natională de Transport Feroviar de Călători "CFR Călători" S.A., or CFR Călători for short, is the state railway company of [Romania](/country/romania "Romania") and operates the majority of passenger services on the Romanian rail network. diff --git a/content/operator/cfr/index.fr.md b/content/operator/cfr/index.fr.md index 32407621e..0fc028b1a 100644 --- a/content/operator/cfr/index.fr.md +++ b/content/operator/cfr/index.fr.md @@ -7,6 +7,9 @@ operator: "cfr" aliases: - /booking/cfr-ticket-office +params: + transitous_mapping: + - query: agencyName == "CFR Călători" --- La Societatea Natională de Transport Feroviar de Călători « CFR Călători » S.A., en abrégé CFR Călători, est la compagnie ferroviaire nationale de [Roumanie](/country/romania "Roumanie") et exploite la majorité des services voyageurs sur le réseau ferroviaire roumain. diff --git a/content/operator/cie/index.de.md b/content/operator/cie/index.de.md index d8f59e7cf..c66116748 100644 --- a/content/operator/cie/index.de.md +++ b/content/operator/cie/index.de.md @@ -8,6 +8,10 @@ operator: "cie" aliases: - /booking/irish-rail-ticket-office - /booking/irish-rail-website +params: + transitous_mapping: + - query: agencyName == "Irish Rail" + - query: agencyName == "Iarnród Éireann" --- Córas lompair Éireann (CIE) ist die staatliche Bahngesellschaft [Irlands](/country/ireland) und das Mutterunternehmen von Irish Rail (Iarnród Éireann). Die Tochtergesellschaft betreibt den Großteil des Schienenverkehrs in der Republik Irland, einschließlich der Hauptstrecken zwischen Dublin, Cork, Galway und Limerick sowie regionaler Verbindungen in der Gegend von Dublin und Cork. diff --git a/content/operator/cie/index.en.md b/content/operator/cie/index.en.md index a60d2c466..cb1dddee9 100644 --- a/content/operator/cie/index.en.md +++ b/content/operator/cie/index.en.md @@ -8,6 +8,10 @@ operator: "cie" aliases: - /booking/irish-rail-ticket-office - /booking/irish-rail-website +params: + transitous_mapping: + - query: agencyName == "Irish Rail" + - query: agencyName == "Iarnród Éireann" --- Córas Iompair Éireann (CIE) is the state railway company of [Ireland](/country/ireland) and the parent company of Irish Rail (Iarnród Éireann). The subsidiary operates the majority of rail services in the Republic of Ireland, including the main routes between Dublin, Cork, Galway and Limerick, as well as regional connections in the Dublin and Cork areas. diff --git a/content/operator/cie/index.fr.md b/content/operator/cie/index.fr.md index 7a7fe4409..e67d10a8f 100644 --- a/content/operator/cie/index.fr.md +++ b/content/operator/cie/index.fr.md @@ -8,6 +8,10 @@ operator: "cie" aliases: - /booking/irish-rail-ticket-office - /booking/irish-rail-website +params: + transitous_mapping: + - query: agencyName == "Irish Rail" + - query: agencyName == "Iarnród Éireann" --- Córas Iompair Éireann (CIE) est la compagnie ferroviaire nationale d’[Irlande](/country/ireland) et la société mère d’Irish Rail (Iarnród Éireann). La filiale exploite la majorité du trafic ferroviaire en République d’Irlande, notamment les lignes principales entre Dublin, Cork, Galway et Limerick, ainsi que des liaisons régionales dans les environs de Dublin et Cork. diff --git a/content/operator/cp/index.de.md b/content/operator/cp/index.de.md index 168863d2a..ae59e4887 100644 --- a/content/operator/cp/index.de.md +++ b/content/operator/cp/index.de.md @@ -7,6 +7,10 @@ operator: "cp" aliases: - /booking/cp-ticket-office +params: + transitous_mapping: + - query: agencyName == "CP - Comboios de Portugal" + - query: agencyName == "Comboios de Portugal" --- Die CP (Comboios de Portugal) ist die portugiesische Staatsbahn und die wichtigste Bahngesellschaft in [Portugal](/country/portugal "Portugal"). diff --git a/content/operator/cp/index.en.md b/content/operator/cp/index.en.md index 49baae4f9..aa6a57daf 100644 --- a/content/operator/cp/index.en.md +++ b/content/operator/cp/index.en.md @@ -7,6 +7,10 @@ operator: "cp" aliases: - /booking/cp-ticket-office +params: + transitous_mapping: + - query: agencyName == "CP - Comboios de Portugal" + - query: agencyName == "Comboios de Portugal" --- CP (Comboios de Portugal) is the Portuguese state railway and the main railway company in [Portugal](/country/portugal "Portugal"). diff --git a/content/operator/cp/index.fr.md b/content/operator/cp/index.fr.md index 97ccabade..153eb6d2b 100644 --- a/content/operator/cp/index.fr.md +++ b/content/operator/cp/index.fr.md @@ -7,6 +7,10 @@ operator: "cp" aliases: - /booking/cp-ticket-office +params: + transitous_mapping: + - query: agencyName == "CP - Comboios de Portugal" + - query: agencyName == "Comboios de Portugal" --- La CP (Comboios de Portugal) est la compagnie ferroviaire nationale portugaise et la principale société de chemins de fer au [Portugal](/country/portugal "Portugal"). diff --git a/content/operator/db/index.de.md b/content/operator/db/index.de.md index 98ecfd760..e43d0a813 100644 --- a/content/operator/db/index.de.md +++ b/content/operator/db/index.de.md @@ -10,6 +10,26 @@ aliases: - /booking/db-website - /booking/db-website-fip-db - /booking/db-website-fip-international +params: + transitous_mapping: + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("ICE") + category: ice + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("TGV") + category: tgv + - query: agencyName == "DB Fernverkehr AG" && (displayName.startsWith("RJ") || displayName.startsWith("RJX")) + category: rj + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("ECE") + category: ece + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("EC") + category: ec + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("IC") + category: ic + - query: (agencyName == "DB Regio AG NRW" || agencyName == "DB Regio AG Bayern" || agencyName == "DB Regio AG Mitte" || agencyName == "DB Regio AG Süd" || agencyName == "DB Regio AG Nord") && routeShortName.startsWith("RE") + category: re + - query: (agencyName == "DB Regio AG NRW" || agencyName == "DB Regio AG Bayern" || agencyName == "DB Regio AG Mitte" || agencyName == "DB Regio AG Süd" || agencyName == "DB Regio AG Nord") && routeShortName.startsWith("RB") + category: rb + - query: (agencyName == "DB Regio AG NRW" || agencyName == "DB Regio AG Bayern" || agencyName == "DB Regio AG Mitte" || agencyName == "DB Regio AG Süd" || agencyName == "DB Regio AG Nord") && mode == "SUBURBAN" + category: s --- Die Deutsche Bahn (DB) ist das größte Eisenbahnverkehrsunternehmen in [Deutschland](/country/germany "Deutschland") und betreibt den Großteil des Fernverkehrs sowie viele Verbindungen im Regionalverkehr. diff --git a/content/operator/db/index.en.md b/content/operator/db/index.en.md index f61c83b83..df50567a2 100644 --- a/content/operator/db/index.en.md +++ b/content/operator/db/index.en.md @@ -10,6 +10,26 @@ aliases: - /booking/db-website - /booking/db-website-fip-db - /booking/db-website-fip-international +params: + transitous_mapping: + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("ICE") + category: ice + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("TGV") + category: tgv + - query: agencyName == "DB Fernverkehr AG" && (displayName.startsWith("RJ") || displayName.startsWith("RJX")) + category: rj + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("ECE") + category: ece + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("EC") + category: ec + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("IC") + category: ic + - query: (agencyName == "DB Regio AG NRW" || agencyName == "DB Regio AG Bayern" || agencyName == "DB Regio AG Mitte" || agencyName == "DB Regio AG Süd" || agencyName == "DB Regio AG Nord") && routeShortName.startsWith("RE") + category: re + - query: (agencyName == "DB Regio AG NRW" || agencyName == "DB Regio AG Bayern" || agencyName == "DB Regio AG Mitte" || agencyName == "DB Regio AG Süd" || agencyName == "DB Regio AG Nord") && routeShortName.startsWith("RB") + category: rb + - query: (agencyName == "DB Regio AG NRW" || agencyName == "DB Regio AG Bayern" || agencyName == "DB Regio AG Mitte" || agencyName == "DB Regio AG Süd" || agencyName == "DB Regio AG Nord") && mode == "SUBURBAN" + category: s --- Deutsche Bahn (DB) is the largest railway company in [Germany](/country/germany "Germany"), operating most long-distance services as well as many regional connections. diff --git a/content/operator/db/index.fr.md b/content/operator/db/index.fr.md index 4d2109238..bc7c2cd76 100644 --- a/content/operator/db/index.fr.md +++ b/content/operator/db/index.fr.md @@ -10,6 +10,26 @@ aliases: - /booking/db-website - /booking/db-website-fip-db - /booking/db-website-fip-international +params: + transitous_mapping: + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("ICE") + category: ice + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("TGV") + category: tgv + - query: agencyName == "DB Fernverkehr AG" && (displayName.startsWith("RJ") || displayName.startsWith("RJX")) + category: rj + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("ECE") + category: ece + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("EC") + category: ec + - query: agencyName == "DB Fernverkehr AG" && displayName.startsWith("IC") + category: ic + - query: (agencyName == "DB Regio AG NRW" || agencyName == "DB Regio AG Bayern" || agencyName == "DB Regio AG Mitte" || agencyName == "DB Regio AG Süd" || agencyName == "DB Regio AG Nord") && routeShortName.startsWith("RE") + category: re + - query: (agencyName == "DB Regio AG NRW" || agencyName == "DB Regio AG Bayern" || agencyName == "DB Regio AG Mitte" || agencyName == "DB Regio AG Süd" || agencyName == "DB Regio AG Nord") && routeShortName.startsWith("RB") + category: rb + - query: (agencyName == "DB Regio AG NRW" || agencyName == "DB Regio AG Bayern" || agencyName == "DB Regio AG Mitte" || agencyName == "DB Regio AG Süd" || agencyName == "DB Regio AG Nord") && mode == "SUBURBAN" + category: s --- La Deutsche Bahn (DB) est la plus grande entreprise ferroviaire d’[Allemagne](/country/germany "Allemagne") et exploite la majorité du trafic longue distance ainsi que de nombreuses liaisons régionales. diff --git a/content/operator/dsb/index.de.md b/content/operator/dsb/index.de.md index 39bc2e0d8..436656aa4 100644 --- a/content/operator/dsb/index.de.md +++ b/content/operator/dsb/index.de.md @@ -9,6 +9,9 @@ aliases: - /booking/dsb-international-website - /booking/dsb-ticket-office - /booking/dsb-website +params: + transitous_mapping: + - query: agencyName == "DSB" --- Die DSB (Danske Statsbaner) ist die staatliche Eisenbahngesellschaft in [Dänemark](/country/denmark "Dänemark"). Sie betreibt den Großteil des Personenverkehrs auf dem dänischen Schienennetz. diff --git a/content/operator/dsb/index.en.md b/content/operator/dsb/index.en.md index 4cd669f0e..7b546a21b 100644 --- a/content/operator/dsb/index.en.md +++ b/content/operator/dsb/index.en.md @@ -9,6 +9,9 @@ aliases: - /booking/dsb-international-website - /booking/dsb-ticket-office - /booking/dsb-website +params: + transitous_mapping: + - query: agencyName == "DSB" --- The DSB (Danske Statsbaner) is the state-owned railway company in [Denmark](/country/denmark "Denmark"). It operates the majority of passenger traffic on the Danish rail network. diff --git a/content/operator/dsb/index.fr.md b/content/operator/dsb/index.fr.md index e4fd98956..b7b15a745 100644 --- a/content/operator/dsb/index.fr.md +++ b/content/operator/dsb/index.fr.md @@ -9,6 +9,9 @@ aliases: - /booking/dsb-international-website - /booking/dsb-ticket-office - /booking/dsb-website +params: + transitous_mapping: + - query: agencyName == "DSB" --- La DSB (Danske Statsbaner) est la compagnie ferroviaire publique du [Danemark](/country/denmark "Danemark"). Elle exploite la majorité du trafic voyageurs sur le réseau ferroviaire danois. diff --git a/content/operator/eurostar/index.de.md b/content/operator/eurostar/index.de.md index 83961ee0f..87a8522c1 100644 --- a/content/operator/eurostar/index.de.md +++ b/content/operator/eurostar/index.de.md @@ -16,6 +16,19 @@ aliases: - /booking/ffestiniogtravel-phone - /booking/internationalrail-email - /booking/railtourguide-website + +params: + transitous_mapping: + - query: agencyId == "EUROSTAR_CHANNEL" + category: eurostar-blue + - query: agencyId == "EUROSTAR_CONTINENTAL" + category: eurostar-red + - query: agencyName == "NS Int" && routeShortName == "Eurostar" + category: eurostar-red + - query: agencyName == "SNCF" && routeShortName == "THA" + category: eurostar-red + - query: agencyId == "EUROSTAR_SNOW" + category: eurostar-snow --- Eurostar ist ein Betreiber von Hochgeschwindigkeitszügen in Westeuropa. Ursprünglich wurden nur die blauen Züge zwischen London und Paris/Brüssel/Amsterdam durch den Eurotunnel als Eurostar bezeichnet. Nach dem Zusammenschluss zwischen Thalys und Eurostar werden auch die roten Thalys-Züge als Eurostar (Red) bezeichnet. Eurostar verkehrt in [Deutschland](/country/germany "Deutschland"), [Frankreich](/country/france "Frankreich"), dem [Vereinigten Königreich](/country/united-kingdom "Vereinigtes Königreich"), [Belgien](/country/belgium "Belgien") und den [Niederlanden](/country/netherlands "Niederlande"). diff --git a/content/operator/eurostar/index.en.md b/content/operator/eurostar/index.en.md index e1a7fccff..996fc7b91 100644 --- a/content/operator/eurostar/index.en.md +++ b/content/operator/eurostar/index.en.md @@ -16,6 +16,19 @@ aliases: - /booking/ffestiniogtravel-phone - /booking/internationalrail-email - /booking/railtourguide-website + +params: + transitous_mapping: + - query: agencyId == "EUROSTAR_CHANNEL" + category: eurostar-blue + - query: agencyId == "EUROSTAR_CONTINENTAL" + category: eurostar-red + - query: agencyName == "NS Int" && routeShortName == "Eurostar" + category: eurostar-red + - query: agencyName == "SNCF" && routeShortName == "THA" + category: eurostar-red + - query: agencyId == "EUROSTAR_SNOW" + category: eurostar-snow --- Eurostar is an operator of high-speed trains in Western Europe. Originally, only the blue trains between London and Paris/Brussels/Amsterdam through the Eurotunnel were referred to as Eurostar. After the merger between Thalys and Eurostar, the red Thalys trains are now also referred to as Eurostar (Red). Eurostar operates in [Germany](/country/germany "Germany"), [France](/country/france "France"), the [United Kingdom](/country/united-kingdom "United Kingdom"), [Belgium](/country/belgium "Belgium"), and the [Netherlands](/country/netherlands "Netherlands"). diff --git a/content/operator/eurostar/index.fr.md b/content/operator/eurostar/index.fr.md index 52e55c9ab..d4f3c1326 100644 --- a/content/operator/eurostar/index.fr.md +++ b/content/operator/eurostar/index.fr.md @@ -16,6 +16,18 @@ aliases: - /booking/ffestiniogtravel-phone - /booking/internationalrail-email - /booking/railtourguide-website +params: + transitous_mapping: + - query: agencyId == "EUROSTAR_CHANNEL" + category: eurostar-blue + - query: agencyId == "EUROSTAR_CONTINENTAL" + category: eurostar-red + - query: agencyName == "NS Int" && routeShortName == "Eurostar" + category: eurostar-red + - query: agencyName == "SNCF" && routeShortName == "THA" + category: eurostar-red + - query: agencyId == "EUROSTAR_SNOW" + category: eurostar-snow --- Eurostar est un opérateur de trains à grande vitesse en Europe de l’Ouest. À l’origine, seuls les trains bleus entre Londres et Paris/Bruxelles/Amsterdam via l’Eurotunnel étaient désignés comme Eurostar. Depuis la fusion entre Thalys et Eurostar, les anciens trains rouges Thalys sont désormais appelés Eurostar (Rouge). Eurostar circule en [Allemagne](/country/germany "Allemagne"), [France](/country/france "France"), au [Royaume-Uni](/country/united-kingdom "Royaume-Uni"), en [Belgique](/country/belgium "Belgique") et aux [Pays-Bas](/country/netherlands "Pays-Bas"). diff --git a/content/operator/fs/index.de.md b/content/operator/fs/index.de.md index b2e0acccd..7a9ddd20b 100644 --- a/content/operator/fs/index.de.md +++ b/content/operator/fs/index.de.md @@ -9,6 +9,9 @@ aliases: - /booking/fs-ticket-machine - /booking/fs-ticket-office - /booking/fs-website +params: + transitous_mapping: + - query: agencyName == "Trenitalia" --- Ferrovie dello Stato Italiane (FS) ist die italienische Staatsbahn. FIP Vergünstigungen gelten jedoch nur bei der Tochtergesellschaft Trenitalia in [Italien](/country/italy "Italien"). diff --git a/content/operator/fs/index.en.md b/content/operator/fs/index.en.md index 62b161d22..d9216e824 100644 --- a/content/operator/fs/index.en.md +++ b/content/operator/fs/index.en.md @@ -9,6 +9,9 @@ aliases: - /booking/fs-ticket-machine - /booking/fs-ticket-office - /booking/fs-website +params: + transitous_mapping: + - query: agencyName == "Trenitalia" --- Ferrovie dello Stato Italiane (FS) is the Italian state railway. FIP discounts only apply to its subsidiary Trenitalia in [Italy](/country/italy "Italy"). diff --git a/content/operator/fs/index.fr.md b/content/operator/fs/index.fr.md index f96775cea..6f2363fe1 100644 --- a/content/operator/fs/index.fr.md +++ b/content/operator/fs/index.fr.md @@ -9,6 +9,9 @@ aliases: - /booking/fs-ticket-machine - /booking/fs-ticket-office - /booking/fs-website +params: + transitous_mapping: + - query: agencyName == "Trenitalia" --- Ferrovie dello Stato Italiane (FS) est la compagnie ferroviaire nationale italienne. Les rabais FIP ne s’appliquent qu’à sa filiale Trenitalia en [Italie](/country/italy "Italie"). diff --git a/content/operator/gysev/index.de.md b/content/operator/gysev/index.de.md index 615f1a890..07eb04f39 100644 --- a/content/operator/gysev/index.de.md +++ b/content/operator/gysev/index.de.md @@ -9,6 +9,10 @@ aliases: - /booking/mav-ticket-machine - /booking/mav-ticket-office - /booking/mav-website +params: + transitous_mapping: + - query: agencyName == "GYSEV" + - query: agencyName == "Raaberbahn" --- Die Raab-Oedenburg-Ebenfurter Eisenbahn AG (ungarisch Győr-Sopron-Ebenfurti Vasút Zrt.), kurz GySEV oder Raaberbahn ist ein privates ungarisches Eisenbahnunternehmen, welches Regionalzüge in Ungarn und [Österreich](/country/austria "Österreich") betreibt. Die Züge verkehren hauptsächlich südlich und östlich des Neusiedlersees (Westungarn), teilweise sind sie sogar auf eigener Infrastruktur unterwegs. diff --git a/content/operator/gysev/index.en.md b/content/operator/gysev/index.en.md index 60f342c76..a8bfbed0d 100644 --- a/content/operator/gysev/index.en.md +++ b/content/operator/gysev/index.en.md @@ -9,6 +9,10 @@ aliases: - /booking/mav-ticket-machine - /booking/mav-ticket-office - /booking/mav-website +params: + transitous_mapping: + - query: agencyName == "GYSEV" + - query: agencyName == "Raaberbahn" --- The Raab-Oedenburg-Ebenfurter Eisenbahn AG (Hungarian: Győr-Sopron-Ebenfurti Vasút Zrt.), short: GySEV or Raaberbahn, is a private Hungarian railway company that operates regional trains in Hungary and [Austria](/country/austria "Austria"). They primarily operate passenger services south and east of Lake Neusiedl (Western Hungary), partly even on their own infrastructure. diff --git a/content/operator/gysev/index.fr.md b/content/operator/gysev/index.fr.md index 93d187b7f..2900b82ce 100644 --- a/content/operator/gysev/index.fr.md +++ b/content/operator/gysev/index.fr.md @@ -9,6 +9,10 @@ aliases: - /booking/mav-ticket-machine - /booking/mav-ticket-office - /booking/mav-website +params: + transitous_mapping: + - query: agencyName == "GYSEV" + - query: agencyName == "Raaberbahn" --- La Raab-Oedenburg-Ebenfurter Eisenbahn AG (en hongrois Győr-Sopron-Ebenfurti Vasút Zrt.), abrégée GySEV ou Raaberbahn, est une compagnie ferroviaire privée hongroise qui exploite des trains régionaux en Hongrie et en [Autriche](/country/austria "Autriche"). Elle assure principalement le transport de voyageurs au sud et à l’est du lac de Neusiedl (ouest de la Hongrie), parfois même sur sa propre infrastructure. diff --git a/content/operator/ht/index.de.md b/content/operator/ht/index.de.md index 44d40f654..771ae0679 100644 --- a/content/operator/ht/index.de.md +++ b/content/operator/ht/index.de.md @@ -8,6 +8,10 @@ operator: "ht" aliases: - /booking/ht-ticket-office - /booking/ht-website +params: + transitous_mapping: + - query: agencyName == "HŽ Putnički prijevoz" + - query: agencyName == "HŽ" --- Die Hellenic Train S.A. (Ελληνικοί Σιδηρόδρομοι Α.Ε.) betreibt den gesamten staatlichen Personenverkehr auf dem griechischen Normalspurnetz. Das Unternehmen betreibt Fern-, Regional- und den Vorortverkehr („Proastiakos“). Seit 2017 ist es eine hundertprozentige Tochter der italienischen Staatsbahn Ferrovie dello Stato Italiane (FS). diff --git a/content/operator/ht/index.en.md b/content/operator/ht/index.en.md index d73a16542..d495e5321 100644 --- a/content/operator/ht/index.en.md +++ b/content/operator/ht/index.en.md @@ -8,6 +8,10 @@ operator: "ht" aliases: - /booking/ht-ticket-office - /booking/ht-website +params: + transitous_mapping: + - query: agencyName == "HŽ Putnički prijevoz" + - query: agencyName == "HŽ" --- Hellenic Train S.A. (Ελληνικοί Σιδηρόδρομοι Α.Ε.) operates all state passenger services on the Greek standard-gauge network. The company runs long-distance, regional and suburban services ("Proastiakos"). Since 2017, it has been a wholly owned subsidiary of the Italian state railway Ferrovie dello Stato Italiane (FS). diff --git a/content/operator/ht/index.fr.md b/content/operator/ht/index.fr.md index 242b4b2a6..78f10129a 100644 --- a/content/operator/ht/index.fr.md +++ b/content/operator/ht/index.fr.md @@ -8,6 +8,10 @@ operator: "ht" aliases: - /booking/ht-ticket-office - /booking/ht-website +params: + transitous_mapping: + - query: agencyName == "HŽ Putnički prijevoz" + - query: agencyName == "HŽ" --- Hellenic Train S.A. (Ελληνικοί Σιδηρόδρομοι Α.Ε.) exploite l’ensemble du transport de voyageurs de l’État sur le réseau grec à voie normale. L’entreprise exploite des services grandes lignes, régionaux et de banlieue (« Proastiakos »). Depuis 2017, elle est une filiale à 100 % des chemins de fer italiens Ferrovie dello Stato Italiane (FS). diff --git a/content/operator/kd/index.de.md b/content/operator/kd/index.de.md index 430241bc1..a304c005f 100644 --- a/content/operator/kd/index.de.md +++ b/content/operator/kd/index.de.md @@ -9,6 +9,9 @@ aliases: - /booking/kd-ticket-machine - /booking/kd-ticket-office - /booking/kd-website +params: + transitous_mapping: + - query: agencyName == "Koleje Dolnośląskie" --- Die Koleje Dolnośląskie, kurz KD, ist ein polnisches Eisenbahnverkehrsunternehmen, das hauptsächlich Regionalverkehr in der Woiwodschaft Niederschlesien anbietet. Es ist eines der insgesamt fünf verschiedenen Unternehmen, das in [Polen](/country/poland) FIP anbietet. diff --git a/content/operator/kd/index.en.md b/content/operator/kd/index.en.md index 857bb8071..7a704ce63 100644 --- a/content/operator/kd/index.en.md +++ b/content/operator/kd/index.en.md @@ -9,6 +9,9 @@ aliases: - /booking/kd-ticket-machine - /booking/kd-ticket-office - /booking/kd-website +params: + transitous_mapping: + - query: agencyName == "Koleje Dolnośląskie" --- Koleje Dolnośląskie (KD) is a Polish railway company offering regional services in the Lower Silesia Province. It is one of five different operators in [Poland](/country/poland) which provide FIP benefits. diff --git a/content/operator/kd/index.fr.md b/content/operator/kd/index.fr.md index 899b93fa6..cc125ac39 100644 --- a/content/operator/kd/index.fr.md +++ b/content/operator/kd/index.fr.md @@ -9,6 +9,9 @@ aliases: - /booking/kd-ticket-machine - /booking/kd-ticket-office - /booking/kd-website +params: + transitous_mapping: + - query: agencyName == "Koleje Dolnośląskie" --- Koleje Dolnośląskie (KD) est une compagnie ferroviaire polonaise assurant principalement des services régionaux dans la voïvodie de Basse-Silésie. C’est l’une des cinq compagnies différentes de [Pologne](/country/poland) qui proposent le FIP. diff --git a/content/operator/kml/index.de.md b/content/operator/kml/index.de.md index f3476f8e9..e71eeacb7 100644 --- a/content/operator/kml/index.de.md +++ b/content/operator/kml/index.de.md @@ -7,6 +7,9 @@ operator: "kml" aliases: - /booking/kml-ticket-office +params: + transitous_mapping: + - query: agencyName == "Koleje Małopolskie" --- Die Koleje Małopolskie, kurz KMŁ, ist ein polnisches Eisenbahnverkehrsunternehmen, das hauptsächlich Regionalverkehr in der Woiwodschaft Kleinpolen anbietet. Es ist eines der insgesamt fünf verschiedenen Unternehmen, das in [Polen](/country/poland) FIP anbietet. diff --git a/content/operator/kml/index.en.md b/content/operator/kml/index.en.md index 5e5c52366..f3313e7ac 100644 --- a/content/operator/kml/index.en.md +++ b/content/operator/kml/index.en.md @@ -7,6 +7,9 @@ operator: "kml" aliases: - /booking/kml-ticket-office +params: + transitous_mapping: + - query: agencyName == "Koleje Małopolskie" --- Koleje Małopolskie, abbreviated KMŁ, is a Polish railway company that mainly provides regional services in the Lesser Poland Voivodeship. It is one of five different companies offering FIP in [Poland](/country/poland). diff --git a/content/operator/kml/index.fr.md b/content/operator/kml/index.fr.md index a9160ca61..0a26eca80 100644 --- a/content/operator/kml/index.fr.md +++ b/content/operator/kml/index.fr.md @@ -7,6 +7,9 @@ operator: "kml" aliases: - /booking/kml-ticket-office +params: + transitous_mapping: + - query: agencyName == "Koleje Małopolskie" --- Les Koleje Małopolskie, abrégées KMŁ, sont une compagnie ferroviaire polonaise qui assure principalement des services régionaux dans la voïvodie de Petite-Pologne. C’est l’une des cinq compagnies différentes proposant la FIP en [Pologne](/country/poland). diff --git a/content/operator/ks/index.de.md b/content/operator/ks/index.de.md index 6bceeaf09..4af5f9e15 100644 --- a/content/operator/ks/index.de.md +++ b/content/operator/ks/index.de.md @@ -9,6 +9,9 @@ aliases: - /booking/ks-ticket-machine - /booking/ks-ticket-office - /booking/ks-website +params: + transitous_mapping: + - query: agencyName == "Koleje Śląskie" --- Die Koleje Śląskie, kurz KŚ, ist ein polnisches Eisenbahnverkehrsunternehmen, das hauptsächlich Regionalverkehr in der Woiwodschaft Schlesien anbietet. Es ist eines der insgesamt fünf verschiedenen Unternehmen, das in [Polen](/country/poland) FIP anbietet. diff --git a/content/operator/ks/index.en.md b/content/operator/ks/index.en.md index f71979eaa..347de30a9 100644 --- a/content/operator/ks/index.en.md +++ b/content/operator/ks/index.en.md @@ -9,6 +9,9 @@ aliases: - /booking/ks-ticket-machine - /booking/ks-ticket-office - /booking/ks-website +params: + transitous_mapping: + - query: agencyName == "Koleje Śląskie" --- Koleje Śląskie, short KŚ, is a Polish railway operator that primarily offers regional transport in the Silesian Voivodeship. It is one of five different companies that offers FIP in [Poland](/country/poland). diff --git a/content/operator/ks/index.fr.md b/content/operator/ks/index.fr.md index 2b4a94b69..9a6fea546 100644 --- a/content/operator/ks/index.fr.md +++ b/content/operator/ks/index.fr.md @@ -9,6 +9,9 @@ aliases: - /booking/ks-ticket-machine - /booking/ks-ticket-office - /booking/ks-website +params: + transitous_mapping: + - query: agencyName == "Koleje Śląskie" --- Koleje Śląskie, abrégées KŚ, est une entreprise de transport ferroviaire polonaise qui propose principalement des services régionaux dans la voïvodie de Silésie. C’est l’une des cinq entreprises différentes qui proposent le FIP en [Pologne](/country/poland). diff --git a/content/operator/kw/index.de.md b/content/operator/kw/index.de.md index 47cefbdf3..aa9255520 100644 --- a/content/operator/kw/index.de.md +++ b/content/operator/kw/index.de.md @@ -9,6 +9,9 @@ aliases: - /booking/kw-ticket-machine - /booking/kw-ticket-office - /booking/kw-website +params: + transitous_mapping: + - query: agencyName == "Koleje Wielkopolskie" --- Die Koleje Wielkopolskie, kurz KW, ist ein polnisches Eisenbahnverkehrsunternehmen, das hauptsächlich Regionalverkehr in der Woiwodschaft Großpolen anbietet. Es ist eines der insgesamt fünf verschiedenen Unternehmen, das in [Polen](/country/poland) FIP anbietet. diff --git a/content/operator/kw/index.en.md b/content/operator/kw/index.en.md index d7b2584be..69e6bd59d 100644 --- a/content/operator/kw/index.en.md +++ b/content/operator/kw/index.en.md @@ -9,6 +9,9 @@ aliases: - /booking/kw-ticket-machine - /booking/kw-ticket-office - /booking/kw-website +params: + transitous_mapping: + - query: agencyName == "Koleje Wielkopolskie" --- Koleje Wielkopolskie, short KW, is a Polish railway operator that primarily offers regional transport in the Greater Poland Voivodeship. It is one of five different companies that offers FIP in [Poland](/country/poland). diff --git a/content/operator/kw/index.fr.md b/content/operator/kw/index.fr.md index d29e22472..4491a840a 100644 --- a/content/operator/kw/index.fr.md +++ b/content/operator/kw/index.fr.md @@ -9,6 +9,9 @@ aliases: - /booking/kw-ticket-machine - /booking/kw-ticket-office - /booking/kw-website +params: + transitous_mapping: + - query: agencyName == "Koleje Wielkopolskie" --- Koleje Wielkopolskie, abrégées KW, est une entreprise de transport ferroviaire polonaise qui propose principalement des services régionaux dans la voïvodie de Grande-Pologne. C’est l’une des cinq entreprises différentes qui proposent le FIP en [Pologne](/country/poland). diff --git a/content/operator/lka/index.de.md b/content/operator/lka/index.de.md index 892dd7708..eddba007c 100644 --- a/content/operator/lka/index.de.md +++ b/content/operator/lka/index.de.md @@ -8,6 +8,9 @@ operator: "lka" aliases: - /booking/lka-ticket-machine - /booking/lka-ticket-office +params: + transitous_mapping: + - query: agencyName == "Łódzka Kolej Aglomeracyjna" --- Die Łódzka Kolej Aglomeracyjna, kurz ŁKA, ist ein polnisches Eisenbahnverkehrsunternehmen, das hauptsächlich Regionalverkehr in der Woiwodschaft Łódz anbietet. Es ist eines der insgesamt fünf verschiedenen Unternehmen, das in [Polen](/country/poland) FIP anbietet. diff --git a/content/operator/lka/index.en.md b/content/operator/lka/index.en.md index 6b137aae3..b6517fc5d 100644 --- a/content/operator/lka/index.en.md +++ b/content/operator/lka/index.en.md @@ -8,6 +8,9 @@ operator: "lka" aliases: - /booking/lka-ticket-machine - /booking/lka-ticket-office +params: + transitous_mapping: + - query: agencyName == "Łódzka Kolej Aglomeracyjna" --- Łódzka Kolej Aglomeracyjna, short ŁKA, is a Polish railway operator that primarily offers regional transport in the Łódź Voivodeship. It is one of five different companies that offers FIP in [Poland](/country/poland). diff --git a/content/operator/lka/index.fr.md b/content/operator/lka/index.fr.md index 988f53f26..96f630002 100644 --- a/content/operator/lka/index.fr.md +++ b/content/operator/lka/index.fr.md @@ -8,6 +8,9 @@ operator: "lka" aliases: - /booking/lka-ticket-machine - /booking/lka-ticket-office +params: + transitous_mapping: + - query: agencyName == "Łódzka Kolej Aglomeracyjna" --- Łódzka Kolej Aglomeracyjna, abrégées ŁKA, est une entreprise de transport ferroviaire polonaise qui propose principalement des services régionaux dans la voïvodie de Łódź. C’est l’une des cinq entreprises différentes qui proposent le FIP en [Pologne](/country/poland). diff --git a/content/operator/ltg/index.de.md b/content/operator/ltg/index.de.md index d72be8cad..a278ccfac 100644 --- a/content/operator/ltg/index.de.md +++ b/content/operator/ltg/index.de.md @@ -8,6 +8,9 @@ operator: "ltg" aliases: - /booking/ltg-website +params: + transitous_mapping: + - query: agencyName == "LTG Link" --- Die LTG ist die staatliche Eisenbahngesellschaft der Republik Litauen und betreibt mit ihrer Tochtergesellschaft LTG-Link alle Verbindungen im Personenverkehr auf dem litauischen Schienennetz sowie ins Ausland. diff --git a/content/operator/ltg/index.en.md b/content/operator/ltg/index.en.md index 5d726f660..8f947c4d8 100644 --- a/content/operator/ltg/index.en.md +++ b/content/operator/ltg/index.en.md @@ -8,6 +8,9 @@ operator: "ltg" aliases: - /booking/ltg-website +params: + transitous_mapping: + - query: agencyName == "LTG Link" --- LTG is the state railway company of the Republic of Lithuania and, through its subsidiary LTG-Link, operates all passenger services on the Lithuanian rail network as well as international connections. diff --git a/content/operator/ltg/index.fr.md b/content/operator/ltg/index.fr.md index 2fce76d46..321e0d83f 100644 --- a/content/operator/ltg/index.fr.md +++ b/content/operator/ltg/index.fr.md @@ -8,6 +8,9 @@ operator: "ltg" aliases: - /booking/ltg-website +params: + transitous_mapping: + - query: agencyName == "LTG Link" --- LTG est la compagnie ferroviaire nationale de la République de Lituanie et, avec sa filiale LTG-Link, exploite toutes les liaisons de transport de passagers sur le réseau ferroviaire lituanien ainsi qu’à l’étranger. diff --git a/content/operator/nir/index.de.md b/content/operator/nir/index.de.md index 80b21a6bf..6f8a74741 100644 --- a/content/operator/nir/index.de.md +++ b/content/operator/nir/index.de.md @@ -8,6 +8,10 @@ operator: "nir" aliases: - /booking/translink-ticket-office - /booking/translink-whatsapp +params: + transitous_mapping: + - query: agencyName == "Translink NI Railways" + - query: agencyName == "Northern Ireland Railways" --- Northern Ireland Railways (NIR) ist die staatliche Bahngesellschaft in Nordirland und gehört zu Translink, einem staatlichen Verkehrsunternehmen. Das Zugnetz ist überschaubar und umfasst hauptsächlich Verbindungen von bzw. nach Belfast. diff --git a/content/operator/nir/index.en.md b/content/operator/nir/index.en.md index a0091fb80..6ee91f84d 100644 --- a/content/operator/nir/index.en.md +++ b/content/operator/nir/index.en.md @@ -8,6 +8,10 @@ operator: "nir" aliases: - /booking/translink-ticket-office - /booking/translink-whatsapp +params: + transitous_mapping: + - query: agencyName == "Translink NI Railways" + - query: agencyName == "Northern Ireland Railways" --- Northern Ireland Railways (NIR) is the state railway company in Northern Ireland and is part of Translink, a state transport company. The rail network is compact and mainly consists of connections to and from Belfast. diff --git a/content/operator/nir/index.fr.md b/content/operator/nir/index.fr.md index 72c6f84ad..fee9dc247 100644 --- a/content/operator/nir/index.fr.md +++ b/content/operator/nir/index.fr.md @@ -8,6 +8,10 @@ operator: "nir" aliases: - /booking/translink-ticket-office - /booking/translink-whatsapp +params: + transitous_mapping: + - query: agencyName == "Translink NI Railways" + - query: agencyName == "Northern Ireland Railways" --- Northern Ireland Railways (NIR) est la compagnie ferroviaire nationale d’Irlande du Nord et fait partie de Translink, une entreprise de transport public. Le réseau ferroviaire est compact et comprend principalement des liaisons à destination et en provenance de Belfast. diff --git a/content/operator/ns/index.de.md b/content/operator/ns/index.de.md index a4ae074ad..c8d57f406 100644 --- a/content/operator/ns/index.de.md +++ b/content/operator/ns/index.de.md @@ -8,6 +8,11 @@ operator: "ns" aliases: - /booking/ns-phone - /booking/ns-ticket-office +params: + transitous_mapping: + - query: agencyName == "NS" + - query: agencyName == "NS Int" + - query: agencyName == "Nederlandse Spoorwegen" --- Die Nederlandse Spoorwegen (NS) ist die staatliche Eisenbahngesellschaft der [Niederlande](/country/netherlands "Niederlande") und betreibt den Großteil des Personenverkehrs auf dem niederländischen Schienennetz. diff --git a/content/operator/ns/index.en.md b/content/operator/ns/index.en.md index bcb218833..1b2b383dd 100644 --- a/content/operator/ns/index.en.md +++ b/content/operator/ns/index.en.md @@ -8,6 +8,11 @@ operator: "ns" aliases: - /booking/ns-phone - /booking/ns-ticket-office +params: + transitous_mapping: + - query: agencyName == "NS" + - query: agencyName == "NS Int" + - query: agencyName == "Nederlandse Spoorwegen" --- Nederlandse Spoorwegen (NS) is the state railway company of the [Netherlands](/country/netherlands "Netherlands") and operates the majority of passenger traffic on the Dutch rail network. diff --git a/content/operator/ns/index.fr.md b/content/operator/ns/index.fr.md index 3de5a8ed3..12677214f 100644 --- a/content/operator/ns/index.fr.md +++ b/content/operator/ns/index.fr.md @@ -8,6 +8,11 @@ operator: "ns" aliases: - /booking/ns-phone - /booking/ns-ticket-office +params: + transitous_mapping: + - query: agencyName == "NS" + - query: agencyName == "NS Int" + - query: agencyName == "Nederlandse Spoorwegen" --- Les Nederlandse Spoorwegen (NS) sont la compagnie ferroviaire nationale des [Pays-Bas](/country/netherlands "Pays-Bas") et assurent la majorité du trafic voyageurs dans le pays. diff --git a/content/operator/oebb/index.de.md b/content/operator/oebb/index.de.md index 1a692e0e0..501136dff 100644 --- a/content/operator/oebb/index.de.md +++ b/content/operator/oebb/index.de.md @@ -12,6 +12,11 @@ aliases: - /booking/oebb-ticket-machine - /booking/oebb-ticket-office - /booking/oebb-website +params: + transitous_mapping: + - query: agencyName == "OEBB Personenverkehr AG Kundenservice" + - query: agencyName == "ÖBB-Personenverkehr AG" + - query: agencyName == "ÖBB" --- Die ÖBB (Österreichische Bundesbahnen) ist die nationale Eisenbahngesellschaft [Österreich](/country/austria "Österreich") und die wichtigste Bahngesellschaft des Landes. Sie betreiben einen Großteil des Personenverkehrs in Österreich. diff --git a/content/operator/oebb/index.en.md b/content/operator/oebb/index.en.md index cda3f0097..3eba46db2 100644 --- a/content/operator/oebb/index.en.md +++ b/content/operator/oebb/index.en.md @@ -12,6 +12,11 @@ aliases: - /booking/oebb-ticket-machine - /booking/oebb-ticket-office - /booking/oebb-website +params: + transitous_mapping: + - query: agencyName == "OEBB Personenverkehr AG Kundenservice" + - query: agencyName == "ÖBB-Personenverkehr AG" + - query: agencyName == "ÖBB" --- ÖBB (Austrian Federal Railways) is [Austria](/country/austria "Austria")’s national railway company and the country’s most important rail operator. It operates the majority of passenger services in Austria. diff --git a/content/operator/oebb/index.fr.md b/content/operator/oebb/index.fr.md index 37a401d48..29a72aa27 100644 --- a/content/operator/oebb/index.fr.md +++ b/content/operator/oebb/index.fr.md @@ -12,6 +12,11 @@ aliases: - /booking/oebb-ticket-machine - /booking/oebb-ticket-office - /booking/oebb-website +params: + transitous_mapping: + - query: agencyName == "OEBB Personenverkehr AG Kundenservice" + - query: agencyName == "ÖBB-Personenverkehr AG" + - query: agencyName == "ÖBB" --- Les ÖBB (Österreichische Bundesbahnen) sont la compagnie ferroviaire nationale d’[Autriche](/country/austria "Autriche") et l’opérateur ferroviaire le plus important du pays. Elle assure la majorité des services voyageurs. diff --git a/content/operator/pkp/index.de.md b/content/operator/pkp/index.de.md index 8f69a2b2f..b7caa164b 100644 --- a/content/operator/pkp/index.de.md +++ b/content/operator/pkp/index.de.md @@ -10,6 +10,10 @@ aliases: - /booking/pkp-ticket-office - /booking/pkp-website - /booking/koleo-website +params: + transitous_mapping: + - query: agencyName == "PKP Intercity" + - query: agencyName == "Polregio" --- Die polnische Staatsbahn PKP (Polskie Koleje Państwowe) betreibt mit ihren Tochtergesellschaften PKP Intercity und Polregio einen Großteil des Schienenpersonenverkehrs in [Polen](/country/poland "Polen"). diff --git a/content/operator/pkp/index.en.md b/content/operator/pkp/index.en.md index c70f87223..143e00cbe 100644 --- a/content/operator/pkp/index.en.md +++ b/content/operator/pkp/index.en.md @@ -10,6 +10,10 @@ aliases: - /booking/pkp-ticket-office - /booking/pkp-website - /booking/koleo-website +params: + transitous_mapping: + - query: agencyName == "PKP Intercity" + - query: agencyName == "Polregio" --- The Polish State Railways PKP (Polskie Koleje Państwowe) operates, together with its subsidiaries PKP Intercity and Polregio, a large part of passenger rail transport in [Poland](/country/poland "Poland"). diff --git a/content/operator/pkp/index.fr.md b/content/operator/pkp/index.fr.md index 5d9ca70ec..d7bd2a64a 100644 --- a/content/operator/pkp/index.fr.md +++ b/content/operator/pkp/index.fr.md @@ -10,6 +10,10 @@ aliases: - /booking/pkp-ticket-office - /booking/pkp-website - /booking/koleo-website +params: + transitous_mapping: + - query: agencyName == "PKP Intercity" + - query: agencyName == "Polregio" --- Les chemins de fer polonais PKP (Polskie Koleje Państwowe) exploitent, avec leurs filiales PKP Intercity et Polregio, une grande partie du transport ferroviaire de voyageurs en [Pologne](/country/poland "Pologne"). diff --git a/content/operator/renfe/index.de.md b/content/operator/renfe/index.de.md index 915db9db5..4cb746d86 100644 --- a/content/operator/renfe/index.de.md +++ b/content/operator/renfe/index.de.md @@ -8,6 +8,14 @@ operator: "renfe" aliases: - /booking/renfe-ticket-office +params: + transitous_mapping: + - query: agencyName == "RENFE OPERADORA" && routeShortName == "AVE" + category: ave + - query: agencyName == "Renfe" + - query: agencyName == "Renfe Operadora" + - query: agencyName == "RENFE" + - query: agencyName == "RENFE OPERADORA" --- Renfe Operadora ist das staatliche Eisenbahnunternehmen in [Spanien](/country/spain "Spanien"). Hierzu gehören komfortable Hochgeschwindkeitszüge, diverse Regionalzüge und S-Bahnen. diff --git a/content/operator/renfe/index.en.md b/content/operator/renfe/index.en.md index 341657c95..aaa5d0235 100644 --- a/content/operator/renfe/index.en.md +++ b/content/operator/renfe/index.en.md @@ -8,6 +8,14 @@ operator: "renfe" aliases: - /booking/renfe-ticket-office +params: + transitous_mapping: + - query: agencyName == "RENFE OPERADORA" && routeShortName == "AVE" + category: ave + - query: agencyName == "Renfe" + - query: agencyName == "Renfe Operadora" + - query: agencyName == "RENFE" + - query: agencyName == "RENFE OPERADORA" --- Renfe Operadora is the state-owned railroad company in [Spain](/country/spain "Spain"). It operates comfortable high-speed trains, various regional trains and suburban trains. diff --git a/content/operator/renfe/index.fr.md b/content/operator/renfe/index.fr.md index 52b1627ba..6b35ba51c 100644 --- a/content/operator/renfe/index.fr.md +++ b/content/operator/renfe/index.fr.md @@ -8,6 +8,14 @@ operator: "renfe" aliases: - /booking/renfe-ticket-office +params: + transitous_mapping: + - query: agencyName == "RENFE OPERADORA" && routeShortName == "AVE" + category: ave + - query: agencyName == "Renfe" + - query: agencyName == "Renfe Operadora" + - query: agencyName == "RENFE" + - query: agencyName == "RENFE OPERADORA" --- Renfe Operadora est la compagnie ferroviaire publique en [Espagne](/country/spain "Espagne"). Elle exploite des trains à grande vitesse confortables, divers trains régionaux et des trains de banlieue. diff --git a/content/operator/sbb/index.de.md b/content/operator/sbb/index.de.md index d9c341ec0..14e525c24 100644 --- a/content/operator/sbb/index.de.md +++ b/content/operator/sbb/index.de.md @@ -8,6 +8,12 @@ aliases: - /booking/sbb-ticket-machine - /booking/sbb-ticket-office - /booking/sbb-website +params: + transitous_mapping: + - query: agencyName == "SBB" + - query: agencyName == "CFF" + - query: agencyName == "FFS" + - query: agencyName == "SBB CFF FFS" --- Die SBB (Schweizerische Bundesbahnen) – (Chemins de fer fédéraux suisses CFF, Ferrovie federali svizzere FFS) ist die nationale Eisenbahngesellschaft der [Schweiz](/country/switzerland "Schweiz"). Sie betreibt einen Großteil des schweizerischen Schienennetzes. Die SBB ist bekannt für ihre Pünktlichkeit und Zuverlässigkeit. diff --git a/content/operator/sbb/index.en.md b/content/operator/sbb/index.en.md index 4c8f6bf95..ae07c501a 100644 --- a/content/operator/sbb/index.en.md +++ b/content/operator/sbb/index.en.md @@ -8,6 +8,12 @@ aliases: - /booking/sbb-ticket-machine - /booking/sbb-ticket-office - /booking/sbb-website +params: + transitous_mapping: + - query: agencyName == "SBB" + - query: agencyName == "CFF" + - query: agencyName == "FFS" + - query: agencyName == "SBB CFF FFS" --- SBB (Swiss Federal Railways) – (Chemins de fer fédéraux suisses CFF, Ferrovie federali svizzere FFS) is the national railway company of [Switzerland](/country/switzerland "Switzerland"). It operates most of the Swiss rail network and is known for its punctuality and reliability. diff --git a/content/operator/sbb/index.fr.md b/content/operator/sbb/index.fr.md index ee3fdd674..61e9ee3a8 100644 --- a/content/operator/sbb/index.fr.md +++ b/content/operator/sbb/index.fr.md @@ -8,6 +8,12 @@ aliases: - /booking/sbb-ticket-machine - /booking/sbb-ticket-office - /booking/sbb-website +params: + transitous_mapping: + - query: agencyName == "SBB" + - query: agencyName == "CFF" + - query: agencyName == "FFS" + - query: agencyName == "SBB CFF FFS" --- Les CFF (Chemins de fer fédéraux suisses, SBB en allemand, FFS en italien) sont la compagnie ferroviaire nationale de la [Suisse](/country/switzerland "Suisse"). Ils exploitent la majeure partie du réseau ferroviaire suisse et sont réputés pour leur ponctualité et leur fiabilité. diff --git a/content/operator/sncb/index.de.md b/content/operator/sncb/index.de.md index c1ffbf573..097cdd2b3 100644 --- a/content/operator/sncb/index.de.md +++ b/content/operator/sncb/index.de.md @@ -9,6 +9,10 @@ aliases: - /booking/sncb-phone - /booking/sncb-ticket-office - /booking/sncb-website +params: + transitous_mapping: + - query: agencyName == "SNCB" + - query: agencyName == "NMBS" --- Die SNCB (Société nationale des chemins de fer belges) bzw. NMBS (Nationale Maatschappij der Belgische Spoorwegen) ist die belgische Staatsbahn und die wichtigste Bahngesellschaft in [Belgien](/country/belgium "Belgien"). diff --git a/content/operator/sncb/index.en.md b/content/operator/sncb/index.en.md index 1b5d549b0..0961c8e35 100644 --- a/content/operator/sncb/index.en.md +++ b/content/operator/sncb/index.en.md @@ -9,6 +9,10 @@ aliases: - /booking/sncb-phone - /booking/sncb-ticket-office - /booking/sncb-website +params: + transitous_mapping: + - query: agencyName == "SNCB" + - query: agencyName == "NMBS" --- The SNCB (Société nationale des chemins de fer belges) or NMBS (Nationale Maatschappij der Belgische Spoorwegen) is the Belgian national railway operator and the most important railway operator in [Belgium](/country/belgium "Belgium"). diff --git a/content/operator/sncb/index.fr.md b/content/operator/sncb/index.fr.md index b25977786..01035dbba 100644 --- a/content/operator/sncb/index.fr.md +++ b/content/operator/sncb/index.fr.md @@ -9,6 +9,10 @@ aliases: - /booking/sncb-phone - /booking/sncb-ticket-office - /booking/sncb-website +params: + transitous_mapping: + - query: agencyName == "SNCB" + - query: agencyName == "NMBS" --- La SNCB (Société nationale des chemins de fer belges) ou NMBS (Nationale Maatschappij der Belgische Spoorwegen) est l’opérateur ferroviaire national belge et le plus important de [Belgique](/country/belgium "Belgique"). diff --git a/content/operator/sncf/index.de.md b/content/operator/sncf/index.de.md index 62e541649..38dec5313 100644 --- a/content/operator/sncf/index.de.md +++ b/content/operator/sncf/index.de.md @@ -15,6 +15,10 @@ aliases: - /booking/sncf-phone - /booking/sncf-ticket-office - /booking/transilien-ticket-office +params: + transitous_mapping: + - query: agencyName == "SNCF" + - query: agencyName == "SNCF Voyageurs" --- Die SNCF (Société Nationale des Chemins de fer Français) ist die französische Staatsbahn und die wichtigste Bahngesellschaft in [Frankreich](/country/france "Frankreich"). Sie betreibt fast alle Fern- und Regionalzüge in Frankreich. diff --git a/content/operator/sncf/index.en.md b/content/operator/sncf/index.en.md index e8f6bbcc0..b59607b66 100644 --- a/content/operator/sncf/index.en.md +++ b/content/operator/sncf/index.en.md @@ -15,6 +15,10 @@ aliases: - /booking/sncf-phone - /booking/sncf-ticket-office - /booking/transilien-ticket-office +params: + transitous_mapping: + - query: agencyName == "SNCF" + - query: agencyName == "SNCF Voyageurs" --- SNCF (Société Nationale des Chemins de fer Français) is the French national railway company and the main rail operator in [France](/country/france "France"). It operates almost all long-distance and regional trains in France. diff --git a/content/operator/sncf/index.fr.md b/content/operator/sncf/index.fr.md index dfdb0eff0..f2ba818d0 100644 --- a/content/operator/sncf/index.fr.md +++ b/content/operator/sncf/index.fr.md @@ -15,6 +15,10 @@ aliases: - /booking/sncf-phone - /booking/sncf-ticket-office - /booking/transilien-ticket-office +params: + transitous_mapping: + - query: agencyName == "SNCF" + - query: agencyName == "SNCF Voyageurs" --- La SNCF (Société Nationale des Chemins de fer Français) est la compagnie ferroviaire nationale française et le principal opérateur ferroviaire en [France](/country/france "France"). Elle exploite la quasi-totalité des trains grandes lignes et régionaux du pays. diff --git a/content/operator/sv/index.de.md b/content/operator/sv/index.de.md index 29c36b2db..46c584df6 100644 --- a/content/operator/sv/index.de.md +++ b/content/operator/sv/index.de.md @@ -4,6 +4,9 @@ title: "SV" country: - "serbia" operator: "sv" +params: + transitous_mapping: + - query: agencyName == "Srbija Voz" --- Srbija Voz (Србија Воз) ist die staatliche Eisenbahngesellschaft in Serbien und betreibt den Großteil des Personenverkehrs im Land. diff --git a/content/operator/sv/index.en.md b/content/operator/sv/index.en.md index e33d8d4b4..b9edab00a 100644 --- a/content/operator/sv/index.en.md +++ b/content/operator/sv/index.en.md @@ -4,6 +4,9 @@ title: "SV" country: - "serbia" operator: "sv" +params: + transitous_mapping: + - query: agencyName == "Srbija Voz" --- Srbija Voz (Србија Воз) is the state railway company in Serbia and operates the majority of passenger traffic in the country. diff --git a/content/operator/sv/index.fr.md b/content/operator/sv/index.fr.md index 9f4729804..d276a8bdb 100644 --- a/content/operator/sv/index.fr.md +++ b/content/operator/sv/index.fr.md @@ -4,6 +4,9 @@ title: "SV" country: - "serbia" operator: "sv" +params: + transitous_mapping: + - query: agencyName == "Srbija Voz" --- Srbija Voz (Србија Воз) est la compagnie ferroviaire nationale de Serbie et exploite la majeure partie du trafic voyageurs dans le pays. diff --git a/content/operator/sz/index.de.md b/content/operator/sz/index.de.md index a41993c9f..d687f83e2 100644 --- a/content/operator/sz/index.de.md +++ b/content/operator/sz/index.de.md @@ -4,6 +4,10 @@ title: "SŽ" country: - "slovenia" operator: "sz" +params: + transitous_mapping: + - query: agencyName == "Slovenske železnice" + - query: agencyName == "SŽ" --- Die Slovenske železnice (SŽ) ist die staatliche Eisenbahngesellschaft von [Slowenien](/country/slovenia "Slowenien") und betreibt einen Großteil der Verbindungen im Personenverkehr auf dem slowenischen Schienennetz. diff --git a/content/operator/sz/index.en.md b/content/operator/sz/index.en.md index 725b234a1..eb263b65a 100644 --- a/content/operator/sz/index.en.md +++ b/content/operator/sz/index.en.md @@ -4,6 +4,10 @@ title: "SŽ" country: - "slovenia" operator: "sz" +params: + transitous_mapping: + - query: agencyName == "Slovenske železnice" + - query: agencyName == "SŽ" --- The Slovenske železnice (SŽ) is the state railway company of [Slovenia](/country/slovenia "Slovenia") and operates the majority of passenger services on the Slovenian rail network. diff --git a/content/operator/sz/index.fr.md b/content/operator/sz/index.fr.md index 6cf9c51b4..cd82d7294 100644 --- a/content/operator/sz/index.fr.md +++ b/content/operator/sz/index.fr.md @@ -4,6 +4,10 @@ title: "SŽ" country: - "slovenia" operator: "sz" +params: + transitous_mapping: + - query: agencyName == "Slovenske železnice" + - query: agencyName == "SŽ" --- Les Slovenske železnice (SŽ) sont la compagnie ferroviaire nationale de [Slovénie](/country/slovenia "Slovénie") et exploitent la majorité des services de voyageurs sur le réseau ferroviaire slovène. diff --git a/content/operator/vy/index.de.md b/content/operator/vy/index.de.md index 17ff860e1..a309dde27 100644 --- a/content/operator/vy/index.de.md +++ b/content/operator/vy/index.de.md @@ -9,6 +9,12 @@ aliases: - /booking/entur-chat - /booking/entur-phone - /booking/entur-ticket-office +params: + transitous_mapping: + - query: agencyName == "Vy" + - query: agencyName == "Vy Tog" + - query: agencyName == "SJ Nord" + - query: agencyName == "Go-Ahead Nordic" --- Die Vy Group (ehemals Norges Statsbaner) ist die staatliche Bahngesellschaft in [Norwegen](/country/norway). Sie betreibt mit ihren Tochtergesellschaften den Großteil des Schienenpersonenverkehrs in Norwegen. diff --git a/content/operator/vy/index.en.md b/content/operator/vy/index.en.md index bbd09c772..6d9f5fbec 100644 --- a/content/operator/vy/index.en.md +++ b/content/operator/vy/index.en.md @@ -9,6 +9,12 @@ aliases: - /booking/entur-chat - /booking/entur-phone - /booking/entur-ticket-office +params: + transitous_mapping: + - query: agencyName == "Vy" + - query: agencyName == "Vy Tog" + - query: agencyName == "SJ Nord" + - query: agencyName == "Go-Ahead Nordic" --- Vy Group (formerly Norges Statsbaner) is the state railway company in [Norway](/country/norway). Together with its subsidiaries, it operates most of the passenger rail transport in Norway. diff --git a/content/operator/vy/index.fr.md b/content/operator/vy/index.fr.md index dfe3e37c2..9022ab9bf 100644 --- a/content/operator/vy/index.fr.md +++ b/content/operator/vy/index.fr.md @@ -9,6 +9,12 @@ aliases: - /booking/entur-chat - /booking/entur-phone - /booking/entur-ticket-office +params: + transitous_mapping: + - query: agencyName == "Vy" + - query: agencyName == "Vy Tog" + - query: agencyName == "SJ Nord" + - query: agencyName == "Go-Ahead Nordic" --- Vy Group (anciennement Norges Statsbaner) est la compagnie ferroviaire nationale de la [Norvège](/country/norway). Avec ses filiales, elle assure la majeure partie du transport ferroviaire de voyageurs en Norvège. diff --git a/content/operator/zpcg/index.de.md b/content/operator/zpcg/index.de.md index 48ed51b0c..8831bf6c2 100644 --- a/content/operator/zpcg/index.de.md +++ b/content/operator/zpcg/index.de.md @@ -4,6 +4,9 @@ title: "ŽPCG" country: - "montenegro" operator: "zpcg" +params: + transitous_mapping: + - query: agencyName == "ŽPCG" --- ŽPCG (Željeznički prevoz Crne Gore, Жељезнички превоз Црне Горе) ist der nationale Personenverkehrsbetreiber in Montenegro. diff --git a/content/operator/zpcg/index.en.md b/content/operator/zpcg/index.en.md index 1c539e256..c4c6f7e1e 100644 --- a/content/operator/zpcg/index.en.md +++ b/content/operator/zpcg/index.en.md @@ -4,6 +4,9 @@ title: "ŽPCG" country: - "montenegro" operator: "zpcg" +params: + transitous_mapping: + - query: agencyName == "ŽPCG" --- ŽPCG (Željeznički prevoz Crne Gore, Жељезнички превоз Црне Горе) is the national passenger transport operator in Montenegro. diff --git a/content/operator/zpcg/index.fr.md b/content/operator/zpcg/index.fr.md index e23cd6578..db6331129 100644 --- a/content/operator/zpcg/index.fr.md +++ b/content/operator/zpcg/index.fr.md @@ -4,6 +4,9 @@ title: "ŽPCG" country: - "montenegro" operator: "zpcg" +params: + transitous_mapping: + - query: agencyName == "ŽPCG" --- ŽPCG (Željeznički prevoz Crne Gore, Жељезнички превоз Црне Горе) est l’opérateur national de transport de voyageurs au Monténégro. diff --git a/content/operator/zssk/index.de.md b/content/operator/zssk/index.de.md index e0727a9a4..c4e88225f 100644 --- a/content/operator/zssk/index.de.md +++ b/content/operator/zssk/index.de.md @@ -9,6 +9,9 @@ aliases: - zsr - /booking/zssk-ticket-office - /booking/zssk-website +params: + transitous_mapping: + - query: agencyName == "ZSSK" --- Die ŽSR (Železnice Slovenskej republiky) sowie der dazugehörige Zugbetreiber ZSSK (Železničná spoločnosť Slovensko) ist die slowakische Staatsbahn und die wichtigste Bahngesellschaft in der [Slowakei](/country/slovakia "Slowakei"). diff --git a/content/operator/zssk/index.en.md b/content/operator/zssk/index.en.md index 06aa42374..b7a41971a 100644 --- a/content/operator/zssk/index.en.md +++ b/content/operator/zssk/index.en.md @@ -8,6 +8,9 @@ aliases: - zsr - /booking/zssk-ticket-office - /booking/zssk-website +params: + transitous_mapping: + - query: agencyName == "ZSSK" --- The ŽSR (Železnice Slovenskej republiky) and its associated train operator ZSSK (Železničná spoločnosť Slovensko) are the Slovak state railways and the most important railway operator in [Slovaika](/country/slovakia "Slovakia"). diff --git a/content/operator/zssk/index.fr.md b/content/operator/zssk/index.fr.md index 65153ea00..c7cecb8a2 100644 --- a/content/operator/zssk/index.fr.md +++ b/content/operator/zssk/index.fr.md @@ -8,6 +8,9 @@ aliases: - zsr - /booking/zssk-ticket-office - /booking/zssk-website +params: + transitous_mapping: + - query: agencyName == "ZSSK" --- La ŽSR (Železnice Slovenskej republiky) et son exploitant ferroviaire ZSSK (Železničná spoločnosť Slovensko) sont les chemins de fer nationaux slovaques et constituent l’opérateur ferroviaire principal du [Slovaquie](/country/slovakia "Slovaquie"). diff --git a/hugo.yaml b/hugo.yaml index 9408f6696..634f770e3 100644 --- a/hugo.yaml +++ b/hugo.yaml @@ -1,6 +1,6 @@ enableRobotsTXT: true enableGitInfo: true -ignoreLogs: ['warning-rendershortcodes-in-html'] +ignoreLogs: ["warning-rendershortcodes-in-html"] defaultContentLanguage: "en" defaultContentLanguageInSubdir: true @@ -21,6 +21,18 @@ languages: weight: 3 title: "FIP Guide – Rapide. Clair. Basé sur le partage." +outputFormats: + TransitousMapping: + mediaType: application/json + baseName: transitous-mapping + isPlainText: true + notAlternative: true + +outputs: + home: + - HTML + - TransitousMapping + module: mounts: - source: "assets" diff --git a/i18n/de.yaml b/i18n/de.yaml index 4d34eba30..780c2a001 100644 --- a/i18n/de.yaml +++ b/i18n/de.yaml @@ -224,6 +224,30 @@ related-countries: Verwandte Länder related-news: Verwandte News related-operators: Verwandte Betreiber reportError: Melde ein Fehler +routePlanner: + arrival: Ankunft + departure: Abfahrt + departureTime: Abfahrtszeit + duration: Dauer + errorGeneric: Ein Fehler ist aufgetreten. Bitte versuche es erneut. + fipAccepted: FIP akzeptiert + fipNotAccepted: FIP nicht akzeptiert + fipPartial: FIP teilweise akzeptiert + fipUnknown: FIP-Status unbekannt + from: Von + fromPlaceholder: z. B. Brüssel-Midi + loading: Verbindungen werden gesucht… + noResults: Keine Verbindungen gefunden. + operatorBaseUrl: /de + operatorNotInFipGuide: Betreiber nicht im FIP Guide + platform: Gleis + search: Suchen + swap: Abfahrts- und Ankunftsort tauschen + to: Nach + toPlaceholder: z. B. Wien Hbf + transfer: Umstieg(e) + viewInFipGuide: Im FIP Guide ansehen + walk: Fußweg satellite: content: >- Um zusätzliche Kosten bei Anrufen ins Ausland zu vermeiden, kann die App diff --git a/i18n/en.yaml b/i18n/en.yaml index 976af2d84..0e0e656cf 100644 --- a/i18n/en.yaml +++ b/i18n/en.yaml @@ -217,6 +217,30 @@ related: operators: Related Operators operators-nearby: Neighboring Operators reportError: Report an error +routePlanner: + arrival: Arrival + departure: Departure + departureTime: Departure time + duration: Duration + errorGeneric: An error occurred. Please try again. + fipAccepted: FIP accepted + fipNotAccepted: FIP not accepted + fipPartial: FIP partially accepted + fipUnknown: FIP status unknown + from: From + fromPlaceholder: e.g. Brussels-Midi + loading: Searching for connections… + noResults: No connections found. + operatorBaseUrl: /en + operatorNotInFipGuide: Operator not in FIP Guide + platform: Platform + search: Search + swap: Swap origin and destination + to: To + toPlaceholder: e.g. Vienna Hbf + transfer: transfer(s) + viewInFipGuide: View in FIP Guide + walk: Walk satellite: content: >- To avoid additional costs when calling abroad, you can use the app diff --git a/i18n/fr.yaml b/i18n/fr.yaml index 013b894c0..fb1a9a19b 100644 --- a/i18n/fr.yaml +++ b/i18n/fr.yaml @@ -226,6 +226,30 @@ related: operators: Opérateurs associés operators-nearby: Opérateurs voisins reportError: Signaler une erreur +routePlanner: + arrival: Arrivée + departure: Départ + departureTime: Heure de départ + duration: Durée + errorGeneric: Une erreur s'est produite. Veuillez réessayer. + fipAccepted: FIP accepté + fipNotAccepted: FIP non accepté + fipPartial: FIP partiellement accepté + fipUnknown: Statut FIP inconnu + from: De + fromPlaceholder: ex. Bruxelles-Midi + loading: Recherche de connexions… + noResults: Aucune connexion trouvée. + operatorBaseUrl: /fr + operatorNotInFipGuide: Opérateur absent du FIP Guide + platform: Voie + search: Rechercher + swap: Échanger l'origine et la destination + to: Vers + toPlaceholder: ex. Vienne Hbf + transfer: correspondance(s) + viewInFipGuide: Voir dans le FIP Guide + walk: À pied satellite: content: >- Pour éviter des frais supplémentaires lors d'appels à l'étranger, vous diff --git a/layouts/_default/home.transitousmapping.json b/layouts/_default/home.transitousmapping.json new file mode 100644 index 000000000..5325df06b --- /dev/null +++ b/layouts/_default/home.transitousmapping.json @@ -0,0 +1,38 @@ +{{- $operators := where (where site.Pages "Type" "operator") "IsPage" true -}} +{{- $result := slice -}} +{{- range $operators -}} + {{- $mapping := .Params.transitous_mapping -}} + {{- if $mapping -}} + {{- $trainCategories := .Store.Get "train_categories" | default slice -}} + {{- $entries := slice -}} + {{- range $mapping -}} + {{- $entry := dict "query" .query -}} + {{- if .category -}} + {{- $entry = merge $entry (dict "category" .category) -}} + {{- $catId := .category -}} + {{- range $trainCategories -}} + {{- if eq .id $catId -}} + {{- $entry = merge $entry (dict "fipAccepted" .fip_accepted) -}} + {{- end -}} + {{- end -}} + {{- end -}} + {{- $entries = $entries | append $entry -}} + {{- end -}} + {{- $op := dict "operator" .File.ContentBaseName "mapping" $entries -}} + {{- $result = $result | append $op -}} + {{- end -}} +{{- end -}} +{{- $noFipEntries := slice -}} +{{- $countries := where (where site.Pages "Type" "country") "IsPage" true -}} +{{- range $countries -}} + {{- $countrySlug := .File.ContentBaseName -}} + {{- range .Params.operators_without_fip -}} + {{- if .query -}} + {{- $noFipEntries = $noFipEntries | append (dict "query" .query "fipAccepted" false "country" $countrySlug) -}} + {{- end -}} + {{- end -}} +{{- end -}} +{{- if $noFipEntries -}} + {{- $result = $result | append (dict "operator" "no-fip" "mapping" $noFipEntries) -}} +{{- end -}} +{{- $result | jsonify (dict "indent" " ") -}} diff --git a/layouts/_shortcodes/train-category.html b/layouts/_shortcodes/train-category.html index 11519013f..814a94038 100644 --- a/layouts/_shortcodes/train-category.html +++ b/layouts/_shortcodes/train-category.html @@ -12,4 +12,8 @@ "content" (.Inner) -}} +{{- $existing := .Page.Store.Get "train_categories" | default slice -}} +{{- $entry := dict "id" $data.id "fip_accepted" $data.fip_accepted -}} +{{- .Page.Store.Set "train_categories" ($existing | append $entry) -}} + {{- partial "train-category" $data -}} diff --git a/layouts/country/single.html b/layouts/country/single.html index dd42afd59..4782318ec 100644 --- a/layouts/country/single.html +++ b/layouts/country/single.html @@ -36,7 +36,7 @@

    {{ end }} diff --git a/layouts/general/route-planner/single.html b/layouts/general/route-planner/single.html new file mode 100644 index 000000000..e4a19850c --- /dev/null +++ b/layouts/general/route-planner/single.html @@ -0,0 +1,128 @@ +{{ define "main" }} +
    +
    +
    +
    +
    +

    {{ .Title }}

    +
    +
    + +
    +
    +
    + +
    + + +
    +
    + + + +
    + +
    + + +
    +
    + +
    + + +
    + + +
    +
    + + +
    +
    +
    + + +{{ end }} diff --git a/package-lock.json b/package-lock.json index 9c4a38111..0a6b1865c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@fontsource/roboto": "^5.2.9", "@fontsource/sansita": "^5.2.8", "@material-symbols/svg-700": "^0.43.0", + "@motis-project/motis-client": "^2.10.2", "@panzoom/panzoom": "^4.6.1", "pagefind": "^1.5.2" }, @@ -38,12 +39,31 @@ "url": "https://github.com/sponsors/ayuhito" } }, + "node_modules/@hey-api/client-fetch": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@hey-api/client-fetch/-/client-fetch-0.4.4.tgz", + "integrity": "sha512-ebh1JjUdMAqes/Rg8OvbjDqGWGNhgHgmPtHlkIOUtj3y2mUXqX2g9sVoI/rSKW/FdADPng/90k5AL7bwT8W2lA==", + "deprecated": "Starting with v0.73.0, this package is bundled directly inside @hey-api/openapi-ts.", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/hey-api" + } + }, "node_modules/@material-symbols/svg-700": { "version": "0.43.0", "resolved": "https://registry.npmjs.org/@material-symbols/svg-700/-/svg-700-0.43.0.tgz", "integrity": "sha512-apCxQvQ1eZrxvgvr+CbwnPvN6aS0hn9EgGm+vI3bzEMdE1gqZ4Tk8liDuAhEXdFyYVX6CDUzz/zt+6lCufmSVg==", "license": "Apache-2.0" }, + "node_modules/@motis-project/motis-client": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@motis-project/motis-client/-/motis-client-2.10.2.tgz", + "integrity": "sha512-6HSznDh+iHDxPZXGRG5L8gHXztiTa9Zr+/ZPzOf9wc3JeYQHYlSh5SnUpMrhEch03fQ82EdnQkZ444i3hOW7SQ==", + "license": "MIT", + "dependencies": { + "@hey-api/client-fetch": "^0.4.4" + } + }, "node_modules/@pagefind/darwin-arm64": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.5.2.tgz", diff --git a/package.json b/package.json index 5159d306e..bf5d3af84 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@fontsource/roboto": "^5.2.9", "@fontsource/sansita": "^5.2.8", "@material-symbols/svg-700": "^0.43.0", + "@motis-project/motis-client": "^2.10.2", "@panzoom/panzoom": "^4.6.1", "pagefind": "^1.5.2" }, From 85a4a65742b3e00a61d369bf1be6f5980310a6ce Mon Sep 17 00:00:00 2001 From: MoritzWeber Date: Thu, 23 Jul 2026 12:25:10 +0200 Subject: [PATCH 2/4] feat: Add reservation required tag --- assets/js/routePlanner.js | 17 ++++++++++++++++- assets/sass/routePlanner.scss | 20 ++++++++++++++++++++ i18n/de.yaml | 2 ++ i18n/en.yaml | 2 ++ i18n/fr.yaml | 2 ++ layouts/_default/home.transitousmapping.json | 2 +- layouts/_shortcodes/train-category.html | 2 +- layouts/general/route-planner/single.html | 2 ++ 8 files changed, 46 insertions(+), 3 deletions(-) diff --git a/assets/js/routePlanner.js b/assets/js/routePlanner.js index c6c35f8b3..c080137d1 100644 --- a/assets/js/routePlanner.js +++ b/assets/js/routePlanner.js @@ -73,6 +73,7 @@ function matchLeg(leg) { operatorSlug: op.operator, categoryId: entry.category || null, fipAccepted: entry.fipAccepted ?? null, + reservationRequired: entry.reservationRequired ?? null, matchedQuery: entry.query, country: entry.country || null, }; @@ -115,6 +116,7 @@ function getFipStatus(leg) { operatorSlug, categoryId, fipAccepted: matchedFipAccepted, + reservationRequired, country, } = match; const isNoFip = operatorSlug === "no-fip"; @@ -133,6 +135,7 @@ function getFipStatus(leg) { label: cfg.labels.fipNotAccepted, categoryUrl, operatorSlug, + reservationRequired, debug, }; } @@ -142,6 +145,7 @@ function getFipStatus(leg) { label: cfg.labels.fipPartial, categoryUrl, operatorSlug, + reservationRequired, debug, }; } @@ -151,6 +155,7 @@ function getFipStatus(leg) { label: cfg.labels.fipAccepted, categoryUrl, operatorSlug, + reservationRequired, debug, }; } @@ -159,6 +164,7 @@ function getFipStatus(leg) { label: cfg.labels.fipUnknown, categoryUrl, operatorSlug, + reservationRequired, debug, }; } @@ -193,7 +199,16 @@ function renderFipBadge(fipStatus) { ${rows}
    `; - let badgeHtml = `${fipStatus.label}`; + let reservationBadge = ""; + if ( + fipStatus.reservationRequired === true || + fipStatus.reservationRequired === "true" + ) { + reservationBadge = ` ${cfg.labels.reservationRequired}`; + } else if (fipStatus.reservationRequired === "partially") { + reservationBadge = ` ${cfg.labels.reservationPartiallyRequired}`; + } + let badgeHtml = `${fipStatus.label}${reservationBadge}`; badgeHtml += ` ${popoverHtml}`; if (fipStatus.categoryUrl) { badgeHtml += ` ${cfg.labels.viewInFipGuide}`; diff --git a/assets/sass/routePlanner.scss b/assets/sass/routePlanner.scss index 4a9d4c01a..bc61ea40b 100644 --- a/assets/sass/routePlanner.scss +++ b/assets/sass/routePlanner.scss @@ -330,6 +330,26 @@ background: rgba(map-get($tag-colors-dark, info), 0.1); } } + + &--reservation-required { + color: map-get($tag-colors, error); + background: rgba(map-get($tag-colors, error), 0.08); + + [data-theme="dark"] & { + color: map-get($tag-colors-dark, error); + background: rgba(map-get($tag-colors-dark, error), 0.1); + } + } + + &--reservation-partial { + color: map-get($tag-colors, warning); + background: rgba(map-get($tag-colors, warning), 0.08); + + [data-theme="dark"] & { + color: map-get($tag-colors-dark, warning); + background: rgba(map-get($tag-colors-dark, warning), 0.1); + } + } } &__fip-link { diff --git a/i18n/de.yaml b/i18n/de.yaml index 780c2a001..7ecb680b7 100644 --- a/i18n/de.yaml +++ b/i18n/de.yaml @@ -241,6 +241,8 @@ routePlanner: operatorBaseUrl: /de operatorNotInFipGuide: Betreiber nicht im FIP Guide platform: Gleis + reservationPartiallyRequired: Reservierung teilweise erforderlich + reservationRequired: Reservierung erforderlich search: Suchen swap: Abfahrts- und Ankunftsort tauschen to: Nach diff --git a/i18n/en.yaml b/i18n/en.yaml index 0e0e656cf..de7b89421 100644 --- a/i18n/en.yaml +++ b/i18n/en.yaml @@ -234,6 +234,8 @@ routePlanner: operatorBaseUrl: /en operatorNotInFipGuide: Operator not in FIP Guide platform: Platform + reservationPartiallyRequired: Reservation partially required + reservationRequired: Reservation required search: Search swap: Swap origin and destination to: To diff --git a/i18n/fr.yaml b/i18n/fr.yaml index fb1a9a19b..1c0ca07cf 100644 --- a/i18n/fr.yaml +++ b/i18n/fr.yaml @@ -243,6 +243,8 @@ routePlanner: operatorBaseUrl: /fr operatorNotInFipGuide: Opérateur absent du FIP Guide platform: Voie + reservationPartiallyRequired: Réservation partiellement obligatoire + reservationRequired: Réservation obligatoire search: Rechercher swap: Échanger l'origine et la destination to: Vers diff --git a/layouts/_default/home.transitousmapping.json b/layouts/_default/home.transitousmapping.json index 5325df06b..1bdde23c7 100644 --- a/layouts/_default/home.transitousmapping.json +++ b/layouts/_default/home.transitousmapping.json @@ -12,7 +12,7 @@ {{- $catId := .category -}} {{- range $trainCategories -}} {{- if eq .id $catId -}} - {{- $entry = merge $entry (dict "fipAccepted" .fip_accepted) -}} + {{- $entry = merge $entry (dict "fipAccepted" .fip_accepted "reservationRequired" .reservation_required) -}} {{- end -}} {{- end -}} {{- end -}} diff --git a/layouts/_shortcodes/train-category.html b/layouts/_shortcodes/train-category.html index 814a94038..e785a652f 100644 --- a/layouts/_shortcodes/train-category.html +++ b/layouts/_shortcodes/train-category.html @@ -13,7 +13,7 @@ -}} {{- $existing := .Page.Store.Get "train_categories" | default slice -}} -{{- $entry := dict "id" $data.id "fip_accepted" $data.fip_accepted -}} +{{- $entry := dict "id" $data.id "fip_accepted" $data.fip_accepted "reservation_required" $data.reservation_required -}} {{- .Page.Store.Set "train_categories" ($existing | append $entry) -}} {{- partial "train-category" $data -}} diff --git a/layouts/general/route-planner/single.html b/layouts/general/route-planner/single.html index e4a19850c..2219c830c 100644 --- a/layouts/general/route-planner/single.html +++ b/layouts/general/route-planner/single.html @@ -113,6 +113,8 @@

    {{ .Title }}

    fipPartial: "{{ T "routePlanner.fipPartial" }}", fipNotAccepted: "{{ T "routePlanner.fipNotAccepted" }}", fipUnknown: "{{ T "routePlanner.fipUnknown" }}", + reservationRequired: "{{ T "routePlanner.reservationRequired" }}", + reservationPartiallyRequired: "{{ T "routePlanner.reservationPartiallyRequired" }}", operatorNotInFipGuide: "{{ T "routePlanner.operatorNotInFipGuide" }}", viewInFipGuide: "{{ T "routePlanner.viewInFipGuide" }}", transfer: "{{ T "routePlanner.transfer" }}", From 450404869c30d9002b744c1311692ef48e1644d1 Mon Sep 17 00:00:00 2001 From: MoritzWeber Date: Thu, 23 Jul 2026 22:23:27 +0200 Subject: [PATCH 3/4] feat: Add warning for international journeys --- archetypes/country/index.de.md | 1 + archetypes/country/index.en.md | 1 + archetypes/country/index.fr.md | 1 + assets/js/routePlanner.js | 51 +++++++++++++++++++++- assets/sass/routePlanner.scss | 22 ++++++++++ content/country/austria/index.de.md | 1 + content/country/austria/index.en.md | 1 + content/country/austria/index.fr.md | 1 + content/country/belgium/index.de.md | 1 + content/country/belgium/index.en.md | 1 + content/country/belgium/index.fr.md | 1 + content/country/bulgaria/index.de.md | 1 + content/country/bulgaria/index.en.md | 1 + content/country/bulgaria/index.fr.md | 1 + content/country/czechia/index.de.md | 1 + content/country/czechia/index.en.md | 1 + content/country/czechia/index.fr.md | 1 + content/country/denmark/index.de.md | 1 + content/country/denmark/index.en.md | 1 + content/country/denmark/index.fr.md | 1 + content/country/france/index.de.md | 1 + content/country/france/index.en.md | 1 + content/country/france/index.fr.md | 1 + content/country/germany/index.de.md | 1 + content/country/germany/index.en.md | 1 + content/country/germany/index.fr.md | 1 + content/country/greece/index.de.md | 1 + content/country/greece/index.en.md | 1 + content/country/greece/index.fr.md | 1 + content/country/ireland/index.de.md | 1 + content/country/ireland/index.en.md | 1 + content/country/ireland/index.fr.md | 1 + content/country/italy/index.de.md | 1 + content/country/italy/index.en.md | 1 + content/country/italy/index.fr.md | 1 + content/country/latvia/index.de.md | 1 + content/country/latvia/index.en.md | 1 + content/country/latvia/index.fr.md | 1 + content/country/lithuania/index.de.md | 1 + content/country/lithuania/index.en.md | 1 + content/country/lithuania/index.fr.md | 1 + content/country/netherlands/index.de.md | 1 + content/country/netherlands/index.en.md | 1 + content/country/netherlands/index.fr.md | 1 + content/country/norway/index.de.md | 1 + content/country/norway/index.en.md | 1 + content/country/norway/index.fr.md | 1 + content/country/poland/index.de.md | 1 + content/country/poland/index.en.md | 1 + content/country/poland/index.fr.md | 1 + content/country/portugal/index.de.md | 1 + content/country/portugal/index.en.md | 1 + content/country/portugal/index.fr.md | 1 + content/country/romania/index.de.md | 1 + content/country/romania/index.en.md | 1 + content/country/romania/index.fr.md | 1 + content/country/serbia/index.de.md | 1 + content/country/serbia/index.en.md | 1 + content/country/serbia/index.fr.md | 1 + content/country/slovakia/index.de.md | 1 + content/country/slovakia/index.en.md | 1 + content/country/slovakia/index.fr.md | 1 + content/country/slovenia/index.de.md | 1 + content/country/slovenia/index.en.md | 1 + content/country/slovenia/index.fr.md | 1 + content/country/spain/index.de.md | 1 + content/country/spain/index.en.md | 1 + content/country/spain/index.fr.md | 1 + content/country/switzerland/index.de.md | 1 + content/country/switzerland/index.en.md | 1 + content/country/switzerland/index.fr.md | 1 + content/country/united-kingdom/index.de.md | 1 + content/country/united-kingdom/index.en.md | 1 + content/country/united-kingdom/index.fr.md | 1 + i18n/de.yaml | 1 + i18n/en.yaml | 1 + i18n/fr.yaml | 3 ++ layouts/general/route-planner/single.html | 4 +- 78 files changed, 152 insertions(+), 2 deletions(-) diff --git a/archetypes/country/index.de.md b/archetypes/country/index.de.md index dd7a927fa..b5574e65a 100644 --- a/archetypes/country/index.de.md +++ b/archetypes/country/index.de.md @@ -3,6 +3,7 @@ draft: false title: "{{ .File.ContentBaseName | title }}" # Ändere den Name auf den deutschen Ländernamen country: "{{ .File.ContentBaseName }}" params: + iso_code: # ISO 3166-1 alpha-2 Code, z. B. DE operators_without_fip: - name: # Betreibername query: # z.B. agencyName == "Betreibername" diff --git a/archetypes/country/index.en.md b/archetypes/country/index.en.md index 89014724a..b6b1c5d70 100644 --- a/archetypes/country/index.en.md +++ b/archetypes/country/index.en.md @@ -3,6 +3,7 @@ draft: false title: "{{ .File.ContentBaseName | title }}" # Change the name to the English country name country: "{{ .File.ContentBaseName }}" params: + iso_code: # ISO 3166-1 alpha-2 code, e.g. DE operators_without_fip: - name: # Operator name query: # e.g. agencyName == "Operator Name" diff --git a/archetypes/country/index.fr.md b/archetypes/country/index.fr.md index 209b1b6d9..46383067b 100644 --- a/archetypes/country/index.fr.md +++ b/archetypes/country/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "{{ .File.ContentBaseName | title }}" # Change le nom par le nom du pays français country: "{{ .File.ContentBaseName }}" params: + iso_code: # Code ISO 3166-1 alpha-2, p.ex. DE operators_without_fip: - name: # Nom de l'opérateur query: # p.ex. agencyName == "Nom de l'opérateur" diff --git a/assets/js/routePlanner.js b/assets/js/routePlanner.js index c080137d1..570020fda 100644 --- a/assets/js/routePlanner.js +++ b/assets/js/routePlanner.js @@ -1,4 +1,25 @@ -import { client, geocode, plan } from "@motis-project/motis-client"; +import { + client, + geocode, + plan, + reverseGeocode, +} from "@motis-project/motis-client"; + +const countryCache = new Map(); + +async function getCountryForPlace(place) { + if (!place?.lat || !place?.lon) return null; + const key = `${place.lat},${place.lon}`; + if (countryCache.has(key)) return countryCache.get(key); + try { + const res = await reverseGeocode({ query: { place: key, numResults: 1 } }); + const country = res.data?.[0]?.country || null; + countryCache.set(key, country); + return country; + } catch { + return null; + } +} client.setConfig({ baseUrl: "https://api.transitous.org", @@ -87,7 +108,9 @@ function getFipStatus(leg) { const cfg = window.routePlannerConfig; const debug = { from: leg.from?.name || null, + fromId: leg.from?.stopId || leg.from?.id || null, to: leg.to?.name || null, + toId: leg.to?.stopId || leg.to?.id || null, startTime: leg.startTime ? new Date(leg.startTime).toLocaleString() : null, endTime: leg.endTime ? new Date(leg.endTime).toLocaleString() : null, agencyId: leg.agencyId || null, @@ -183,6 +206,23 @@ function formatDuration(seconds) { } let fipDebugCounter = 0; +let legWarningCounter = 0; + +function renderInternationalWarning(fromCode, toCode) { + const cfg = window.routePlannerConfig; + if (!fromCode || !toCode || fromCode === toCode) return ""; + + const countries = [...new Set([fromCode, toCode])] + .map((code) => { + const entry = cfg.countryCodeMap[code]; + if (!entry) return null; + return `${entry.name}`; + }) + .filter(Boolean); + + if (countries.length === 0) return ""; + return `
    ${cfg.labels.internationalJourney} ${countries.join(", ")}
    `; +} function renderFipBadge(fipStatus) { const cfg = window.routePlannerConfig; @@ -247,6 +287,14 @@ function renderLeg(leg) { ? ` ${cfg.labels.platform} ${leg.to.platformCode}` : ""; + const warningId = ++legWarningCounter; + getCountryForPlace(leg.from).then((fromCode) => { + getCountryForPlace(leg.to).then((toCode) => { + const el = document.getElementById(`leg-warning-${warningId}`); + if (el) el.outerHTML = renderInternationalWarning(fromCode, toCode); + }); + }); + return `
    @@ -262,6 +310,7 @@ function renderLeg(leg) { ${formatDuration(leg.duration)} ${arrTime} ${leg.to?.name || ""}${toPlatform}
    +
    ${renderFipBadge(fipStatus)}
    diff --git a/assets/sass/routePlanner.scss b/assets/sass/routePlanner.scss index bc61ea40b..c965124ea 100644 --- a/assets/sass/routePlanner.scss +++ b/assets/sass/routePlanner.scss @@ -356,6 +356,28 @@ font-size: 1.3rem; } + &__international-warning { + font-size: 1.3rem; + margin-top: 0.4rem; + margin-bottom: 0.6rem; + padding: 0.4rem 0.75rem; + border-radius: var(--border-radius-s); + border-left: 3px solid map-get($tag-colors, warning); + background: rgba(map-get($tag-colors, warning), 0.08); + color: map-get($tag-colors, warning); + + [data-theme="dark"] & { + border-left-color: map-get($tag-colors-dark, warning); + background: rgba(map-get($tag-colors-dark, warning), 0.1); + color: map-get($tag-colors-dark, warning); + } + + a { + color: inherit; + font-weight: 600; + } + } + &__fip-info { display: inline-flex; align-items: center; diff --git a/content/country/austria/index.de.md b/content/country/austria/index.de.md index b193832be..c1bfb9f81 100644 --- a/content/country/austria/index.de.md +++ b/content/country/austria/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Österreich" country: "austria" params: + iso_code: AT operators_without_fip: - name: Achenseebahn query: diff --git a/content/country/austria/index.en.md b/content/country/austria/index.en.md index cfa0178f3..c6f853bbf 100644 --- a/content/country/austria/index.en.md +++ b/content/country/austria/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Austria" country: "austria" params: + iso_code: AT operators_without_fip: - name: Achenseebahn query: diff --git a/content/country/austria/index.fr.md b/content/country/austria/index.fr.md index a39a13742..f370159c0 100644 --- a/content/country/austria/index.fr.md +++ b/content/country/austria/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Autriche" country: "austria" params: + iso_code: AT operators_without_fip: - name: Achenseebahn query: diff --git a/content/country/belgium/index.de.md b/content/country/belgium/index.de.md index ebd2e79c4..a6efe006e 100644 --- a/content/country/belgium/index.de.md +++ b/content/country/belgium/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Belgien" country: "belgium" params: + iso_code: BE operators_without_fip: - name: European Sleeper query: diff --git a/content/country/belgium/index.en.md b/content/country/belgium/index.en.md index 77e1734a2..da9f86243 100644 --- a/content/country/belgium/index.en.md +++ b/content/country/belgium/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Belgium" country: "belgium" params: + iso_code: BE operators_without_fip: - name: European Sleeper query: diff --git a/content/country/belgium/index.fr.md b/content/country/belgium/index.fr.md index 08b3b4735..e7bbf7a86 100644 --- a/content/country/belgium/index.fr.md +++ b/content/country/belgium/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Belgique" country: "belgium" params: + iso_code: BE operators_without_fip: - name: European Sleeper query: diff --git a/content/country/bulgaria/index.de.md b/content/country/bulgaria/index.de.md index 61085841a..1b8d4dbf1 100644 --- a/content/country/bulgaria/index.de.md +++ b/content/country/bulgaria/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Bulgarien" country: "bulgaria" params: + iso_code: BG operators_without_fip: - name: Optima Express query: diff --git a/content/country/bulgaria/index.en.md b/content/country/bulgaria/index.en.md index ed84a979d..411210926 100644 --- a/content/country/bulgaria/index.en.md +++ b/content/country/bulgaria/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Bulgaria" country: "bulgaria" params: + iso_code: BG operators_without_fip: - name: Optima Express query: diff --git a/content/country/bulgaria/index.fr.md b/content/country/bulgaria/index.fr.md index e1ad5623b..66bff0023 100644 --- a/content/country/bulgaria/index.fr.md +++ b/content/country/bulgaria/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Bulgarie" country: "bulgaria" params: + iso_code: BG operators_without_fip: - name: Optima Express query: diff --git a/content/country/czechia/index.de.md b/content/country/czechia/index.de.md index f86c07ecd..00ba4bd0c 100644 --- a/content/country/czechia/index.de.md +++ b/content/country/czechia/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Tschechien" country: "czechia" params: + iso_code: CZ operators_without_fip: - name: ARRIVA vlaky s. r. o. query: diff --git a/content/country/czechia/index.en.md b/content/country/czechia/index.en.md index 45db56db9..24d382993 100644 --- a/content/country/czechia/index.en.md +++ b/content/country/czechia/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Czechia" country: "czechia" params: + iso_code: CZ operators_without_fip: - name: ARRIVA vlaky s. r. o. query: diff --git a/content/country/czechia/index.fr.md b/content/country/czechia/index.fr.md index e170bc693..b37234c54 100644 --- a/content/country/czechia/index.fr.md +++ b/content/country/czechia/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Tchéquie" country: "czechia" params: + iso_code: CZ operators_without_fip: - name: ARRIVA vlaky s. r. o. query: diff --git a/content/country/denmark/index.de.md b/content/country/denmark/index.de.md index 08f7cfd45..d551958b2 100644 --- a/content/country/denmark/index.de.md +++ b/content/country/denmark/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Dänemark" country: "denmark" params: + iso_code: DK operators_without_fip: - name: GoCollective (ehemals Arriva Danmark) query: diff --git a/content/country/denmark/index.en.md b/content/country/denmark/index.en.md index 2320ea55a..0be8fa0b5 100644 --- a/content/country/denmark/index.en.md +++ b/content/country/denmark/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Denmark" country: "denmark" params: + iso_code: DK operators_without_fip: - name: GoCollective (ehemals Arriva Danmark) query: diff --git a/content/country/denmark/index.fr.md b/content/country/denmark/index.fr.md index 9bc58e390..83fcea9f7 100644 --- a/content/country/denmark/index.fr.md +++ b/content/country/denmark/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Danemark" country: "denmark" params: + iso_code: DK operators_without_fip: - name: GoCollective (anciennement Arriva Danmark) query: diff --git a/content/country/france/index.de.md b/content/country/france/index.de.md index 29b9b0b9f..583f285c6 100644 --- a/content/country/france/index.de.md +++ b/content/country/france/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Frankreich" country: "france" params: + iso_code: FR operators_without_fip: - name: CFC (Chemins de fer de la Corse / Eisenbahnen auf Korsika) query: diff --git a/content/country/france/index.en.md b/content/country/france/index.en.md index 7ad3036e1..57004581c 100644 --- a/content/country/france/index.en.md +++ b/content/country/france/index.en.md @@ -3,6 +3,7 @@ draft: false title: "France" country: "france" params: + iso_code: FR operators_without_fip: - name: CFC (Chemins de fer de la Corse / Railways in Corsica) query: diff --git a/content/country/france/index.fr.md b/content/country/france/index.fr.md index a8f11c4ae..bba03c8cd 100644 --- a/content/country/france/index.fr.md +++ b/content/country/france/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "France" country: "france" params: + iso_code: FR operators_without_fip: - name: CFC (Chemins de fer de la Corse / Chemins de fer corses) query: diff --git a/content/country/germany/index.de.md b/content/country/germany/index.de.md index 3232102bf..e04c665e5 100644 --- a/content/country/germany/index.de.md +++ b/content/country/germany/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Deutschland" country: "germany" params: + iso_code: DE operators_without_fip: - name: Abellio Rail Mitteldeutschland GmbH query: diff --git a/content/country/germany/index.en.md b/content/country/germany/index.en.md index e7aa5e40b..a1a9767bf 100644 --- a/content/country/germany/index.en.md +++ b/content/country/germany/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Germany" country: "germany" params: + iso_code: DE operators_without_fip: - name: Abellio Rail Mitteldeutschland GmbH query: diff --git a/content/country/germany/index.fr.md b/content/country/germany/index.fr.md index 507d9ef23..6ec0e9adb 100644 --- a/content/country/germany/index.fr.md +++ b/content/country/germany/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Allemagne" country: "germany" params: + iso_code: DE operators_without_fip: - name: Abellio Rail Mitteldeutschland GmbH query: diff --git a/content/country/greece/index.de.md b/content/country/greece/index.de.md index d3df41d8b..e61aabc79 100644 --- a/content/country/greece/index.de.md +++ b/content/country/greece/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Griechenland" country: "greece" params: + iso_code: GR operators_without_fip: - name: STASY (Urban Rail Transport S.A.) query: diff --git a/content/country/greece/index.en.md b/content/country/greece/index.en.md index b3fcdd44d..0c2fa14b7 100644 --- a/content/country/greece/index.en.md +++ b/content/country/greece/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Greece" country: "greece" params: + iso_code: GR operators_without_fip: - name: STASY (Urban Rail Transport S.A.) query: diff --git a/content/country/greece/index.fr.md b/content/country/greece/index.fr.md index 4b5758e16..723ce8152 100644 --- a/content/country/greece/index.fr.md +++ b/content/country/greece/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Grèce" country: "greece" params: + iso_code: GR operators_without_fip: - name: STASY (Urban Rail Transport S.A.) query: diff --git a/content/country/ireland/index.de.md b/content/country/ireland/index.de.md index c9f66d477..5761bcafc 100644 --- a/content/country/ireland/index.de.md +++ b/content/country/ireland/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Irland" country: "ireland" params: + iso_code: IE operators_without_fip: - name: Transdev (Luas - Straßenbahn Dublin) query: diff --git a/content/country/ireland/index.en.md b/content/country/ireland/index.en.md index 9b53712ec..26722a119 100644 --- a/content/country/ireland/index.en.md +++ b/content/country/ireland/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Ireland" country: "ireland" params: + iso_code: IE operators_without_fip: - name: Transdev (Luas - Dublin Tram) query: diff --git a/content/country/ireland/index.fr.md b/content/country/ireland/index.fr.md index e4665d6db..b7bac7eb3 100644 --- a/content/country/ireland/index.fr.md +++ b/content/country/ireland/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Irlande" country: "ireland" params: + iso_code: IE operators_without_fip: - name: Transdev (Luas - Tramway de Dublin) query: diff --git a/content/country/italy/index.de.md b/content/country/italy/index.de.md index 4df62d2b7..5fc79c8c0 100644 --- a/content/country/italy/index.de.md +++ b/content/country/italy/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Italien" country: "italy" params: + iso_code: IT operators_without_fip: - name: Azienda Regionale Sarda Trasporti query: diff --git a/content/country/italy/index.en.md b/content/country/italy/index.en.md index fd9c679eb..63f2b715d 100644 --- a/content/country/italy/index.en.md +++ b/content/country/italy/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Italy" country: "italy" params: + iso_code: IT operators_without_fip: - name: Azienda Regionale Sarda Trasporti query: diff --git a/content/country/italy/index.fr.md b/content/country/italy/index.fr.md index b36eca668..9b951ade0 100644 --- a/content/country/italy/index.fr.md +++ b/content/country/italy/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Italie" country: "italy" params: + iso_code: IT operators_without_fip: - name: Azienda Regionale Sarda Trasporti query: diff --git a/content/country/latvia/index.de.md b/content/country/latvia/index.de.md index f8b63e77f..a526352df 100644 --- a/content/country/latvia/index.de.md +++ b/content/country/latvia/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Lettland" country: "latvia" params: + iso_code: LV operators_without_fip: - name: "Latvijas dzelzceļš (LDz)" query: diff --git a/content/country/latvia/index.en.md b/content/country/latvia/index.en.md index 031b9a539..765bdbf38 100644 --- a/content/country/latvia/index.en.md +++ b/content/country/latvia/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Latvia" country: "latvia" params: + iso_code: LV operators_without_fip: - name: "Latvijas dzelzceļš (LDz)" query: diff --git a/content/country/latvia/index.fr.md b/content/country/latvia/index.fr.md index e2aa48370..9ee5bb418 100644 --- a/content/country/latvia/index.fr.md +++ b/content/country/latvia/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Lettonie" country: "latvia" params: + iso_code: LV operators_without_fip: - name: "Latvijas dzelzceļš (LDz)" query: diff --git a/content/country/lithuania/index.de.md b/content/country/lithuania/index.de.md index e8489ecb3..771c87aa3 100644 --- a/content/country/lithuania/index.de.md +++ b/content/country/lithuania/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Litauen" country: "lithuania" params: + iso_code: LT operators_without_fip: - name: "Aukštaitijos siaurasis geležinkelis (Museumsbahn)" query: diff --git a/content/country/lithuania/index.en.md b/content/country/lithuania/index.en.md index b33d87b3b..74a694210 100644 --- a/content/country/lithuania/index.en.md +++ b/content/country/lithuania/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Lithuania" country: "lithuania" params: + iso_code: LT operators_without_fip: - name: "Aukštaitijos siaurasis geležinkelis (heritage railway)" query: diff --git a/content/country/lithuania/index.fr.md b/content/country/lithuania/index.fr.md index 13f73ae63..da891b353 100644 --- a/content/country/lithuania/index.fr.md +++ b/content/country/lithuania/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Lituanie" country: "lithuania" params: + iso_code: LT operators_without_fip: - name: "Aukštaitijos siaurasis geležinkelis (chemin de fer musée)" query: diff --git a/content/country/netherlands/index.de.md b/content/country/netherlands/index.de.md index 13ed29b48..90e2957ad 100644 --- a/content/country/netherlands/index.de.md +++ b/content/country/netherlands/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Niederlande" country: "netherlands" params: + iso_code: NL operators_without_fip: - name: Arriva Nederland query: diff --git a/content/country/netherlands/index.en.md b/content/country/netherlands/index.en.md index fe869a155..29ce1df5f 100644 --- a/content/country/netherlands/index.en.md +++ b/content/country/netherlands/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Netherlands" country: "netherlands" params: + iso_code: NL operators_without_fip: - name: Arriva Nederland query: diff --git a/content/country/netherlands/index.fr.md b/content/country/netherlands/index.fr.md index c45b6cf78..4bc70115d 100644 --- a/content/country/netherlands/index.fr.md +++ b/content/country/netherlands/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Pays-Bas" country: "netherlands" params: + iso_code: NL operators_without_fip: - name: Arriva Nederland query: diff --git a/content/country/norway/index.de.md b/content/country/norway/index.de.md index 2f6b6d681..53ec7307d 100644 --- a/content/country/norway/index.de.md +++ b/content/country/norway/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Norwegen" country: "norway" params: + iso_code: NO operators_without_fip: - name: Arctic Train query: diff --git a/content/country/norway/index.en.md b/content/country/norway/index.en.md index 0ad3b0de6..d9dd6342b 100644 --- a/content/country/norway/index.en.md +++ b/content/country/norway/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Norway" country: "norway" params: + iso_code: NO operators_without_fip: - name: Arctic Train query: diff --git a/content/country/norway/index.fr.md b/content/country/norway/index.fr.md index a80fb1e6d..40620ac0c 100644 --- a/content/country/norway/index.fr.md +++ b/content/country/norway/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Norvège" country: "norway" params: + iso_code: NO operators_without_fip: - name: Arctic Train query: diff --git a/content/country/poland/index.de.md b/content/country/poland/index.de.md index f3c67c130..70c74529d 100644 --- a/content/country/poland/index.de.md +++ b/content/country/poland/index.de.md @@ -3,6 +3,7 @@ draft: false title: Polen country: "poland" params: + iso_code: PL operators_without_fip: - name: Arriva query: diff --git a/content/country/poland/index.en.md b/content/country/poland/index.en.md index 1c8af7869..ca4c3b3fc 100644 --- a/content/country/poland/index.en.md +++ b/content/country/poland/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Poland" country: "poland" params: + iso_code: PL operators_without_fip: - name: Arriva query: diff --git a/content/country/poland/index.fr.md b/content/country/poland/index.fr.md index 46ebe1e97..38e2b61fd 100644 --- a/content/country/poland/index.fr.md +++ b/content/country/poland/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Pologne" country: "poland" params: + iso_code: PL operators_without_fip: - name: Arriva query: diff --git a/content/country/portugal/index.de.md b/content/country/portugal/index.de.md index 003462cfa..1ed66f1c2 100644 --- a/content/country/portugal/index.de.md +++ b/content/country/portugal/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Portugal" country: "portugal" params: + iso_code: PT operators_without_fip: - name: Fertagus query: diff --git a/content/country/portugal/index.en.md b/content/country/portugal/index.en.md index 2469edee4..96636cb9f 100644 --- a/content/country/portugal/index.en.md +++ b/content/country/portugal/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Portugal" country: "portugal" params: + iso_code: PT operators_without_fip: - name: Fertagus query: diff --git a/content/country/portugal/index.fr.md b/content/country/portugal/index.fr.md index c78d523e9..6b1153338 100644 --- a/content/country/portugal/index.fr.md +++ b/content/country/portugal/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Portugal" country: "portugal" params: + iso_code: PT operators_without_fip: - name: Fertagus query: diff --git a/content/country/romania/index.de.md b/content/country/romania/index.de.md index f9c181e78..d41270fc4 100644 --- a/content/country/romania/index.de.md +++ b/content/country/romania/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Rumänien" country: "romania" params: + iso_code: RO operators_without_fip: - name: Astra Trains Carpatic (ATC) query: diff --git a/content/country/romania/index.en.md b/content/country/romania/index.en.md index e11f7b816..2db403488 100644 --- a/content/country/romania/index.en.md +++ b/content/country/romania/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Romania" country: "romania" params: + iso_code: RO operators_without_fip: - name: Astra Trains Carpatic (ATC) query: diff --git a/content/country/romania/index.fr.md b/content/country/romania/index.fr.md index 7ddd61f14..e81abba28 100644 --- a/content/country/romania/index.fr.md +++ b/content/country/romania/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Roumanie" country: "romania" params: + iso_code: RO operators_without_fip: - name: Astra Trains Carpatic (ATC) query: diff --git a/content/country/serbia/index.de.md b/content/country/serbia/index.de.md index c6823f482..a9e9447bf 100644 --- a/content/country/serbia/index.de.md +++ b/content/country/serbia/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Serbien" country: "serbia" params: + iso_code: RS operators_without_fip: - name: Optima Express query: diff --git a/content/country/serbia/index.en.md b/content/country/serbia/index.en.md index bc3871aaf..ee364e343 100644 --- a/content/country/serbia/index.en.md +++ b/content/country/serbia/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Serbia" country: "serbia" params: + iso_code: RS operators_without_fip: - name: Optima Express query: diff --git a/content/country/serbia/index.fr.md b/content/country/serbia/index.fr.md index 5b4dc119a..2a14fd15f 100644 --- a/content/country/serbia/index.fr.md +++ b/content/country/serbia/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Serbie" country: "serbia" params: + iso_code: RS operators_without_fip: - name: Optima Express query: diff --git a/content/country/slovakia/index.de.md b/content/country/slovakia/index.de.md index eac9df8c6..59691e6d9 100644 --- a/content/country/slovakia/index.de.md +++ b/content/country/slovakia/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Slowakei" country: "slovakia" params: + iso_code: SK operators_without_fip: - name: RegioJet query: diff --git a/content/country/slovakia/index.en.md b/content/country/slovakia/index.en.md index 8315dc604..eb5c3af79 100644 --- a/content/country/slovakia/index.en.md +++ b/content/country/slovakia/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Slovakia" country: "slovakia" params: + iso_code: SK operators_without_fip: - name: RegioJet query: diff --git a/content/country/slovakia/index.fr.md b/content/country/slovakia/index.fr.md index 063623184..635f35032 100644 --- a/content/country/slovakia/index.fr.md +++ b/content/country/slovakia/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Slovaquie" country: "slovakia" params: + iso_code: SK operators_without_fip: - name: RegioJet query: diff --git a/content/country/slovenia/index.de.md b/content/country/slovenia/index.de.md index f6d5053c9..6f7677d51 100644 --- a/content/country/slovenia/index.de.md +++ b/content/country/slovenia/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Slowenien" country: "slovenia" params: + iso_code: SI operators_without_fip: - name: Optima Express query: diff --git a/content/country/slovenia/index.en.md b/content/country/slovenia/index.en.md index df4034b95..b1f50e11d 100644 --- a/content/country/slovenia/index.en.md +++ b/content/country/slovenia/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Slovenia" country: "slovenia" params: + iso_code: SI operators_without_fip: - name: Optima Express query: diff --git a/content/country/slovenia/index.fr.md b/content/country/slovenia/index.fr.md index 3e6d6aad6..0362a17c4 100644 --- a/content/country/slovenia/index.fr.md +++ b/content/country/slovenia/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Slovénie" country: "slovenia" params: + iso_code: SI operators_without_fip: - name: Optima Express query: diff --git a/content/country/spain/index.de.md b/content/country/spain/index.de.md index 3354c7fe0..e6df26c87 100644 --- a/content/country/spain/index.de.md +++ b/content/country/spain/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Spanien" country: "spain" params: + iso_code: ES operators_without_fip: - name: Iryo query: diff --git a/content/country/spain/index.en.md b/content/country/spain/index.en.md index f24cecbe6..f090fbd32 100644 --- a/content/country/spain/index.en.md +++ b/content/country/spain/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Spain" country: "spain" params: + iso_code: ES operators_without_fip: - name: Iryo query: diff --git a/content/country/spain/index.fr.md b/content/country/spain/index.fr.md index a8947386d..cf5b34311 100644 --- a/content/country/spain/index.fr.md +++ b/content/country/spain/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Espagne" country: "spain" params: + iso_code: ES operators_without_fip: - name: Iryo query: diff --git a/content/country/switzerland/index.de.md b/content/country/switzerland/index.de.md index 9102d8830..aa277cc81 100644 --- a/content/country/switzerland/index.de.md +++ b/content/country/switzerland/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Schweiz" country: "switzerland" params: + iso_code: CH operators_without_fip: - name: European Sleeper query: diff --git a/content/country/switzerland/index.en.md b/content/country/switzerland/index.en.md index e2d6d2e39..fc0b81786 100644 --- a/content/country/switzerland/index.en.md +++ b/content/country/switzerland/index.en.md @@ -3,6 +3,7 @@ draft: false title: "Switzerland" country: "switzerland" params: + iso_code: CH operators_without_fip: - name: European Sleeper query: diff --git a/content/country/switzerland/index.fr.md b/content/country/switzerland/index.fr.md index bb2b01a13..7b9e43d77 100644 --- a/content/country/switzerland/index.fr.md +++ b/content/country/switzerland/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Suisse" country: "switzerland" params: + iso_code: CH operators_without_fip: - name: European Sleeper query: diff --git a/content/country/united-kingdom/index.de.md b/content/country/united-kingdom/index.de.md index a9ff8f22a..f7ac22b5b 100644 --- a/content/country/united-kingdom/index.de.md +++ b/content/country/united-kingdom/index.de.md @@ -3,6 +3,7 @@ draft: false title: "Vereinigtes Königreich" country: "united-kingdom" params: + iso_code: GB operators_without_fip: - name: Blackpool Tramway query: diff --git a/content/country/united-kingdom/index.en.md b/content/country/united-kingdom/index.en.md index 873e7d90f..31aa896c8 100644 --- a/content/country/united-kingdom/index.en.md +++ b/content/country/united-kingdom/index.en.md @@ -3,6 +3,7 @@ draft: false title: "United Kingdom" country: "united-kingdom" params: + iso_code: GB operators_without_fip: - name: Blackpool Tramway query: diff --git a/content/country/united-kingdom/index.fr.md b/content/country/united-kingdom/index.fr.md index e60b384a3..e4c8c8012 100644 --- a/content/country/united-kingdom/index.fr.md +++ b/content/country/united-kingdom/index.fr.md @@ -3,6 +3,7 @@ draft: false title: "Royaume-Uni" country: "united-kingdom" params: + iso_code: GB operators_without_fip: - name: Blackpool Tramway query: diff --git a/i18n/de.yaml b/i18n/de.yaml index 7ecb680b7..d64703a05 100644 --- a/i18n/de.yaml +++ b/i18n/de.yaml @@ -236,6 +236,7 @@ routePlanner: fipUnknown: FIP-Status unbekannt from: Von fromPlaceholder: z. B. Brüssel-Midi + internationalJourney: 'Internationale Fahrt! Bitte prüfe die Grenzpunkte auf den Länderseiten:' loading: Verbindungen werden gesucht… noResults: Keine Verbindungen gefunden. operatorBaseUrl: /de diff --git a/i18n/en.yaml b/i18n/en.yaml index de7b89421..ed60a118c 100644 --- a/i18n/en.yaml +++ b/i18n/en.yaml @@ -229,6 +229,7 @@ routePlanner: fipUnknown: FIP status unknown from: From fromPlaceholder: e.g. Brussels-Midi + internationalJourney: 'International journey! Please check the border points on the country pages:' loading: Searching for connections… noResults: No connections found. operatorBaseUrl: /en diff --git a/i18n/fr.yaml b/i18n/fr.yaml index 1c0ca07cf..43583ad8a 100644 --- a/i18n/fr.yaml +++ b/i18n/fr.yaml @@ -238,6 +238,9 @@ routePlanner: fipUnknown: Statut FIP inconnu from: De fromPlaceholder: ex. Bruxelles-Midi + internationalJourney: >- + Trajet international ! Veuillez vérifier les points frontières sur les pages + des pays : loading: Recherche de connexions… noResults: Aucune connexion trouvée. operatorBaseUrl: /fr diff --git a/layouts/general/route-planner/single.html b/layouts/general/route-planner/single.html index 2219c830c..19f3bb826 100644 --- a/layouts/general/route-planner/single.html +++ b/layouts/general/route-planner/single.html @@ -107,6 +107,7 @@

    {{ .Title }}

    window.routePlannerConfig = { lang: "{{ .Language.Lang }}", baseUrl: "{{ T "routePlanner.operatorBaseUrl" }}", + countryCodeMap: {{ $map := dict }}{{ range where (where site.Pages "Type" "country") "IsPage" true }}{{ $slug := .File.ContentBaseName }}{{ $name := .Title }}{{ with .Params.iso_code }}{{ $map = merge $map (dict . (dict "slug" $slug "name" $name)) }}{{ end }}{{ end }}{{ $map | jsonify }}, labels: { walk: "{{ T "routePlanner.walk" }}", fipAccepted: "{{ T "routePlanner.fipAccepted" }}", @@ -123,7 +124,8 @@

    {{ .Title }}

    duration: "{{ T "routePlanner.duration" }}", platform: "{{ T "routePlanner.platform" }}", noResults: "{{ T "routePlanner.noResults" }}", - errorGeneric: "{{ T "routePlanner.errorGeneric" }}" + errorGeneric: "{{ T "routePlanner.errorGeneric" }}", + internationalJourney: "{{ T "routePlanner.internationalJourney" }}" } }; From d9e5404b58643099202fa111e646cb66b58b055c Mon Sep 17 00:00:00 2001 From: MoritzWeber Date: Fri, 24 Jul 2026 09:16:04 +0200 Subject: [PATCH 4/4] fix: Display international warning message again --- assets/js/routePlanner.js | 34 ++++++++++++++++------- layouts/general/route-planner/single.html | 2 +- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/assets/js/routePlanner.js b/assets/js/routePlanner.js index 570020fda..d4bed6a0f 100644 --- a/assets/js/routePlanner.js +++ b/assets/js/routePlanner.js @@ -109,8 +109,10 @@ function getFipStatus(leg) { const debug = { from: leg.from?.name || null, fromId: leg.from?.stopId || leg.from?.id || null, + fromCountry: null, to: leg.to?.name || null, toId: leg.to?.stopId || leg.to?.id || null, + toCountry: null, startTime: leg.startTime ? new Date(leg.startTime).toLocaleString() : null, endTime: leg.endTime ? new Date(leg.endTime).toLocaleString() : null, agencyId: leg.agencyId || null, @@ -224,14 +226,14 @@ function renderInternationalWarning(fromCode, toCode) { return `
    ${cfg.labels.internationalJourney} ${countries.join(", ")}
    `; } -function renderFipBadge(fipStatus) { +function renderFipBadge(fipStatus, popoverId) { const cfg = window.routePlannerConfig; - const popoverId = `fip-debug-${++fipDebugCounter}`; + if (!popoverId) popoverId = `fip-debug-${++fipDebugCounter}`; const rows = Object.entries(fipStatus.debug) .map( ([k, v]) => - `${k}${v !== null ? v : "—"}`, + `${k}${v !== null ? v : "—"}`, ) .join(""); const popoverHtml = ` @@ -288,12 +290,24 @@ function renderLeg(leg) { : ""; const warningId = ++legWarningCounter; - getCountryForPlace(leg.from).then((fromCode) => { - getCountryForPlace(leg.to).then((toCode) => { - const el = document.getElementById(`leg-warning-${warningId}`); - if (el) el.outerHTML = renderInternationalWarning(fromCode, toCode); - }); - }); + const popoverId = `fip-debug-${++fipDebugCounter}`; + Promise.all([getCountryForPlace(leg.from), getCountryForPlace(leg.to)]).then( + ([fromCode, toCode]) => { + setTimeout(() => { + const el = document.getElementById(`leg-warning-${warningId}`); + if (el) el.outerHTML = renderInternationalWarning(fromCode, toCode); + const popover = document.getElementById(popoverId); + if (popover) { + const update = (key, val) => { + const cell = popover.querySelector(`[data-debug-key="${key}"]`); + if (cell) cell.textContent = val !== null ? val : "—"; + }; + update("fromCountry", fromCode); + update("toCountry", toCode); + } + }, 0); + }, + ); return `
    @@ -312,7 +326,7 @@ function renderLeg(leg) {
    - ${renderFipBadge(fipStatus)} + ${renderFipBadge(fipStatus, popoverId)}
    `; diff --git a/layouts/general/route-planner/single.html b/layouts/general/route-planner/single.html index 19f3bb826..795b20125 100644 --- a/layouts/general/route-planner/single.html +++ b/layouts/general/route-planner/single.html @@ -107,7 +107,7 @@

    {{ .Title }}

    window.routePlannerConfig = { lang: "{{ .Language.Lang }}", baseUrl: "{{ T "routePlanner.operatorBaseUrl" }}", - countryCodeMap: {{ $map := dict }}{{ range where (where site.Pages "Type" "country") "IsPage" true }}{{ $slug := .File.ContentBaseName }}{{ $name := .Title }}{{ with .Params.iso_code }}{{ $map = merge $map (dict . (dict "slug" $slug "name" $name)) }}{{ end }}{{ end }}{{ $map | jsonify }}, + countryCodeMap: JSON.parse('{{ $map := dict }}{{ range where (where site.Pages "Type" "country") "IsPage" true }}{{ $slug := .File.ContentBaseName }}{{ $name := .Title }}{{ with .Params.iso_code }}{{ $map = merge $map (dict . (dict "slug" $slug "name" $name)) }}{{ end }}{{ end }}{{ $map | jsonify }}'), labels: { walk: "{{ T "routePlanner.walk" }}", fipAccepted: "{{ T "routePlanner.fipAccepted" }}",