Skip to main content

Sure! Here's a professionally rewritten and polished version of your md2all documentation, designed to feel like official open-source documentation:


📝 md2all

A lightweight Python package to convert Markdown files into beautiful, responsive HTML or PDF documents—styled with Tailwind CSS, MathJax, and optimized for clean typography.

Ideal for note-taking, documentation, and publishing Markdown content without relying on external CDN access.

PyPI
Python Version
License


🚀 Features

  • ✅ Convert .md files into clean HTML or PDF
  • 🎨 Styled using Tailwind CSS
  • 🧮 Built-in MathJax support for LaTeX equations
  • 📝 Beautiful, readable typography with prose class
  • 📦 Works offline — no internet or CDN required
  • 🔄 Support for CLI

🛠️ System Dependencies

To generate PDFs via Playwright, some system libraries must be installed.

On Debian/Ubuntu:

sudo apt update
sudo apt install -y \
    libavif13 \
    libgstreamer-plugins-base1.0-0 \
    gstreamer1.0-plugins-base \
    gstreamer1.0-plugins-good \
    gstreamer1.0-libav \
    libgstreamer-gl1.0-0 \
    libgstreamer-plugins-bad1.0-0 \
    libgstreamer-plugins-base1.0-dev

On Fedora/CentOS/RHEL:

sudo dnf install -y \
    gstreamer1-plugins-base \
    gstreamer1-plugins-good \
    gstreamer1-plugins-bad-free \
    gstreamer1-libav \
    libavif

📦 Installation

Install md2all using pip:

pip install md2all

🖼️ Screenshots

See test_data/ for example Markdown and the output.

Screenshot


✨ Library Usage

Function: convert_markdown

Convert a Markdown file to HTML or PDF with optional offline/online resource support.

📥 Parameters

Parameter Type Description
md_path str Path to the Markdown file (relative or absolute).
output_dir str (Optional) Directory to save the output. Defaults to the input file's directory.
output_format str (Optional) "html" or "pdf" format. Default is "pdf".
use_cdn bool (Optional) If True, loads Tailwind and MathJax via CDN. Default is False.

📤 Returns

  • str: Full path to the converted file.

✅ Sync Example (Recommended for most users)

from md2all import convert_markdown

# Convert to HTML
convert_markdown("test_data/test.md", output_format="html")

# Convert to PDF
convert_markdown("test_data/test.md", output_format="pdf")

⚡ Async Example (Ideal for batch/API usage)

import asyncio
from md2all import convert_markdown

async def convert_all():
    await convert_markdown("test_data/test.md", output_format="html")
    await convert_markdown("test_data/test.md", output_format="pdf")

asyncio.run(convert_all())

🧪 Command Line Interface

After installation, the CLI command md2all is available globally.

📌 Basic Syntax

md2all -m <md_path> -f <format> [options]

🎯 Parameters

Flag Description
-m, --md_path Path to the input Markdown file. (Required)
-f, --format Output format: "html" or "pdf". (Required)
-o, --output_dir (Optional) Output directory. Defaults to the input file’s folder.
-c, --use_cdn (Optional) Use CDN for Tailwind and MathJax. Defaults to offline.

📘 CLI Examples

Convert to HTML:

md2all -m notes/readme.md -f html

Convert to PDF in a custom directory:

md2all -m notes/readme.md -f pdf -o ./exports

Use CDN for styles and MathJax:

md2all -m notes/readme.md -f pdf -c

📁 Output Structure

  • Outputs .html or .pdf file to your chosen directory.
  • Automatically includes all required styling and MathJax configuration.
  • Offline assets (CSS/JS) are stored under ~/.lib/.

🧑‍💻 Author

Deepak Raj
GitHub – codeperfectplus


🤔 Why md2all?

I built md2all to make Markdown publishing easier—especially on systems without internet access. With a built-in offline mode, it's ideal for generating clean documents on secure or offline environments.


💬 Contributions Welcome!

This is an open-source project. Found a bug or want a feature?
Feel free to open an issue or pull request.

Metadata

Release files for md2all 0.0.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for md2all 0.0.10
File Size Uploaded
md2all-0.0.10.tar.gz 572.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for md2all 0.0.10
File Interpreter ABI Platform
md2all-0.0.10-py3-none-any.whl Python 3 none any Details

Total release size: 1.7 MB

Release files / md2all-0.0.10.tar.gz

Download URL md2all-0.0.10.tar.gz
Size 572.3 kB
Tags Source
SHA-256 checksum
How to use checksums
92ace6eb9ba6c2713f6ea3219a0ff0c7a7ac593765d8a93300bb224c6f731d7c
BLAKE2b-256 checksum
How to use checksums
5ce1eebdeeddd47bdeff3c28813f0668493d40cad6957111d839e4f54b5604a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.8

Release files / md2all-0.0.10-py3-none-any.whl

Download URL md2all-0.0.10-py3-none-any.whl
Size 1.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
51664634e88de8ba6e82ae2db595b245cb2536ea0e70b0aea61c25673672802d
BLAKE2b-256 checksum
How to use checksums
87e0a88f5e9c2232c96c08cda24110be022d6cab0bf2ee1b3e6bd16b733b7631
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.8

Release history Release notifications | RSS feed

This release

0.0.10 This release

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page