{#- The Copy page's controls: the two buttons, the live region that reports what happened, the document as it will be pasted, the no-JavaScript escape hatch and the rich-HTML payload. **One pair of buttons, on one page.** Every document — the tree's, a node's, a line's — is offered here, on its Copy page, so a reader learns the pair once: the same two labels, in the same order, doing the same two things. No other page carries them (ADR-0115 decision 7). The labels say what the clipboard actually receives. **Copy Rich HTML** writes a `text/html` member (with the Markdown as its `text/plain` fallback) — never RTF, which is what "rich text" claims — and **Copy Markdown** writes the Markdown alone. Context: `copy_markdown` (the canonical document), `copy_html` (the same document rendered by the hardened renderer, which the preview shows) and `copy_html_text` (that rendering as a string, which the payload carries). `copy.js` binds to the ids below and is event-delegated on this container, so it needs no per-page wiring beyond the script tag. -#}

Preview

{{ copy_html }}
{# A no-JavaScript and permission-denied escape hatch. It is real page content rather than a hidden clipboard staging node, so a user can always select the exact Markdown by hand. #}
Markdown source
{# JSON encoding protects the script boundary (`<` becomes `\u003c`). The preview above is already safe Markup from the hardened renderer; this is the same byte string for ClipboardItem's text/html member. #}