Un blog statico che traduce i propri URL in otto lingue

/ Articolo

Tradotto automaticamente. Leggi l’originale in inglese: A static blog that translates its own URLs into eight languages →

Questo è il primo post, quindi tanto vale che spieghi la macchina che lo ha pubblicato. L’intero sito è fatto di file statici. Niente server, niente database, nulla da tenere in esecuzione.

Scrivere un post

Basta lasciare un file markdown in src/content/blog/en/. Il nome del file diventa l’URL, quindi how-i-removed-greptile.md viene pubblicato su /blog/how-i-removed-greptile. Il frontmatter è breve:

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

Imposta draft: true mentre ci stai ancora lavorando. Le bozze vengono renderizzate in npm run dev ma vengono escluse dalla build.

Traduzione

Quando un post arriva su main, una GitHub Action lo invia a DeepSeek V4 Flash e scrive otto traduzioni nel repository come normali file markdown. Anche lo slug viene tradotto, quindi la versione turca di questo post vive su un URL turco invece che su uno inglese attaccato a un prefisso /tr.

Ogni file tradotto registra un hash della fonte inglese da cui proviene. All’esecuzione successiva, i post il cui hash corrisponde ancora vengono saltati, quindi modificare un post ritraduce un post invece dell’intero archivio.

Livello Scelta
Framework Astro, output statico
Hosting asset statici Cloudflare Workers
Traduzione DeepSeek V4 Flash su Fireworks
Contenuti Markdown in git

Deployment

Il merge su main esegue il passaggio di traduzione, committa tutto ciò che è cambiato, compila e pubblica. La build richiede pochi secondi e l’output è una cartella di HTML.

La proprietà più bella di un sito statico è che le modalità di errore sono noiose. Niente può cadere alle 3 di notte, perché non c’è nulla in esecuzione.

Premi T per passare da chiaro a scuro, e B, A, G o L per spostarti nel sito.