diário ·

Como uma entrada vira treze páginas

Tradução por IA Esta página é uma tradução automática do original (inglês / coreano) e pode conter erros. O original é a versão de referência. Ler o original

No ipe.rest uma entrada é escrita uma só vez, em dois idiomas, e os outros dez vêm de pequenos arquivos ao lado dela. Depois um script constrói treze páginas a partir desses onze arquivos. É assim que isso acontece.

A última entrada tratou dos testes que rodam antes de uma página ir ao ar. Esta trata da etapa anterior: como as páginas são feitas. Os números são de 10 de novembro de 2026, tirados do repositório como ele está agora e do commit que acrescentou a entrada de 8 de novembro. Esta entrada tem data de 9 de novembro, mas foi escrita no dia 10, depois de dois dias sem nenhuma. Preferimos dizer isso.

O que escrevemos à mão

Um arquivo de origem contém o texto em inglês e coreano de uma entrada, com seus títulos, descrições, resumo e dados estruturados. Outros dez arquivos contêm o mesmo em alemão, francês, espanhol, português, russo, árabe, híndi, japonês, chinês e indonésio: título, cabeçalho, descrição, resumo, trecho e corpo do texto. Esses dez são rascunhos de máquina, e as páginas feitas a partir deles dizem isso. São, portanto, onze arquivos por entrada. Nenhuma página do diário é escrita à mão.

O que o script constrói

Um script chamado journal_sync.py lê esses arquivos e escreve todo o resto. Para cada entrada, ele faz doze páginas, uma por idioma, e uma décima terceira sem idioma próprio, que envia o visitante para o idioma que ele escolheu antes ou para o que o navegador usa. Ele também reescreve as doze páginas de lista, o feed RSS, o mapa do site e o llms.txt. Um segundo script, home_sync.py, atualiza os cartões das três entradas mais recentes em cada uma das doze páginas iniciais.

Antes de escrever qualquer coisa, o script confere a origem. Ele recusa uma entrada a que falta um link canônico ou o artigo, que não tem um cabeçalho por idioma, que tem dados estruturados quebrados ou imagem ausente, ou que ainda traz um campo não preenchido do modelo.

O tamanho de uma entrada

O commit que acrescentou a entrada de 8 de novembro alterou 245 arquivos. Escrevemos 11 deles. Mais um foi uma única linha, a versão do service worker. Os outros 233 foram gerados: as 13 páginas novas; 206 arquivos antigos do diário, a maioria alterada em uma ou duas linhas porque cada página lista as últimas entradas; e as doze páginas iniciais, o mapa do site e o llms.txt.

É por isso que nunca editamos uma página gerada. Uma edição à mão seria sobrescrita na próxima execução, e um teste falha quando qualquer arquivo gerado está desatualizado.

O que isso não faz

Um script que constrói treze páginas não consegue dizer se uma entrada vale a leitura, nem se um rascunho de máquina diz o que queríamos dizer. Ele só garante que as páginas combinem com suas origens e entre si. A leitura continua com as pessoas.

ipe(); // write once, generate the rest

Uma origem, treze páginas, e nenhuma linha digitada duas vezes. Quando algo precisa mudar, mudamos a origem e rodamos o script de novo.

← todas as entradas