--- name: markdown-to-standalone-html description: Convert Markdown documents (*.md files) to self-contained HTML files with embedded images. Use when you need a portable, offline-friendly single HTML file from Markdown—ideal for blog posts, essays, reports, or any content that should work without external dependencies. --- # Markdown → Standalone HTML (Embedded Images) ## Overview Convert any Markdown file into a **single self-contained HTML document** with all images embedded as base64 data URIs. No external hosting required—the output is a single `.html` file that works offline. ## Requirements - `pandoc` — Markdown → HTML conversion - `ruby` — Script execution Both must be on your `PATH`. The script checks and exits with a clear error if missing. ## Workflow 1. **Prepare your Markdown** — Any `.md` file with images (local paths or public URLs) 2. **Run the conversion script** with the Markdown file, title, and output path 3. **Resolve images** — If images can't be found locally, you'll be prompted for a file path or URL 4. **Get your HTML** — A single `.html` file with all images embedded, ready to share ## Image Resolution For each image in your Markdown: 1. **Relative path** — Resolved relative to the Markdown file's directory 2. **Absolute path** — Used as-is if it exists 3. **Public URL** (`http://` or `https://`) — Downloaded to temp directory, embedded, then cleaned up 4. **Unresolved** — You're prompted to provide a local file path or URL All images in the final HTML are base64-encoded and embedded directly—no external dependencies. ## Limitations - Only rewrites `` tags (not CSS `background-image` URLs) - Does not guess missing images; prompts interactively instead - Untrusted SVG can contain scripts—review embedded SVG carefully ## Script Reference **Script:** `scripts/markdown_to_standalone_html.rb` **Usage:** ```bash ruby .github/skills/markdown-to-standalone-html/scripts/markdown_to_standalone_html.rb \ /path/to/post.md \ --title "Your Post Title" \ --template .github/skills/markdown-to-standalone-html/assets/template.html \ --out /path/to/output.html ``` **Arguments:** - `markdown` — Path to your Markdown file (required) - `--title` — Title for the HTML document (required; displayed in browser tab and header) - `--template` — Path to the HTML template (required; use the provided `assets/template.html`) - `--out` — Path where the final HTML will be written (required)