Record-line codes carry their titles, and lists get lines - #200
Merged
Conversation
A code alone asks the reader to already know the record. `LIT-141` says nothing about what it is, and being followed by someone who does not yet know where it goes is the whole point of a backlink — so every document code in the record line now carries the document's title. That makes the items long enough that the center dot stops working, so a field with several values gets a real bulleted list, one per line. A markdown table cell cannot hold a block-level list, so this is `<ul><li>`; checked against Quartz v4.5.2 rather than assumed, including the part that matters — markdown inside the items is still parsed and CrawlLinks still resolves it. A single value stays plain: a one-item bullet is a bullet about nothing. Titles are escaped where they are spliced, because a title is data landing in two surfaces that read syntax. This is not hypothetical: ADR-025 is titled "Wikilinks: `[[CODE]]` is a typed reference", two decisions carry `influenced_by: ADR-025`, and unescaped both their pages asked the resolver for a document called CODE. `|` is escaped for the same reason one level up. Found by the assertion that stages the whole real record and demands no unplaced wikilinks; a fixture with tidy titles passes either way. A test now names ADR-025 so the escaping cannot be quietly removed. Rows carry a list of values rather than a joined string, which is what lets one renderer choose between a plain cell and a list without parsing its own output back. Titles are read once per stage through ref_status.load_docs(), the reader that already answers what the documents are called. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YP4P3m8rzVFb8idnTE4FfT
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
SOTA-136, staged and then rendered through real Quartz:A code alone asks the reader to already know the record —
LIT-141says nothing about what it is, and being followed by someone who doesn't yet know where it goes is the whole point of a backlink. That makes the items long enough that the center dot stops working, so several values become a real bulleted list, one per line. A single value stays plain: a one-item bullet is a bullet about nothing.Bullets in a table cell need HTML, so I checked rather than guessed
A markdown table cell can't hold a block-level list, so this is
<ul><li>— which only works if the renderer passes raw HTML through, and guessing would ship a page full of visible angle brackets.Cloned Quartz v4.5.2 (what
actions/sitepins) and built a probe. Raw HTML passes through, and the part that actually mattered is that markdown inside the<li>is still parsed:Then the whole anthology through the same build — 410 files, 1217 pages emitted, bullets are a real
<ul>, links inside them come outclass="internal alias", and zero pages contain an unexpanded[[. That last check is what a fixture can't give you.The title that reads as syntax
Splicing titles in broke
luria siteon this repository:ADR-025 is titled
Wikilinks: `[[CODE]]` is a typed reference, and typing it changes the rules. Both those decisions carryinfluenced_by: ADR-025, so both record lines now contained a literal[[CODE]], and the expander went looking for a document calledCODE.A title is data being spliced into two surfaces that read syntax — a table cell where
|ends the cell, and a string about to be wikilink-expanded where[[opens a reference. Both are escaped now; markdown renders\[as[, so it costs the reader nothing.Worth noting: the backticks around it in the title are not protection — the expander doesn't mask code spans, consistent with
ref_status.scanbeing deliberately unmasked.What caught it was
test_links_out_of_the_site_go_to_the_repository, which assertsreport.unplaced == []over the whole real record. A fixture with tidy titles passes either way. There's now also a test naming ADR-025 specifically, so the escaping can't be quietly removed by someone who doesn't know why it's there.Shape
Rows changed from
(label, str)to(label, list[str])— that's what lets one renderer choose between a plain cell and a list without parsing its own output back. Titles are read once perstage()throughref_status.load_docs(), the reader that already answers "what documents are there and what are they called", rather than a second one that could disagree.Checks
python -m pytest tests -q→ 926 passed.luria link --fix,luria index,luria lint→ clean. Plus the real Quartz build above.🤖 Generated with Claude Code
https://claude.ai/code/session_01YP4P3m8rzVFb8idnTE4FfT
Generated by Claude Code