From markdown-html-skills
Convert long-form markdown (specs, RFCs, reports, plans, explainers) into a single-file interactive HTML document. Runs the md-document pipeline (parser → renderer → injector) with the user's design-system tokens. Sticky TOC, search filter, code-copy buttons, scrollspy, WCAG-AA palette. Refuses input < 100 lines (Shihipar) or unfinished onboarding. Output is a single .html file (Google Fonts + Prism.js CDN as the only externals).
How this command is triggered — by the user, by Claude, or both
Slash command
/markdown-html-skills:cs-md-document <path to markdown file> [--out <dir>] [--features search,copycode,smoothscroll,scrollspy]The summary Claude sees in its command listing — used to decide when to auto-load this command
# /cs:md-document — Long-form markdown → HTML Convert the markdown at **$ARGUMENTS** into a single-file interactive HTML document. ## Pre-flight gates (refuse, never override) 1. **Input < 100 lines** → refuse (markdown wins below the threshold per Shihipar). `wc -l <path>` to confirm. 2. **Design-system not onboarded** → refuse, surface `/cs:design-system`. 3. **Output directory unwritable** → refuse, ask user for an alternate via `--out`. ## Pipeline ## What ships in the HTML - Sticky-sidebar TOC (default; configurable via `toc.behavior` in design-system) - Scrollspy: `aria-curren...
Convert the markdown at $ARGUMENTS into a single-file interactive HTML document.
wc -l <path> to confirm./cs:design-system.--out.# 1. Classify (if not already routed by orchestrator)
python3 markdown-html/skills/markdown-html-orchestrator/scripts/doctype_classifier.py \
--input "<path>.md" --output json \
| python3 markdown-html/skills/markdown-html-orchestrator/scripts/route_explainer.py
# 2. Resolve the output path
python3 markdown-html/skills/markdown-html-orchestrator/scripts/output_path_resolver.py \
--input "<path>.md" --doctype document
# 3. Parse → render → inject
python3 markdown-html/skills/md-document/scripts/markdown_parser.py \
--input "<path>.md" --output /tmp/sections.json
python3 markdown-html/skills/md-document/scripts/html_renderer.py \
--sections /tmp/sections.json --output <resolved-out>.html
python3 markdown-html/skills/md-document/scripts/interactivity_injector.py \
--file <resolved-out>.html \
--features search,copycode,smoothscroll,scrollspy
toc.behavior in design-system)aria-current="location" on the TOC entry for the section in view<pre> (vanilla navigator.clipboard with execCommand fallback)derived_palette@media (prefers-reduced-motion: reduce) honored@page overrides needed for documents).html file. No multi-file output, no extracted CSS/JS, no asset folders.fonts.googleapis.com + cdn.jsdelivr.net (Prism). Nothing else.doc-{slug}-2.html etc. (collision suffix).Returns: input lines, output path, design style applied, top 3 features used, one forcing question.
See markdown-html/skills/md-document/references/:
information_density_patterns.md — Shihipar + Tufte + Wattenbergertoc_and_nav_ux.md — NN/g + WCAG + ARIAsingle_file_html_discipline.md — Single-file artifact rationalenpx claudepluginhub therealtimex/claude-skills --plugin markdown-html-skills18plugins reuse this command
First indexed Jun 3, 2026
Showing the 6 earliest of 18 plugins