No description
  • HTML 60.6%
  • Python 39.4%
Find a file
pp 271b2214d9
Some checks failed
Kreuzfahrt HTML Deploy / rename-and-deploy (push) Has been cancelled
Wetter aktualisiert
2026-10-03 07:21:43 +02:00
.forgejo/workflows Deploy-Zielpfad korrigiert: cruise.retep.net 2026-09-26 11:11:29 +02:00
archiv Archiv: Reiseplan Mittelmeer (2026.09.25) 2026-09-25 20:05:43 +02:00
.gitignore Token aus Script in .env ausgelagert und .gitignore aktualisiert 2026-06-22 13:25:57 +02:00
AGENTS.md Doku aktualisiert: Domain cruise.retep.net, Header-Format, Copy-Block, robots.txt/Schutz 2026-09-26 11:47:25 +02:00
cruiseports.json Palma: Koordinaten zum Kreuzfahrt-/Fährhafen Port de Palma (Portopí) korrigiert 2026-09-26 15:01:53 +02:00
generate_kreuzfahrt.py Doku aktualisiert: Domain cruise.retep.net, Header-Format, Copy-Block, robots.txt/Schutz 2026-09-26 11:47:25 +02:00
INFO.md Doku aktualisiert: Domain cruise.retep.net, Header-Format, Copy-Block, robots.txt/Schutz 2026-09-26 11:47:25 +02:00
kreuzfahrt.html Wetter aktualisiert 2026-10-03 07:21:43 +02:00
kreuzfahrt_app.html feat: neue Single-Page-App mit Upload-Feld und Wetter-API 2026-06-04 15:34:57 +02:00
README.md Doku aktualisiert: Domain cruise.retep.net, Header-Format, Copy-Block, robots.txt/Schutz 2026-09-26 11:47:25 +02:00
reiseplan.txt Titel/Untertitel-Handler fixen: Titel + 2 Untertitel im Header 2026-09-25 20:05:08 +02:00
robots.txt Seite absichern: noindex/noai Meta-Tags + robots.txt + Deploy-Update 2026-09-26 11:07:22 +02:00

Kreuzfahrtplan Generator

Dieses Projekt generiert eine interaktive HTML-Seite mit Kreuzfahrtplan und Wetterdaten.

Resultat: 🌐 cruise.retep.net

Dateien

Datei Beschreibung
reiseplan.txt Reiseplan (Kopfblock + Hafenstopps + Zeiten)
generate_kreuzfahrt.py Python-Script, das den Reiseplan parst und eine HTML-Seite generiert
kreuzfahrt.html Generierte Output-Seite (wird als index.html deployed)
cruiseports.json Geocache für Hafen-Positionen (OpenStreetMap Nominatim)
robots.txt Sperre für Suchmaschinen- und KI-Crawler
archiv/ Ältere, abgelegte Reisepläne (nicht deployed)
AGENTS.md Projekt-Kontext für den Pi Coding Agent
INFO.md Technische Schritt-für-Schritt-Doku des Generators

Verwendung

  1. Reiseplan erfassen in reiseplan.txt
  2. HTML-Seite erstellen:
python3 generate_kreuzfahrt.py

Das Script:

  1. Liest reiseplan.txt ein (Titel, Schiff, Untertitel, Stopps)
  2. Sucht Hafen-Positionen via OpenStreetMap Nominatim API
  3. Holt Wetterdaten von Open-Meteo (Forecast + Fallback-Kette)
  4. Generiert kreuzfahrt.html mit interaktiven Karten und kopierbarem Textblock

Seiten-Aufbau

  • Header: Brand (klein) → <h1> Schiff → <h2> Route → Zeitstempel
  • Tabelle: Datum · Ort · Wetter · Karte (pro Reisetag)
  • Copy-Block „📋 Reiseplan als Text": kompletter Plan als Textblock, mit Copy-Button (1 Klick alles kopieren)

Reiseplan-Format (reiseplan.txt)

REISEPLAN supportnet.ch              ← Zeile 0: Titel/Brand
Mein Schiff 7                        ← Zeile 1: Schiff (<h1>)
Europas Westküste: Hamburg bis Palma  ← Zeile 2: Untertitel (<h2>)

Wochentag TT.MM.JJJJ                 ← Datum
Hafenname (Land)                     ← Hafen
Zeit                                 ← z.B. "Abfahrt 17:00" oder "08:00-18:00"

Seetage: Zeile Seetag (auch Erholung auf See erkannt).

Wetter-APIs

  • Open-Meteo: Primäre Quelle (~16-Tage Forecast, kostenlos, kein API-Key nötig)
  • WeatherAPI.com: Fallback (14-Tage Forecast, API-Key aus 1Password)
  • Open-Meteo Archive: 3-Jahres-Klimamittel als letzter Fallback

Termine außerhalb des Prognosefensters zeigen automatisch das 3-Jahres-Klimamittel (📊) und wechseln näher am Datum auf Live-Prognose (🔮).

Schutz vor Indexierung / KI-Training

  • Meta-Tag im HTML: noindex, nofollow, noarchive, nosnippet, noimageindex, noai, noimageai
  • robots.txt: Disallow: / für alle + explizite KI-/AI-Bot-Blockliste
  • Sind Höflichkeitssignale; harte Blockade nur serverseitig möglich (z.B. Cloudflare).

Projekt-Workflow

  1. reiseplan.txt aktualisieren (falls nötig)
  2. python3 generate_kreuzfahrt.py ausführen
  3. Ergebnis in kreuzfahrt.html prüfen
  4. Commit und push → CI/CD deployed index.html + robots.txt

Tech Stack

  • Python 3
  • Open-Meteo API (Wetter)
  • OpenStreetMap Nominatim (Hafen-Koordinaten)
  • Leaflet.js + OpenStreetMap (interaktive Karten)
  • CI/CD via Forgejo Actions (.forgejo/workflows/deploy.yml)