Skip to content

Sydney-Informatics-Hub/sih-marimo-gh-pages-template

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reactive python notebooks, Github action rendered, github hosted, local in-browser, usign marimo, pyodide, wasm.

Go to https://sydney-informatics-hub.github.io/sih-marimo-gh-pages-template/ to try it out!

Screenshot 2025-01-17 at 5 49 20 pm Screenshot 2025-01-17 at 5 53 03 pm

marimo WebAssembly + GitHub Pages Template

This template repository demonstrates how to export marimo notebooks to WebAssembly and deploy them to GitHub Pages.

📚 Included Examples

  • apps/charts.py: Interactive data visualization with Altair
  • notebooks/fibonacci.py: Interactive Fibonacci sequence calculator
  • notebooks/penguins.py: Interactive data analysis with Polars and marimo

🚀 Usage

  1. Fork this repository
  2. Add your marimo files to the notebooks/ or apps/ directory
    1. notebooks/ notebooks are exported with --mode edit
    2. apps/ notebooks are exported with --mode run
  3. Push to main branch
  4. Go to repository Settings > Pages and change the "Source" dropdown to "GitHub Actions"
  5. GitHub Actions will automatically build and deploy to Pages

Including data or assets

To include data or assets in your notebooks, add them to the public/ directory.

For example, the apps/charts.py notebook loads an image asset from the public/ directory.

<img src="public/logo.png" width="200" />

And the notebooks/penguins.py notebook loads a CSV dataset from the public/ directory.

import polars as pl
df = pl.read_csv(mo.notebook_location() / "public" / "penguins.csv")

🧪 Testing

To test the export process, run scripts/build.py from the root directory.

python scripts/build.py

This will export all notebooks in a folder called _site/ in the root directory. Then to serve the site, run:

python -m http.server -d _site

This will serve the site at http://localhost:8000.

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%