Skip to main content

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

API Documentation

🤔 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:

:::

# 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mdparser_html-2.0.0.tar.gz (11.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mdparser_html-2.0.0-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

Details for the file mdparser_html-2.0.0.tar.gz.

File metadata

  • Download URL: mdparser_html-2.0.0.tar.gz
  • Upload date:
  • Size: 11.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for mdparser_html-2.0.0.tar.gz
Algorithm Hash digest
SHA256 0f674f028e6dd46fed9094d24b336617154f24cae65e07faeb036e3036de211f
MD5 6cdc32f7e16a338764262732634d6b6b
BLAKE2b-256 e216c8f0e6a77779ee0213e8c5fea38c632f23257ede5d664fef4b590ee1c452

See more details on using hashes here.

File details

Details for the file mdparser_html-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: mdparser_html-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.2

File hashes

Hashes for mdparser_html-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bf5c4e58880afe61d8eed06f3200faecf3c12dbdd6265a2a1a4cb507080b819a
MD5 60a1ac776ac79bb4cd5d532581ae20da
BLAKE2b-256 6d82337a4af0e17bd56aa40d6646a280204dd5f7fce22041feab6fdf27648526

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page