#hyperlinkA plain link to an idea, and the renderer behind every @idea:etal in your prose. For how a hyperlink reads alongside a window, see hyperlinks.
#import "@rookery/core:0.1.0": hyperlink
#hyperlink("etal")[see this]
#hyperlink(<etal>, hyperlink-target-minted: false)[see this, in context]| Argument | Type | Description |
|---|---|---|
name | str | label | The idea to link to, written bare ("etal") or in full, as a string or a label. Positional, and required in a direct call. |
body | content | The link text. Positional, and required: an explicit call has no title to fall back on, where @idea:etal does. |
hyperlink-target-minted | bool | Where the link lands: true, the default, on the idea’s own minted page, false on the anchor where it was hatched. |
The same function is @idea:etal’s renderer, installed as a show ref: rule. An idea’s label lives on a hidden anchor, so without the rule a bare reference resolves to that anchor and renders as a figure number — #show: rookery installs it for you, and refs: false declines it.
#show ref: hyperlink // the minted page
#show ref: hyperlink.with(hyperlink-target-minted: false) // the anchorIn reference mode the link names its target: the idea’s title, or the name derived from its first line where it has none, or its bare name as a last resort — the same name an index row and a search hit call it by, so the three cannot disagree. @idea:etal[custom text] overrides that.
Existence is checked at the call site, so a typo fails the build rather than shipping a dangling link. An idea excluded from the build is a different matter: the body stays and only the link goes, since a hyperlink sits inside a sentence you wrote and deleting it would break the grammar around it.