Skip to content

feat: integrate Marimo notebooks - #307

Merged
rich-iannone merged 38 commits into
mainfrom
feat-marimo-integrate
Aug 13, 2026
Merged

feat: integrate Marimo notebooks#307
rich-iannone merged 38 commits into
mainfrom
feat-marimo-integrate

Conversation

@rich-iannone

Copy link
Copy Markdown
Member

This PR adds support for embedding interactive Marimo WASM notebooks as "islands" in Great Docs pages. It introduces a new Quarto shortcode, configuration options, a Python utility for generating island HTML, and custom CSS for styling. The integration allows notebooks to be displayed as interactive islands or in an iframe, with options for showing/hiding code and a copy-to-clipboard feature.

rich-iannone and others added 26 commits May 30, 2026 17:30
Adds a Marimo-focused synthetic package (island + nocode modes) for fast
iteration on the marimo islands integration, registered as #193 in the
catalog. Also tweaks the demo notebooks.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Resolved 4 conflicts, keeping both sides' additions:
- catalog.py: kept main's #193-204; moved gdtest_marimo to #205 (no dup).
- great-docs.yml: took main's reorganized file; re-added `marimo: true`.
- config.py: adopted main's YAML-backed defaults; declared `marimo` in
  great-docs.default.yml, added it to _BOOL_SHORTHAND_KEYS, and rewrote the
  marimo_enabled/marimo_version accessors to the dot-path style.
- core.py: kept both marimo island wiring and main's gd-lightbox wiring.

Verified: great_docs imports; marimo config (bool/dict/default) resolves;
gdtest_marimo rebuilds cleanly in the GDG on the merged code.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Verifies mode="iframe": great-docs core generates a clean self-hosted marimo
WASM export at notebooks/<stem>/ and the shortcode embeds it in a sandboxed
iframe. Adds expected checks for the iframe page and the WASM index.html.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The docs site sets `marimo: true`, so the build imported marimo during island
generation and crashed in CI ("No module named 'marimo'"). Add a `marimo`
optional-dependency extra, install `.[mcp,marimo]` in the docs workflow, and
guard the island-generation step: if marimo isn't installed, warn and skip
(pages using the shortcode show a "not generated" notice) instead of failing
the whole build.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
test_config_defaults_yaml_matches_frozen_defaults guards that
great-docs.default.yml stays in sync with a frozen copy. Adding the `marimo`
option to the YAML requires the matching entry here.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

📚 Preview this PR's docs locally

Fetch the just-built site and open it in your browser:

# this exact build
great-docs preview --run 31659903761

# or always the latest build for this PR
great-docs preview --pr 307
Auth & tips
  • Requires great-docs: pip install great-docs (or run via pipx/uvx).
  • Auth: run gh auth login then add --use-gh, or set GITHUB_TOKEN (needs Actions: read).
  • Jump to a page: add --path reference/index.html.
  • Latest vs exact: --pr <n> grabs the newest build; --run <id> pins this one.
  • Re-download: --refresh ignores the local cache.

rich-iannone and others added 3 commits August 3, 2026 19:44
- Add a Lucide icon (notebook-pen) for the "Marimo Notebooks" sidebar page.
- Install great-tables in the docs CI: the gt-basics notebook imports it at
  build time (MarimoIslandGenerator runs the cells to capture static output),
  so without it the Great Tables island baked in a "No module named
  'great_tables'" error and the setup block collapsed to just `import mo`.
- Surface WASM-export failures: the export subprocess ran with its exit code
  and stderr ignored, so a failure left iframe-mode shortcodes pointing at a
  missing index.html (404) with nothing in the build log. Now warn on
  non-zero exit or a missing index.html.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@rich-iannone
rich-iannone merged commit fa07405 into main Aug 13, 2026
8 checks passed
@rich-iannone
rich-iannone deleted the feat-marimo-integrate branch August 13, 2026 02:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant