Reminder: stop writing aliases from the engine (rename, move, slug change, lang-add flip) #194

Closed
opened 2026-10-10 20:39:51 +02:00 by dominik.polakovics · 1 comment

Reminder, not a spec

Dominik's decision while reviewing #193 (2026-10-10): in the future the engine should stop writing aliases into front matter altogether. This issue only records that intent; it needs a proper design before anyone implements it.

What writes aliases today

  • pageops rename and move: the page's old URL (and every descendant's) is appended to aliases.
  • pageops create, rename, move: the shadowing guard strips an assigned URL from every other page's aliases.
  • PR #193 adds: translation slug change, deletion of a slugged section translation, Translate's strips, and the one-time harness lang add flip that aliases every old unprefixed URL.

Why it is "far more complicated"

  • Old published URLs stop redirecting (SEO, external links) unless something else provides redirects.
  • The alias rules are where the engine's URL model and Hugo's published addresses must agree byte for byte (see the concerns on #193: double hyphens, accents, section slugs). Dropping aliases removes that coupling.
  • Page-scoped undo does not restore the files the shadowing guard strips (#193 concern 1); without aliases that whole class disappears.
  • Open questions: keep hand-written aliases untouched? still strip them when they shadow a real page? what replaces the lang-add flip's redirects?
  • PR #193, concerns 1, 3 and 4 of the second lander verdict.
## Reminder, not a spec Dominik's decision while reviewing #193 (2026-10-10): in the future the engine should stop writing `aliases` into front matter altogether. This issue only records that intent; it needs a proper design before anyone implements it. ## What writes aliases today - `pageops` rename and move: the page's old URL (and every descendant's) is appended to `aliases`. - `pageops` create, rename, move: the shadowing guard strips an assigned URL from every other page's `aliases`. - PR #193 adds: translation slug change, deletion of a slugged section translation, Translate's strips, and the one-time `harness lang add` flip that aliases every old unprefixed URL. ## Why it is "far more complicated" - Old published URLs stop redirecting (SEO, external links) unless something else provides redirects. - The alias rules are where the engine's URL model and Hugo's published addresses must agree byte for byte (see the concerns on #193: double hyphens, accents, section slugs). Dropping aliases removes that coupling. - Page-scoped undo does not restore the files the shadowing guard strips (#193 concern 1); without aliases that whole class disappears. - Open questions: keep hand-written aliases untouched? still strip them when they shadow a real page? what replaces the lang-add flip's redirects? ## Related - PR #193, concerns 1, 3 and 4 of the second lander verdict.
Author
Owner

Done in PR #193 (commit e4d8138) after all: the engine writes no aliases any more — rename, move, translation slug change, slugged section translation deletion, Translate and the lang-add flip record nothing, and a hand-written aliases key is never edited. A redirect scheme, if ever wanted, is a new design topic; this reminder is closed as implemented.

Done in PR #193 (commit e4d8138) after all: the engine writes no aliases any more — rename, move, translation slug change, slugged section translation deletion, Translate and the lang-add flip record nothing, and a hand-written `aliases` key is never edited. A redirect scheme, if ever wanted, is a new design topic; this reminder is closed as implemented.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Cloonar/deckle#194
No description provided.