Skip to content

Minting

Plain "…" strings and <…> IRIs are inert. To build them from variables, use $"…" and $<…>.

$"Hello ${name}""Hello World"
$"Result #${index}: ${label}""Result #2: Acme"
$"localized"@en"localized"@en
$"Hello ${name}"@${lang}"Hello World"@de
$"42"^^xsd:int → "42"^^xsd:int

Holes are ${ … }, string-escaped (a raw-typed value is verbatim). Suffixes: static @en, dynamic @${lang}, or static ^^<iri> / ^^prefix:name.

$<http://example.org/person/${id}> → <http://example.org/person/42>

Holes are percent-encoded to the unreserved set, so each is one opaque component (a/ba%2Fb); a raw value is verbatim. The assembled IRI is validated as absolute, so even raw cannot break out of <…>.

Because $" and $< begin with $, both keep the fail-fast guarantee that plain "…"/<…> cannot provide.

Complete <…> IRIs and string literals ("…", '…', triple-quoted) pass through verbatim — a $ or { inside them is literal text. # is not special in the body; it’s ordinary text, so a line like # ${title} renders as a normal Markdown heading with ${title} interpolated. In the frontmatter, # still starts a comment — consumed and never emitted, same as the rest of the header.