Transform Markdown into Beautiful HTML Presentations
Project description
✨ Features
🎯 Core Capabilities
|
🧭 Navigation System
|
🚀 Quick Start
Installation
Option 1: Install from PyPI (Recommended)
pip install slidown-md
Option 2: Install from Source
git clone https://github.com/dwHou/slidown.git
cd Slidown
pip install markdown pygments
Basic Usage
# Convert Markdown document (auto-generates timestamped output folder)
slidown your_notes.md
# Use specific theme
slidown your_notes.md --theme clean
# Add custom footer
slidown your_notes.md --theme corporate --footer "© 2026 Your Company"
Output Structure
your_notes_20260213143025/
├── your_notes-slidown.html # Self-contained presentation
├── assets/
│ └── images/ # Image resources (default mode)
└── README.txt # Usage instructions
Open your_notes-slidown.html in your browser to view the presentation.
🎨 Themes
Tech / CyberpunkDefault Theme Dark background with neon colors (cyan, blue, green) and grid effects. Best for:
slidown doc.md --theme tech
|
Clean / FreshBright white background with soft, minimal design. Best for:
slidown doc.md --theme clean
|
CorporateProfessional business style with deep blue/gray colors. Best for:
slidown doc.md --theme corporate
|
📖 Documentation
Command Line Arguments
slidown INPUT [OPTIONS]
Required:
INPUT Input Markdown file path
Output Options:
-o, --output DIR Output base directory (default: same as input)
-t, --theme THEME Theme: tech/cyberpunk, clean/fresh, corporate
-f, --footer TEXT Custom footer text
Pagination Control:
--split-level N Heading level for pagination (1-6, default: 2)
--viewport-height PX Viewport height in pixels (default: 900)
--content-threshold N Content threshold 0-1 (default: 0.8)
--max-content-length N Max characters per page (default: 800)
--max-elements N Max elements per page (default: 15)
--show-page-numbers Show page numbers (e.g., "Title (1/3)")
Navigation Control:
--chapter-level N Heading level for progress bar (1-6, default: 2)
--no-chapter-nav Disable chapter progress bar
Image Processing:
--preserve-image-paths Preserve original image paths (don't copy)
--no-copy-images Same as above
Usage Examples
📝 Basic Conversion
slidown lecture.md
# Output: lecture_20260213143025/lecture-slidown.html
🎨 Specify Theme and Output Directory
slidown notes.md -o ~/Desktop/presentation --theme clean
🏢 Enterprise Presentation with Custom Footer
slidown pitch.md --theme corporate --footer "Confidential - © 2026 Company Inc."
⚙️ Adjust Pagination and Navigation
# Use H1 headings for pagination, show more chapters (H1-H3)
slidown doc.md --split-level 1 --chapter-level 3
# Adjust page height and content threshold
slidown doc.md --viewport-height 1080 --content-threshold 0.75
🖼️ Preserve Image Paths (No Copy)
slidown article.md --preserve-image-paths
# HTML can be placed directly in same directory as Markdown
📊 Smart Pagination with Custom Content Length
slidown long_tutorial.md --max-content-length 600 --max-elements 12
⚡ Advanced Features
LaTeX Math Support
Slidown fully supports LaTeX math formulas, rendered with KaTeX:
Inline formulas:
The mass-energy equation $E=mc^2$ is fundamental to physics.
Block formulas:
$$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$$
Smart Pagination
- Auto-detect content length based on viewport height and content threshold
- Guaranteed no scrolling - each page content within configured max height
- Preserve integrity - never breaks code blocks, formulas, or tables
- Configurable via
--viewport-heightand--content-threshold
How it works:
- Initial pagination based on heading level (
--split-level) - Detect content length of each page
- If exceeds threshold, intelligently split into sub-pages
- Protect code blocks, tables, formulas from being broken
Image Processing
Default mode (copy):
slidown doc.md
# Images copied to doc_20260213143025/assets/images/
# Self-contained presentation, perfect for sharing and archiving
Path preservation mode:
slidown doc.md --preserve-image-paths
# Preserve original paths from Markdown
# Ideal when HTML and Markdown are in same directory
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| → or Space or PageDown | Next page |
| ← or PageUp | Previous page |
| Home | Jump to first page |
| End | Jump to last page |
| F11 | Fullscreen mode |
🛠️ Technical Implementation
|
Parser
Code Highlighting
Math Formulas
|
Styling
Navigation
|
📋 Supported Markdown Syntax
- Headings (H1-H6)
- Lists (ordered and unordered)
- Code blocks (with syntax highlighting)
- Inline code
- Text formatting (bold, italic, strikethrough)
- Links
- Images (local and network)
- Tables
- Blockquotes
- Horizontal rules
- Line breaks
- LaTeX math formulas (inline and block)
💼 Use Cases
Professional
|
Technical
|
Educational
|
Personal
|
🎯 Why Slidown?
vs. Traditional PowerPoint
- ✅ No software installation required
- ✅ Smaller file size (plain text HTML)
- ✅ Easy version control (Git-friendly)
- ✅ Code syntax highlighting built-in
- ✅ LaTeX math formula support
- ✅ Responsive design for all devices
- ✅ Fast sharing (open directly in browser)
vs. Online Tools (Google Slides, Notion)
- ✅ Fully offline capable
- ✅ No login required
- ✅ Privacy and security (local storage)
- ✅ Fast loading
- ✅ Flexible custom themes
❓ FAQ
Can the generated HTML files be used offline?
Yes. All CSS and JavaScript are inlined in the HTML. Math formulas require internet (KaTeX CDN), but you can download KaTeX locally.
Does it support math formulas?
Full support! Use $...$ (inline) and $$...$$ (block) syntax, KaTeX renders automatically.
How to customize themes?
Currently supports 3 built-in themes (tech, clean, corporate), selectable via --theme parameter. Future versions will support custom theme configuration.
How are image paths handled?
Default mode auto-copies images to assets/images/ directory. To preserve original paths, use --preserve-image-paths parameter.
Can I export to PDF?
Yes. Open HTML file in browser, use "Print" function, select "Save as PDF".
Which browsers are supported?
All modern browsers (Chrome, Firefox, Safari, Edge). IE is not supported.
How to share presentations?
Three methods:
- Directly send HTML file (if using default image copy mode)
- Compress entire output folder (including assets)
- Upload to static website hosting service (GitHub Pages, Netlify, etc.)
🤝 Contributing
Contributions welcome! Please:
- Fork this repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Create Pull Request
Contribution areas:
- New theme designs
- Improved smart pagination algorithm
- Add animation effects
- Performance optimization
- Bug fixes
- Documentation improvements
📄 License
MIT License - see LICENSE file for details
🔗 Links
- GitHub Repository: github.com/dwHou/slidown
- Issue Tracker: Issues
- PyPI Package: pypi.org/project/slidown-md
- Changelog: CHANGELOG.md
Made with ❤️ by Devonn Hou
Slidown = "Slide" (slideshow) + "Markdown" (markup language)
Transform your Markdown notes into beautiful presentations
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
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 slidown_md-1.0.4.tar.gz.
File metadata
- Download URL: slidown_md-1.0.4.tar.gz
- Upload date:
- Size: 43.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bb4364bc8c9132836fb6c0827c3ad99ee126920d0f02f39536630b49f6e3228
|
|
| MD5 |
0c104b932cc2f7bbd3da174f108dafd2
|
|
| BLAKE2b-256 |
c39768b9d361625a555be3b94296643a9ee8e03fc1250e3e09e9fa01e95b081c
|
File details
Details for the file slidown_md-1.0.4-py3-none-any.whl.
File metadata
- Download URL: slidown_md-1.0.4-py3-none-any.whl
- Upload date:
- Size: 33.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed1f56aedf9de67eb162ec30e6a5bcce8d3df4c56e650598a1d547a909113e5b
|
|
| MD5 |
10f5f94b150a1dcdbed7624b0f3f2ed7
|
|
| BLAKE2b-256 |
7250346a8371188f6d3c04621a1f56c09e738c5d18ad16e389a49c300c8438c2
|