[idea:window-reference]reference2026-08-20

#window

A window shows an idea inside another page — its title, its permalink and its body, as one foldable block. It is pure presentation: a window registers nothing, mints no page and never re-registers the idea it transcludes, so one idea can be windowed anywhere and as often as it earns.

The ideas shown are named, or selected by tag, or both. Selection is rookery-wide, since the registry a window reads is the whole rookery’s — where the window sits makes no difference to what a tag pulls in.

ArgumentTypeDescription
namesstr | label | arrayThe idea to show, or an array of them. A name is written bare ("etal") or in full ("idea:etal"), as a string or a label, so #window("etal") and #window(<etal>) are the same call. Several are passed as one array — #window(("a", "b")) — and may be omitted entirely when tags does the selecting.
taggedstr | array | dictionaryThe tags whose ideas to show, instead of naming them or alongside it. A window shows the union of the two, and an idea that is both named and tagged appears once, where it was named.
matchstrWhether a tagged idea has to carry "any" of the tags — the default — or "all" of them.
filterfunction | noneA predicate of your own over the idea’s tag dictionary, ANDed with tagged and match rather than replacing them. It is what expresses a selection those two cannot: an exclusion, or an OR of ANDs. The same argument #ideas and #outline take. On #window, the ideas it selects also register no backlinks, for the reason given below.
sortstr | autoThe order the ideas are shown in. auto, the default, keeps the named ideas in the order they were written and appends the tag matches by name; "date" and "lexicographic" order the whole selection instead.
unfurlint | autoHow far transclusion nests. 0 renders the idea as a link to its own page and transcludes nothing, 1 renders it and collapses any window written inside it to a bare permalink, and n unfurls n - 1 levels of those. Defaults to the rookery-wide #rookery(window-unfurl: ..), itself 1. Windows are all that count: an idea written inside a transcluded body is rebuilt in full whatever the budget.
limitint | noneHow many blocks of the body to show — a block being a paragraph or a list, the unit that can be cut without leaving half a sentence. The whole body by default; in HTML and EPUB every footnote in the note is listed regardless, since the tail sits collapsed rather than dropped, and one written in the shown blocks renders twice — under a paged target, where the tail is truly dropped, only the footnotes that survive the cut are listed.
foldedboolWhether the window starts closed, leaving its summary alone on the page until a reader opens it.
foldableboolWhether there is a disclosure at all. false renders the body with nothing to click and nothing that can hide it — for a window that is the thing being read rather than a reference to it, such as a slide, where a stray click folding it shut would be a bug. It makes folded inert.
reserve-titleboolWhether a titleless window keeps the blank line its summary reserves for the title it does not have. Dead space above a slide’s body; no effect on a window whose idea has a title.
backlinkboolWhether the window counts as a link from the page it sits on to the idea it shows. True is right for a window written into an idea’s prose; false is for a derived view — a deck, an index, a preview — which renders an idea rather than pointing at it, and should not fill that idea’s backlinks with pages nobody wrote a link on. true, the default, means every idea the window shows gains a backlink from it, named or tagged alike.
displaydictionaryWhat the window shows of itself, as a dictionary of six flags — see below.

As on #idea, every display key takes a boolean and defaults to auto, the rookery-wide setting given to #rookery(display: ..).

#window(
  "etal",
  display: (
    // a titleless idea is named by the label derived from its first
    // line; false names it only where it carries an authored title
    label: true,
    // the `created` date sits at the right-hand end of the summary
    date: true,
    // the tags are worn in the summary as pills, metadata tags excepted
    tags: true,
    // the window is drawn as a card, with its left rule and indent
    frame: true,
    // the name is shown in the summary as a permalink
    name: true,
    // the window takes a tint under the cursor
    background: true,
  ),
)

Each key is also an argument in its own right, with the prefix restored — display-frame: false — and an argument on the same call wins over the dictionary’s value for that key. #idea’s three remaining keys, title, context and backlinks, describe an idea’s own minted page rather than a window onto it, and a window reads none of them.

A tag selection backlinks exactly as a named one does: every idea a tagged window matches takes a backlink, both from the page the window sits on and from the idea whose prose it is written in. The one selection that registers nothing is filter—a predicate cannot ride in the metadata the backlink walk reads, and it is ANDed with tagged rather than replacing it.