convertor is a simple and easy to use library for converting markdown files to various formats.
Project description
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.
🚀 Features
- ✅ Convert
.mdfiles 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.
✨ 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
.htmlor.pdffile 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
md2allto 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.
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 md2all-0.0.10.tar.gz.
File metadata
- Download URL: md2all-0.0.10.tar.gz
- Upload date:
- Size: 572.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92ace6eb9ba6c2713f6ea3219a0ff0c7a7ac593765d8a93300bb224c6f731d7c
|
|
| MD5 |
09d084b4208944c881f8b19193b28149
|
|
| BLAKE2b-256 |
5ce1eebdeeddd47bdeff3c28813f0668493d40cad6957111d839e4f54b5604a1
|
File details
Details for the file md2all-0.0.10-py3-none-any.whl.
File metadata
- Download URL: md2all-0.0.10-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51664634e88de8ba6e82ae2db595b245cb2536ea0e70b0aea61c25673672802d
|
|
| MD5 |
433a19bf503997de178bda7fff7d3021
|
|
| BLAKE2b-256 |
87e0a88f5e9c2232c96c08cda24110be022d6cab0bf2ee1b3e6bd16b733b7631
|