Publish to GitHub Pages¶
You can publish executable notebooks to GitHub Pages for free, after exporting your notebook to a WebAssembly notebook.
Export to WASM-powered HTML¶
Export your notebook to a self-contained HTML file that runs using WebAssembly:
See our exporting guide for the full documentation.
Publish using GitHub Actions¶
Template repository
Fork our template repository for deploying multiple notebooks to GitHub Pages. Once you have forked the repository, add your notebooks to the notebooks
or apps
directories,
for editable or readonly respectively.
Publish to GitHub Pages using the following GitHub Actions workflow, which will republish your notebook on git push.
jobs:
build:
runs-on: ubuntu-latest
steps:
# ... checkout and install dependencies
- name: 📄 Export notebook
run: |
marimo export html-wasm notebook.py -o path/to/output --mode run
- name: 📦 Upload Pages Artifact
uses: actions/upload-pages-artifact@v3
with:
path: path/to/output
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
permissions:
pages: write
id-token: write
steps:
- name: 🌐 Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
with:
artifact_name: github-pages
Publish manually¶
You can also publish an exported notebook manually through your repository settings. Read GitHub's documentation to learn more.
Make sure to include a .nojekyll
file in
root folder from which your site is built to prevent GitHub from interfering
with your site.