feat: integrate Marimo notebooks - #307
Merged
Merged
Conversation
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>
📚 Preview this PR's docs locallyFetch 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 307Auth & tips
|
- 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.