No description
- HTML 60.6%
- Python 39.4%
|
Some checks failed
Kreuzfahrt HTML Deploy / rename-and-deploy (push) Has been cancelled
|
||
|---|---|---|
| .forgejo/workflows | ||
| archiv | ||
| .gitignore | ||
| AGENTS.md | ||
| cruiseports.json | ||
| generate_kreuzfahrt.py | ||
| INFO.md | ||
| kreuzfahrt.html | ||
| kreuzfahrt_app.html | ||
| README.md | ||
| reiseplan.txt | ||
| robots.txt | ||
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
- Reiseplan erfassen in
reiseplan.txt - HTML-Seite erstellen:
python3 generate_kreuzfahrt.py
Das Script:
- Liest
reiseplan.txtein (Titel, Schiff, Untertitel, Stopps) - Sucht Hafen-Positionen via OpenStreetMap Nominatim API
- Holt Wetterdaten von Open-Meteo (Forecast + Fallback-Kette)
- Generiert
kreuzfahrt.htmlmit 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
reiseplan.txtaktualisieren (falls nötig)python3 generate_kreuzfahrt.pyausführen- Ergebnis in
kreuzfahrt.htmlprüfen - 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)