Automated CI pipeline for validating and exporting marimo example notebooks.
- Automatically exports whitelisted marimo notebooks:
- to markdown
- to HTML
- to WebAssembly
- to ipynb
- to flat script
- to PDF (via nbconvert)
- to WebPDF (via nbconvert)
- Triggers on:
- Pushes to
mainfrom this repo - Nightly builds
- Manual triggers
- Pushes to
This project uses uv for dependency management. To set up locally:
# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh
# Sync dependencies (including PDF export support)
uv sync --extra pdfIn CI, the workflow clones example notebooks from marimo-team/marimo. To mirror this locally:
# First time: clone marimo examples
uv run scripts/setup_examples.py
# Run the export script
uv run scripts/export_notebooks.pyThe setup script will:
- Sparse-clone
marimo-team/marimoto get theexamples/folder - Copy your local
notebooks/intoexamples/notebooks/ - Clean up the cloned repo
After setup, you can re-run exports anytime with uv run scripts/export_notebooks.py.
PDF and WebPDF exports require system packages:
# Ubuntu/Debian
sudo apt-get install texlive-xetex texlive-fonts-recommended texlive-plain-generic pandoc
# macOS
brew install --cask mactex
brew install pandocTo skip PDF exports if these aren't available:
uv run scripts/export_notebooks.py --skip-pdf --skip-webpdfAdd notebooks to whitelist in scripts/export_notebooks.py
The pipeline runs automatically on configured triggers. To run manually:
- Go to Actions tab
- Select "Export Notebooks" workflow
- Click "Run workflow"