mdparser-html is a lightweight and extensible Markdown → HTML converter with a clean Python API and CLI.
Project description
mdparser-html
A lightweight, extensible Markdown → HTML converter with a clean Python API and CLI.
Built for simplicity, hackability, and future extension.
Documentation
-> https://mdparser.tarunnayaka.me
🤔 Why mdparser-html?
- Lightweight alternative to full Markdown engines
- Easy to extend and hack
- Designed for learning, tooling, and static generators
✨ Features
- Markdown → HTML conversion
- Full HTML document or body-only output
- Syntax highlighting via CDN (Prism / Highlight.js)
- Headings, lists, code blocks, images
- Fenced blocks (
:::) - CLI + Python API
- Zero runtime dependencies
- Tailwind support
📦 Installation
pip install mdparser-html
🚀 Usage CLI
md2html input.md -o output.html
</> Python API
Basic usage
from mdparser import parse_markdown
html = parse_markdown("# Hello World")
print(html)
🎨 Styling Support
mdparser-html supports attaching custom CSS or Tailwind utility classes
directly from Markdown using fenced blocks and headings.
Tailwind is included automatically when include_cdn=True is set.
Example:
::: bg-blue-100 p-4 rounded-lg
# Welcome
This section is styled using Tailwind classes.
:::
rendered as
<div class="bg-blue-100 p-4 rounded-lg">
<h1>Welcome</h1>
<p>This section is styled using Tailwind classes.</p>
</div>
Styled headings
## [text-green-500 font-bold] Success Heading
Renders as:
<h2 class="text-green-500 font-bold">Success Heading</h2>
⚙️ Configuration Options # Advanced usage ```python html = parse_markdown(
markdown_text, full_html=True, title="My Document", include_cdn=True # Include syntax highlighting CDN links ) print(html)
Body-only output
body = parse_markdown(markdown_text, full_html=False)
print(body)
Fenced blocks
:::
# Welcome
This is a hero section
:::
rendered as
<div class="hero">
<h1>Welcome</h1>
<p>This is a hero section</p>
</div>
🗂️ Supported Markdown
- Headings (
#→########) - Bold / Italic
- Inline code
- Fenced code blocks
- Ordered & unordered lists
- Images
- Fenced div blocks
- Links
- Blockquotes
- Horizontal rules
- Paragraphs
- Tables (basic)
🛠 Design Notes
- Single public API:
parse_markdown - Internal helpers are intentionally hidden
- Designed for future renderers (HTML today, more later)
🧾 CHANGELOG.md
Create a new file called CHANGELOG.md
🗺 Roadmap
- AST-based parser
- Performance optimizations
- Additional output formats (e.g. Pug)
- Plugin hooks
🤝 Contributing
Pull requests are welcome. Please open an issue before major changes.
License
MIT License © 2025 Tarun Nayaka R (Rtarun3606k)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mdparser_html-2.0.2.tar.gz.
File metadata
- Download URL: mdparser_html-2.0.2.tar.gz
- Upload date:
- Size: 13.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b87cfaf16b7daca544673509e1154fd3b7001fd15f81215dd7350e43af5c4107
|
|
| MD5 |
64d16ad281926926eec2236c7df5ea48
|
|
| BLAKE2b-256 |
6474157347ed347753f3ac3f5e00c0107b8331478f7c33b24ddcaff441f35421
|
File details
Details for the file mdparser_html-2.0.2-py3-none-any.whl.
File metadata
- Download URL: mdparser_html-2.0.2-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1717320817da09d6a6de1179aec2f230efa35a030868645f6ba7d82d6fcfc567
|
|
| MD5 |
1b8ae8aacd4deebdf9dcad0a45487a33
|
|
| BLAKE2b-256 |
14c03e648526c0b9f635721142d969e08e1581e1d25817ff705e5431c5a0ffa6
|