diff options
| author | EuAndreh <eu@euandre.org> | 2026-09-10 12:00:04 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2026-09-10 12:00:13 -0300 |
| commit | 9ec6794d8f04b7970e1401cae1d0d20321de3204 (patch) | |
| tree | eee45364e8ba422cfcebd452eaa50cb82fa918ea /doc/euandre.org.en.7why.adoc | |
| parent | Name the i18n stamp a sentinel (diff) | |
| download | euandre.org-9ec6794d8f04b7970e1401cae1d0d20321de3204.tar.gz euandre.org-9ec6794d8f04b7970e1401cae1d0d20321de3204.tar.xz | |
Carry the pages every repository carries
The eight English section pages were missing, and with them the root
CHANGELOG.adoc and TODOs.adoc: what changed between two releases and
what is known to be left are not things a reader can work out from
the tree.
7README, 7CHANGELOG and 7TODOs are symlinks to the root documents, as
they are everywhere else. 0 links the rest, 7tutorial writes one page
start to finish, 7recipes has the tasks that come after that, and
7why says why the site is built this way.
3 is a reference page for a library, and a website has none; it says
so, and exists because a reader who knows where to look in one
repository should know where to look in all of them.
README.adoc gains the manpage title and NAME section the 7README
symlink needs to render, its prose unchanged.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KxLpaNQThKfMG3ecCJptP9
Diffstat (limited to '')
| -rw-r--r-- | doc/euandre.org.en.7why.adoc | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/doc/euandre.org.en.7why.adoc b/doc/euandre.org.en.7why.adoc new file mode 100644 index 0000000..2ba9b7c --- /dev/null +++ b/doc/euandre.org.en.7why.adoc @@ -0,0 +1,94 @@ += euandre.org(7why) + + + +== NAME + +euandre.org - a personal website in six languages, built from asciidoc + + + +== DESCRIPTION + +Why the site is built this way rather than another. + + + +== Static in the strict sense + +Every page, feed and sitemap is a file on disk, and serving the site +needs nothing but a web server. Not "static" in the sense of a +generator that ships a runtime and calls the output static: there is +no database to migrate, no process to keep up, and no version of +anything to keep patched. A directory of files outlives the tooling +that made it, which for a personal site measured in decades is the +property worth having. + + + +== The rules are not here + +`mkdeps.sh` ends with `mkwb rules`, which writes the canonical rules +into `deps.mk`. Only what is this site's stays here --- its name, its +languages, its port. + +A copy of the rules per site drifts, and did. Two sites built the +same way should differ in what they are, not in how they are made, and +the way to hold that is for the shared half to have one home. See +*mkwb*(1). + + + +== One target per artifact + +The build is a rule per file rather than one program that walks the +tree. It costs processes --- the greater part of a build is spent +starting them --- and buys the thing that matters more: an incremental +build that rebuilds what changed and nothing else, and a `-j` that +needs no coordination. A page that is wrong can be deleted and made +again by itself. + + + +== Translations as catalogues, not copies + +The English source is the master and `po/` holds one catalogue per +language, from which *po4a*(1) writes the rest. A second copy of a +page drifts from the first the moment either is edited, and nothing +notices; a catalogue with a stale entry says so. + +The translated masters are therefore build products and are not kept +in the repository. + + + +== Prune by name, then extract + +Deploying asks the server what it has, subtracts what the build wrote, +and removes only the difference. Wholesale replacement would be +simpler, but there is a moment in the middle of it when the site is +missing, and `/srv` is root's, so the directory cannot be swapped +underneath anyway. Naming what goes means it can be read before it +goes. + + + +== SEE ALSO + +*euandre.org*(0), *euandre.org*(7README), *mkwb*(1), *po4a*(1) + + + +== AUTHORS + +mailto:eu@euandre.org[EuAndreh] and contributors. + + + +== BUGS + +* Report bugs to the mailto:~euandreh/public-inbox@lists.sr.ht[mailing list]. + Use the subject "[euandre.org] BUG or TASK: <description>". +* Browse bugs https://euandre.org/git/euandre.org/TODOs.html[online]. +* https://euandre.org/git/euandre.org/[Homepage]. +* https://lists.sr.ht/~euandreh/public-inbox?search=%5Beuandre%2Eorg%5D[Comments and discussions]. |
