Ein statischer Blog, der seine URLs in acht Sprachen übersetzt

/ Artikel

Maschinell übersetzt. Zum englischen Original: A static blog that translates its own URLs into eight languages →

Dies ist der erste Beitrag, also kann er gleich die Maschine erklären, die ihn veröffentlicht hat. Die gesamte Seite besteht aus statischen Dateien – es gibt keinen Server, keine Datenbank und nichts, was am Laufen gehalten werden müsste.

Einen Beitrag schreiben

Lege eine Markdown-Datei in src/content/blog/en/ ab. Der Dateiname wird zur URL, also wird how-i-removed-greptile.md unter /blog/how-i-removed-greptile veröffentlicht. Das Frontmatter ist kurz:

---
title: How I removed Greptile
description: One sentence for search results and social cards.
pubDate: 2026-08-07
tags: [tooling, code-review]
---

Setze draft: true, solange du noch daran arbeitest. Entwürfe werden in npm run dev angezeigt, aber beim Build ausgelassen.

Übersetzung

Wenn ein Beitrag auf main landet, sendet eine GitHub Action ihn an DeepSeek V4 Flash und schreibt acht Übersetzungen als normale Markdown-Dateien zurück ins Repository. Der Slug wird ebenfalls übersetzt, sodass die türkische Version dieses Beitrags unter einer türkischen URL lebt und nicht unter einer englischen mit einem /tr-Präfix.

Jede übersetzte Datei speichert einen Hash der englischen Quelle, von der sie stammt. Beim nächsten Durchlauf werden Beiträge, deren Hash noch übereinstimmt, übersprungen – so wird beim Bearbeiten eines Beitrags nur dieser neu übersetzt, nicht das gesamte Archiv.

Ebene Auswahl
Framework Astro, statische Ausgabe
Hosting Cloudflare Workers statische Assets
Übersetzung DeepSeek V4 Flash on Fireworks
Inhalt Markdown in Git

Bereitstellung

Ein Merge auf main führt den Übersetzungsdurchlauf aus, committed alles, was sich geändert hat, baut und stellt bereit. Der Build dauert ein paar Sekunden und die Ausgabe ist ein Ordner mit HTML.

Die schönste Eigenschaft einer statischen Website ist, dass die Fehlermodi langweilig sind. Nichts kann um 3 Uhr morgens abstürzen, weil nichts läuft.

Drücke T, um zwischen Hell und Dunkel umzuschalten, und B, A, G oder L, um auf der Seite zu navigieren.