Skip to content

feat: consolidate into single slidev-addon-marimo package#8

Open
lucharo wants to merge 3 commits intomainfrom
feature/unified-addon
Open

feat: consolidate into single slidev-addon-marimo package#8
lucharo wants to merge 3 commits intomainfrom
feature/unified-addon

Conversation

@lucharo
Copy link
Copy Markdown
Owner

@lucharo lucharo commented Feb 4, 2026

Summary

  • Consolidates slidev-addon-marimo-islands and slidev-addon-marimo-live into a single unified slidev-addon-marimo package
  • Supports both Islands (Pyodide/WASM) and Live (WebSocket kernel) modes
  • Reorganizes directory structure with clear islands/ and live/ separation

Changes

New Package Structure

slidev-addon-marimo/
├── components/
│   ├── islands/MarimoIsland.vue
│   └── live/MarimoLive.vue, MarimoOutput.vue, MarimoUI.vue
├── composables/
│   ├── islands/useCellRegistry.ts, useMarimoKernel.ts
│   └── live/useKernelState.ts, useMarimoKernel.ts
├── setup/
│   ├── islands/island-manager.ts, preparser.ts
│   ├── live/kernel-connection.ts, message-parser.ts, ui-sync.ts
│   ├── shared/constants.ts, kernel-message-patch.ts
│   ├── main.ts (unified entry with mode detection)
│   └── preparser.ts (handles both ```marimo and ```marimo-live)
└── index.ts (exports both modes)

Mode Detection

  • Islands mode initializes automatically for ```marimo blocks
  • Live mode only activates when explicitly configured via window.__MARIMO_LIVE_CONFIG__
  • Both modes can coexist in the same presentation

Usage

---
addons:
  - slidev-addon-marimo
---

Test plan

  • Islands mode tested in browser - slides render, Python executes, widgets work
  • All 35 unit tests pass
  • Live mode requires running marimo kernel for full testing

🤖 Generated with Claude Code

lucharo and others added 2 commits February 4, 2026 12:36
Create unified package supporting both Islands (Pyodide/WASM) and Live
(WebSocket kernel) modes:

- Reorganize structure with islands/ and live/ subdirectories
- Create unified setup/main.ts with mode detection
- Create unified preparser handling both ```marimo and ```marimo-live
- Update import paths for new structure
- Islands mode: fully tested and working
- Live mode: initializes only when explicitly configured

The package now uses:
- components/islands/ for WASM execution
- components/live/ for WebSocket execution
- setup/shared/ for common utilities

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Fix imports in basic.test.ts to use islands/ subdirectory
- Fix imports in message-parser.test.ts to use live/ subdirectory
- Update package name expectation from slidev-marimo-islands to slidev-addon-marimo
- Reduce unique ID test from 100 to 30 (within cell limit)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Delete slidev-addon-marimo-islands/ (now merged into slidev-addon-marimo)
- Delete slidev-addon-marimo-live/ (now merged into slidev-addon-marimo)
- Update README.md to reference slidev-addon-marimo package
- Update examples/marimo-live-test.md addon reference
- Update test setup comment

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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