Skip to content

treeleaves30760/PyMD

PyMD: Python-Powered Markdown

PyPI Downloads

PyMD is a revolutionary markup language that creates executable Python files that also render beautifully as markdown documents. All markdown content is prefixed with # (making it Python comments), while code blocks contain regular executable Python code that prints markdown during rendering.

Screen Shot

✨ Features

🐍 Core Functionality

  • Executable Python Files: Run directly with python filename.pymd
  • Dual Code Blocks: ``` for executable code, ```` for display-only
  • Variable Persistence: Variables persist across code blocks

πŸ“ Document Creation

  • Commented Markdown: All markdown prefixed with # (Python comments)
  • Print-to-Markdown: print() statements output markdown during rendering
  • Dynamic Content: Execute Python code and display results inline

🎨 Rich Media Support

  • Automatic Plot Capture: plt.show() saves and renders matplotlib plots
  • Video Rendering: Built-in video support with custom controls
  • Table Detection: Automatic markdown table formatting

πŸ”΄ Live Development

  • Real-time Preview: Auto-refresh as you edit with web editor
  • One-click Export: Export to HTML or Markdown with embedded media
  • Fast Rendering: Efficient parsing with caching

πŸš€ Quick Start

Installation

Option 1: Install from PyPI (Recommended)

pip install pyexecmd
Option 2: Install from source
  1. Clone the repository:

    git clone https://www.github.com/treeleaves30760/PyMD
    cd PyMD
  2. Install in development mode:

    pip install -e .

Usage

For PyPI Installation

  1. Create a new PyMD document:

    pyexecmd create my_document.pymd
  2. Start live preview with web editor:

    pyexecmd serve --file my_document.pymd --port 8080

    Then open http://localhost:8080/editor in your browser for the full editor experience, or http://localhost:8080 for display-only view.

    Note for macOS users: Port 5000 is often used by AirPlay. Use --port 8000 or another port to avoid conflicts.

  3. Export Options:

    # Render to HTML
    pyexecmd render my_document.pymd -o output.html
    
    # Render to Markdown
    pyexecmd render my_document.pymd -f markdown -o output.md
For Conda Users (Recommended Development Setup)

If you're using conda for development, first activate the environment:

# Initialize conda and activate environment
source /opt/miniconda3/etc/profile.d/conda.sh && conda activate PyMD

# Verify activation
python --version && which python

Then use standard Python commands:

# Create a new PyMD document
python -m pymd.cli create my_document.pymd

# Start live preview with web editor
python -m pymd.cli serve --file my_document.pymd --port 8080

# Render to HTML
python -m pymd.cli render my_document.pymd -o output.html

# Render to Markdown
python -m pymd.cli render my_document.pymd -f markdown -o output.md

Web Editor Features

The web editor (available at /editor) includes:

  • πŸ“ Split-view editing: Side-by-side editor and live preview
  • πŸ–±οΈ One-click export: Export HTML and Markdown buttons in the interface
  • ⚑ Live rendering: Ctrl+S to execute code and update preview
  • πŸ’Ύ File management: Save and download your documents
  • 🎨 Syntax highlighting: Python syntax highlighting with PyMD-specific features

πŸ“ PyMD Syntax

Please refer to Syntex Guide to learn how to write the PyMD

πŸš€ Quick Example Usage

1. Run as executable Python:

python example.pymd

2. Render as beautiful HTML:

python -m pymd.cli render example.pymd -o presentation.html

3. Export to standard Markdown:

python -m pymd.cli render example.pymd -f markdown -o documentation.md

4. Live editor with preview:

python -m pymd.cli serve --file example.pymd --port 8080
# Open http://localhost:8080/editor in your browser

How Export Works:

  • HTML Export: Full rendering with executed code output and styled markdown
  • Markdown Export: Removes # prefixes and converts to standard markdown
  • Source Files: Remain executable Python scripts with commented markdown
  • Compatibility: Exported markdown works with GitHub, GitLab, and other renderers

Output Directory Structure:

After rendering documents with images and videos, your output directory will look like:

my_project/
β”œβ”€β”€ document.pymd           # Source PyMD file
β”œβ”€β”€ document.html           # Rendered HTML output
β”œβ”€β”€ images/                 # Auto-generated plot images
β”‚   β”œβ”€β”€ plot_1_abc123.png
β”‚   └── plot_2_def456.png
└── videos/                 # Embedded video files
    β”œβ”€β”€ video_1_ghi789.mp4
    └── video_2_jkl012.mp4

Web Editor Features:

  1. Live Editing: Open http://localhost:8080/editor in your browser
  2. Syntax Highlighting: # prefixed markdown and Python code blocks
  3. Live Preview: See rendered output in real-time
  4. Export Options: Click πŸ“„ Export HTML or πŸ“ Export MD
  5. File Execution: Use Ctrl+S to execute code and update preview

🎯 Use Cases

  • πŸ“Š Data Science Reports: Python scripts that execute analysis AND generate beautiful reports with automatic plot capture
  • πŸ“š Executable Documentation: Documentation that actually runs and validates itself, with embedded visualizations and demo videos
  • πŸŽ“ Interactive Tutorials: Learning materials that students can execute and modify, featuring live charts, tables, and instructional videos
  • πŸ“ˆ Living Dashboards: Python scripts that generate dynamic visual reports with automatic image saving
  • πŸ”¬ Reproducible Research: Research papers where the code actually runs and produces publication-ready figures
  • πŸ§ͺ Literate Programming: Self-documenting code through executable markdown comments with inline visualizations
  • πŸ“‹ Technical Specifications: Specs that include working code examples and automatically generated plots
  • πŸ€– AI/ML Workflows: Machine learning pipelines with embedded documentation and automatic model visualization
  • πŸ“‘ Business Reports: Automated reports with data tables and charts that update when code runs
  • 🎨 Presentation Materials: Technical presentations that combine code, explanation, live visualizations, and demo videos

πŸ”’ Security Considerations

⚠️ IMPORTANT: PyMD executes Python code in .pymd files.

  • Only run .pymd files from trusted sources
  • Review code before executing downloaded .pymd files
  • Don't expose the PyMD server to public networks without authentication
  • See SECURITY.md for detailed security guidelines

🀝 Contributing

We welcome contributions! Please feel free to submit issues, feature requests, or pull requests.

πŸ“„ License

This project is licensed under the MIT License.


About

A python-enhanced markdown-like note language

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published