Skip to main content

Render marimo cells as hydrated islands in Jupyter Book.

Project description

marimo + Jupyter Book

marimo is a reactive Python notebook that can be embedded in static documents. This repo is a Jupyter Book executable plugin that lets you write marimo cells in MyST pages and publish a static book whose controls, tables, plots, SQL results, and dependent cells still respond in the browser.

Requires Python 3.10+. The package installs marimo for page execution.

Quick Start

1. Install the plugin in the same environment as Jupyter Book:

pip install jupyter-book-marimo

For uv-managed projects, use:

uv add jupyter-book-marimo

2. Register the executable plugin in myst.yml:

project:
  plugins:
    - type: executable
      path: .venv/bin/jupyter-book-marimo

Use the executable path that matches your environment. In this repo's docs site, the docs live in docs/, so the path is ../.venv/bin/jupyter-book-marimo.

3. Edit a MyST page:

---
title: My reactive page
---

# A reactive page

```{marimo} python
import marimo as mo

slider = mo.ui.slider(start=1, stop=10, step=1, label="items")
slider
```

```{marimo} python
mo.md(f"The slider is set to **{slider.value}**.")
```

Set page defaults or page-local dependencies with {marimo-config}:

```{marimo-config}
:echo: true
:pyproject: |
  requires-python = ">=3.10"
  dependencies = ["pandas"]
```

4. Build the book:

jupyter-book build --html

Features

jupyter-book-marimo uses marimo islands so reactive notebook content can live between ordinary book sections. The plugin supports Python, SQL, and Markdown cells, page-level execution defaults, page-local dependencies, custom styling hooks, and static HTML output that hydrates into interactive marimo components on load.

Docs

Read the user docs at marimo-team.github.io/jupyter-book-marimo.

For the full local development workflow, see CONTRIBUTING.md.

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

jupyter_book_marimo-0.0.1.tar.gz (71.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jupyter_book_marimo-0.0.1-py3-none-any.whl (51.1 kB view details)

Uploaded Python 3

File details

Details for the file jupyter_book_marimo-0.0.1.tar.gz.

File metadata

  • Download URL: jupyter_book_marimo-0.0.1.tar.gz
  • Upload date:
  • Size: 71.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for jupyter_book_marimo-0.0.1.tar.gz
Algorithm Hash digest
SHA256 12a81577957f0e8cdd701d6d49f7dc7f0a1c3c7d50a3db26b256ff67711f94f9
MD5 3874f1ff4360b61a381bd7c3fe62eceb
BLAKE2b-256 1ab9537e729844ea288de9d63239788bcb60afa51bb0ccc4cdc2969ef3da11fc

See more details on using hashes here.

File details

Details for the file jupyter_book_marimo-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: jupyter_book_marimo-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 51.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for jupyter_book_marimo-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f4a54216bd08d1abf65d85bb2fd84152469f20b1f6286112ec6ef50cde3f035e
MD5 7bbf7825d9da103aa186684200532a5c
BLAKE2b-256 825f63808e307ec03733f18985180ce3b6c1bf0312000e5bc17ecc090d693268

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page