günlük ·
How one entry becomes thirteen pages
Henüz çevrilmedi Bu yazı henüz Türkçeye çevrilmedi; aşağıda İngilizce özgün metin gösteriliyor. İngilizce özgün metni oku
On ipe.rest an entry is written once, in two languages, and the other ten come from small files beside it. One script then builds thirteen pages from those eleven files. Here is how that goes.
The last entry covered the tests that run before a page ships. This one covers the step before that: how the pages get made. The figures are from 10 November 2026, taken from the repository as it stands and from the commit that added the 8 November entry. This entry is dated 9 November but was written on the 10th, after two days without one. We would rather say so.
What we write by hand
One source file holds the English and Korean text of an entry, along with its titles, descriptions, summary and structured data. Ten more files hold the same in German, French, Spanish, Portuguese, Russian, Arabic, Hindi, Japanese, Chinese and Indonesian: title, heading, description, summary, excerpt and body. Those ten are machine drafts, and the pages built from them say so. That makes eleven files for each entry. No journal page is written by hand.
What the script builds
A script called journal_sync.py reads those files and writes everything else. For each entry it makes twelve pages, one per language, and a thirteenth with no language of its own, which sends a visitor to the language they chose before or the one their browser uses. It also rewrites the twelve list pages, the RSS feed, the sitemap and llms.txt. A second script, home_sync.py, refreshes the cards for the three newest entries on each of the twelve home pages.
Before it writes anything, the script checks the source. It refuses an entry that lacks a canonical link or its article, does not have one heading per language, has broken structured data or a missing image, or still carries an unfilled field from the template.
The size of one entry
The commit that added the 8 November entry changed 245 files. We wrote 11 of them. One more was a single line, the service worker version. The other 233 were generated: the 13 new pages; 206 older journal files, most of them changed by a line or two because every page lists the latest entries; and the twelve home pages, the sitemap and llms.txt.
That is why we never edit a generated page. A hand edit would be overwritten by the next run, and a test fails when any generated file is out of date.
What this does not do
A script that builds thirteen pages cannot tell whether an entry is worth reading, or whether a machine draft says what we meant. It only makes sure the pages agree with their sources and with each other. The reading stays with people.
ipe(); // write once, generate the rest
One source, thirteen pages, and not a line of them typed twice. When something needs to change, we change the source and run the script again.