Bodh - Beautiful Markdown to PDF Presentations
Transform your knowledge into stunning presentations
Bodh - Beautiful Presentations
Bodh (बोध) means “knowledge” or “understanding” in Hindi - the perfect name for a tool that helps you share your insights through beautiful presentations.
Transform your markdown into stunning professional presentations with just a few clicks.
Live Examples
See all features in action - From basic capabilities to comprehensive tutorials:
Features Showcase - Quick intro to all capabilities
Gradient Descent Tutorial - Complete ML tutorial in 6 different themes
Features
- 8 Beautiful Themes - Modern, minimal, gradient, dark, and more
- Configuration Presets - Quick setup with predefined styles (Simple, Tech Talk, Academic, etc.)
- Live Preview - See your slides as you type
- Slide Navigation - Next/previous buttons and keyboard controls
- PDF Preview - View your PDF before downloading
- Custom Fonts - Choose from popular Google Fonts
- File Upload - Drag and drop existing markdown files
- Responsive Design - Works on all devices
- Professional Output - High-quality PDF generation
Quick Start
1. Install Dependencies
pip install -r requirements.txt
2. Run the Web UI
# Default port (5000)
python app.py
# Custom port
python app.py -p 8080
# With debug mode
python app.py -p 3000 -d
3. Open in Browser
http://localhost:5000
Command Line Usage
Basic Usage
# Basic usage
python bodh.py presentation.md
# With custom theme and font
python bodh.py slides.md -t modern -f "Inter" -s 22
# With logo
python bodh.py slides.md -t gradient -l logo.png -p top-right
Configuration Files
# Create sample configuration
python bodh.py --create-config
# Use specific configuration
python bodh.py slides.md -c configs/minimal.yml
# Override config with CLI arguments
python bodh.py slides.md -c config.yml -t dark -f "Roboto"
# Auto-detect default config (bodh.yml)
python bodh.py slides.md -v
Available Options
# See all options
python bodh.py --help
# List available themes
python bodh.py --list-themes
Available Themes
Theme | Description |
---|---|
modern | Slides.com inspired clean design |
minimal | Ultra-clean with generous spacing |
gradient | Reveal.js inspired gradient backgrounds |
dark | Professional dark theme |
default | Clean white with subtle blue accents |
sky | Light blue modern theme |
solarized | Warm, eye-friendly colors |
moon | Dark blue space-inspired |
Markdown Format
Separate slides with ---
:
# Welcome Slide
## Your presentation title
Content for first slide
---
## Second Slide
- Bullet point 1
- Bullet point 2
- Bullet point 3
---
# Thank You!
Questions?
Features in Detail
Configuration System
- YAML Configuration: Full support for configuration files
- Auto-detection: Automatically finds
bodh.yml
in current directory - CLI Overrides: Command line arguments override config values
- Example Configs: Minimal, presentation, and academic styles included
Supported Markdown
- Headers (H1-H6)
- Lists (ordered and unordered)
- Bold and italic text
Code snippets
and code blocks- Tables
- Blockquotes
- Images
PDF Generation
- High-quality PDF output using Chrome’s PDF engine (Playwright)
- Identical quality to HTML preview - full CSS support, gradients, shadows, animations
- Landscape A4 format
- Print-ready quality
- Consistent typography
- Fallback support for WeasyPrint and xhtml2pdf if Playwright unavailable
Requirements
- Python 3.7+
- Flask 3.0+
- Markdown
- Jinja2
- Playwright (preferred) or WeasyPrint or xhtml2pdf
🌟 Pro Tips
- Keep slides simple - One main point per slide
- Use consistent formatting - Stick to your chosen theme
- Test different themes - Preview before generating PDF
- Optimize images - Use web-optimized formats
- Preview first - Always check HTML preview before PDF
🤝 Contributing
Feel free to submit issues, feature requests, or pull requests!
📄 License
MIT License - See LICENSE file for details
Happy Presenting with Bodh! 🎉