Repository navigation
Dev - #2
Draft
breezykermo wants to merge 69 commits into
Draft
Dev#2breezykermo wants to merge 69 commits into
breezykermo wants to merge 69 commits into
Conversation
breezykermo
force-pushed
the
dev
branch
18 times, most recently
from
September 22, 2026 05:57
7571baa to
f3a638e
Compare
0.1.0 is released, so its directory is immutable and stays in the tree; 0.1.1 is where core is authored from here. Every version this repo writes out by hand follows the cut, including the paths `.github/workflows/check.yml` tests and the `lib.typ` reference in CLAUDE.md, which `check-versions` cannot see.
A window's ground and a window's hover were both `--idea-fold-color`, so a hovered body promised a click it does not have and a folded window never reached the fill every other rookery control answers a pointer with. - `--idea-link-color` now paints only where a click really is: a folded window's whole box, and an open window's header. The header's background reaches the frame, as the folded wash already did. - `--idea-fold-color` becomes the resting ground of an open window, kept under the pointer over its body, so reading a note no longer flickers. - A non-foldable window takes neither, having no control at all.
… no longer collide on idea:meeting-with
…the same rename core already made on #idea and #window
… to rookery-search-name-color, across the CSS consumers that read core's theme property
…gainst the page it was read from
…'s two states Every package on this line now reports one version, so nothing has to be remembered about which coordinate a given package answers to. The eight that have never been released are RENAMED rather than copied — there is no immutable release directory to preserve, and a dead 0.1.0 beside each of them would be the discrepancy this is meant to remove. core keeps both, 0.1.0 being released. Every cross-package pin follows, so a project importing several of these gets one copy of core rather than two, and `check.yml` tests the directories that now exist. search separates the row under the pointer from the row the arrow keys are on: the first keeps the fill that means a click is here, and the second takes a new `--rookery-search-selected` — half the pointer's fill where a site names no value — so a result stops claiming the pointer once the mouse has left it.
A hat is a nowrap flex row whose items each floor at their own content width, so a long tag or a long id ran off the right edge of a narrow column and took the document's scroll width with it. The permalink now holds its closing bracket in a span of its own, so a clipped id reads `[idea:26w29-typst-...]` rather than hanging open where text-overflow ate the `]`. Both halves stay real text, so the permalink still copies whole.
…phies Adds core/0.1.1/demo/notes, a small rheo project with footnotes: "horizontal" and a chicago-notes bibliography, which rheo compile . fails on with "failed to determine link anchor" / "failed to resolve cross-link". Adds docs/spikes/note-style-bibliography.md recording where the failure sits: plain Typst 0.15.1's own HTML export hard-errors the same way with no rheo present at all (a correction to the original recon, which reported only a warning), and the same failure class rheo's own docs already name for std.outline() in multi-page HTML output — an upstream Location-anchor convergence ceiling. A scratch restructuring of core (outside this repository) confirms that collapsing core's several per-idea/per-window state-gated bibliography() calls down to one page-level, state-independent call removes the convergence error, at the cost of breaking core's own full-form citation lookups, which need a bibliography() call placed nearer each citation than a single trailing one provides. The doc recommends fixing this in two independent pieces in @rookery/core (one state-independent bibliography call per page, and an explicit note-style switch instead of style: name-sniffing) and lists four implementation birds this spike does not file.
A note-class bibliography style (chicago-notes and its siblings) mints a native Typst footnote for every normal-form citation, whose HTML-export link anchor never converges. citations: "notes" (new, and what citations: auto now picks under a built-in note style) promotes each such citation into one of this package's own footnotes instead, so it follows footnotes: like any hand-written #footnote and never reaches Typst's own footnote machinery. A citation inside an author's own #footnote, or elsewhere the promotion walk cannot reach, renders full-form with no margin span via a safety net in _margin-cite rather than surviving as a bare normal-form citation. demo/notes is now a passing fixture (was a known-failing one) exercising a bare citation, a supplement, a citation inside a hand-written footnote, and an ordinary note-to-note link, wired into CI. The spike record is corrected to match: the shipped fix never needed to collapse core's per-idea bibliography plumbing to one page-level call, and the note-style-name detection it once recommended against turned out safe for Typst's own built-ins specifically.
…h supplied as input
…display asks for them
Chromium snaps a border's rendered width down to a whole device pixel at a fractional DPR, but the hat's margin-left calc subtracted the unsnapped CSS value, so the id tab sat up to 0.4px left of the box's own edge at DPR 1.25 and 1.75. Drawing the left rule as a background strip instead of a border removes the rounding mismatch: both the box's own edge and the hat share the same unsnapped arithmetic at every DPR. Adds a geometry check (demo/rheo/geom.sh, just geom) that measures the hat against its host across DPR 1, 1.25, 1.5, 1.75 and 2 in headless Chromium.
The open summary now carries the same 0.25em padding-bottom the closed summary always had, so opening or closing a window no longer shrinks or grows its header row by 4px. geom.sh gains a second measurement, over index/relations/tags at DPR 1 and 1.25, comparing each window's closed interior height against its open header height.
A Typst label placed inside an #idea body, and referenced anywhere, failed the whole compile with a 'label occurs multiple times' error, because the body is placed once at its own site and again wherever it is transcluded (a minted page, a #window). @rookery/core:0.1.1 adds labelled(name, it), a public helper that attaches a real label to it only at the body's own canonical site; every copy renders it unlabelled, so a reference to name resolves to the one canonical element wherever it is written. Internally, _flatten now rewrites a copy's body with a plain content-tree walk that drops labelled's own marker figure, rather than deciding this at layout time through a context-held counter — the demo under demo/rheo measures that the counter approach does not reliably converge within Typst's own five-attempt introspection budget once a referenced label is involved, so the fix follows the same construction-time rewrite bib.typ already uses for footnote and citation promotion.
Hovering anywhere on the row tints it, clicking anywhere follows the title link, and display-background: false turns the tint off. The row now carries the note's tag classes and data, matching a full window's root, gated by a new data-rookery-window-link marker so the Context/Backlinks page rows on minted pages are untouched.
Gives #window two new named arguments so a list of windows can carry its own filter controls: display-filter wraps the emitted figures in a container with a text box and one toggle pill per display-filter-tags, hidden until a script marks it ready. HTML/EPUB only; a paged target renders unaffected.
search.js imports ./window-filter.js, but the source js_scripts list did not name it, so rheo never copied it. A project resolving the package from a repository ref (where dist/lib.js is gitignored and absent) got a 404 on that import, which failed search.js as a whole and took the search modal down with it.
…of splitting a second gutter
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.
No description provided.