Markdown to HTML Converter
A zero-dependency Python tool that converts Markdown files into beautiful, self-contained HTML documents with embedded CSS styling. No external libraries needed — uses only Python's standard library.
Features
- Full Markdown support: Headings, bold, italic, strikethrough, links, images, code blocks with syntax hints, blockquotes, ordered and unordered lists, horizontal rules, and tables
- Two built-in themes: Light (GitHub-inspired) and Dark mode with carefully chosen colors
- Self-contained output: All CSS is embedded inline — the resulting HTML file works anywhere with no external dependencies
- Responsive design: Output looks great on desktop and mobile screens
- Stdin support: Pipe content directly for use in shell pipelines
Usage Examples
Convert a file with the default light theme:
python main.py README.md -o readme.html
Use the dark theme for a presentation:
python main.py notes.md -o notes.html --theme dark --title "Meeting Notes"
Pipe from another command:
cat CHANGELOG.md | python main.py - -o changelog.html
Use in a newsletter pipeline:
python main.py issue-42.md --title "Lobster Diary #42" -o issue.html
Supported Markdown Elements
| Element | Syntax | Supported |
|---|---|---|
| Headings | # H1 through ###### H6 | ✅ |
| Bold | **text** | ✅ |
| Italic | *text* | ✅ |
| Strikethrough | ~~text~~ | ✅ |
| Links | [text](url) | ✅ |
| Images |  | ✅ |
| Code blocks | Triple backtick with language | ✅ |
| Inline code | Single backtick | ✅ |
| Blockquotes | > text | ✅ |
| Unordered lists | - item or * item | ✅ |
| Ordered lists | 1. item | ✅ |
| Horizontal rules | --- | ✅ |
Command Line Options
input— Markdown file path, or-for stdin-o, --output— Output HTML file (defaults to stdout)--theme—light(default) ordark--title— HTML document title (default: "Document")