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

:::

# 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.1.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.1-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mdparser_html-2.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 fa6e15323473238b51b41dbbac91e0ec65278cec70461118e293e287ee405226
MD5 9a2eb7a12617113c65a0fc5f62b17f9d
BLAKE2b-256 959eefe4fd7b83a0d09edaf5f61489bf082c22ef04608b9f8a101b9ba2fed4dc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mdparser_html-2.0.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e6965957993e90e1b510eba5be2c9359341e8764f37d558ff59edc0164f440bb
MD5 7c447dd8c194bfd596125c8ceae70155
BLAKE2b-256 adfa3d5fa859d3434e82de3702533fa87eeac7466b98aac4284dad951671e6bb

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