fix(web): block-reference wikilinks ([[Page^id]]) drop the fragment; no block anchors emitted #78

Open
opened 2026-07-04 11:00:09 +00:00 by anuna-02 · 0 comments
anuna-02 commented 2026-07-04 11:00:09 +00:00 (Migrated from codeberg.org)

Summary

Block-reference wikilinks ([[Page^block-id]]) resolve to the target page but the fragment is dropped, and the rendered target page contains no anchor for the block ID — so the block context is lost on click. Heading links already deep-link via #line-N anchors; block refs don't get the same treatment.

Found during UAT of v0.9.3 (zetl serve on the bundled demo-vault).

Reproduction

  1. cd demo-vault && zetl serve --port 3777
  2. Open http://localhost:3777/decisions/deployment-decision/, which contains [[Performance^perf-numbers]] (Deployment Decision.md:29).
  3. Inspect/click the rendered "Performance" link.

Actual

  • Rendered href is /architecture/performance/ — no fragment at all.
  • The target page has no anchor for the block: Performance.md:20 defines ^perf-numbers, but the only matching [id] on the rendered page is performance (the page anchor). So even a hand-written #perf-numbers fragment would not land anywhere.

For comparison, heading wikilinks render with a usable line anchor (e.g. [[Link Graph#...]]/architecture/link-graph/#line-7), so the anchor infrastructure exists.

Expected

[[Page^block-id]] should link to a block anchor (e.g. #line-N of the block, or an id="block-id" emitted on the block element), matching the heading-link behavior.

Environment

zetl 0.9.3, zetl serve, demo-vault, Chromium 140.

## Summary Block-reference wikilinks (`[[Page^block-id]]`) resolve to the target page but the fragment is dropped, and the rendered target page contains no anchor for the block ID — so the block context is lost on click. Heading links already deep-link via `#line-N` anchors; block refs don't get the same treatment. Found during UAT of v0.9.3 (`zetl serve` on the bundled demo-vault). ## Reproduction 1. `cd demo-vault && zetl serve --port 3777` 2. Open `http://localhost:3777/decisions/deployment-decision/`, which contains `[[Performance^perf-numbers]]` (Deployment Decision.md:29). 3. Inspect/click the rendered "Performance" link. ## Actual - Rendered href is `/architecture/performance/` — no fragment at all. - The target page has no anchor for the block: `Performance.md:20` defines `^perf-numbers`, but the only matching `[id]` on the rendered page is `performance` (the page anchor). So even a hand-written `#perf-numbers` fragment would not land anywhere. For comparison, heading wikilinks render with a usable line anchor (e.g. `[[Link Graph#...]]` → `/architecture/link-graph/#line-7`), so the anchor infrastructure exists. ## Expected `[[Page^block-id]]` should link to a block anchor (e.g. `#line-N` of the block, or an `id="block-id"` emitted on the block element), matching the heading-link behavior. ## Environment zetl 0.9.3, `zetl serve`, demo-vault, Chromium 140.
Sign in to join this conversation.
No labels
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
anuna-research/zetl#78
No description provided.