Goal
Add useful preview code-block interaction independently of whether Lite Prism or Full highlight.js performs highlighting.
Requirements
- Show a language label plus Copy, wrap/no-wrap, and optional line-number controls.
- Keep controls unobtrusive but keyboard reachable; announce copy success without shifting layout.
- Copy exact Markdown code-fence content rather than highlighted HTML.
- Use a narrow platform clipboard path without broad WebKit permissions or a UI dependency.
- Preserve horizontal scrolling, selection, accessibility, themes, live-preview performance, and large-block performance.
- Hide interactive controls in print output while retaining readable code formatting.
- Unknown or failed highlighting must still receive functional controls.
Goal
Add useful preview code-block interaction independently of whether Lite Prism or Full highlight.js performs highlighting.
Requirements