Skip to content

ENH: wire the JupyterLite build into the docs (JupyterLite split 5/5) - #14157

Open
natinew77-creator wants to merge 23 commits into
mne-tools:mainfrom
natinew77-creator:lite-docs-wiring
Open

ENH: wire the JupyterLite build into the docs (JupyterLite split 5/5)#14157
natinew77-creator wants to merge 23 commits into
mne-tools:mainfrom
natinew77-creator:lite-docs-wiring

Conversation

@natinew77-creator

@natinew77-creator natinew77-creator commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Part 5 of the split of #13925, and the last one. Parts 1 to 4 are #14128, #14135, #14144 and #14150.

Wires the previous four together: enables jupyterlite_sphinx, serves the data subset the browser notebooks read, and prepends the setup cell to each notebook copy. It also carries the list of pages that do not get an "Open in JupyterLite" badge, since sphinx-gallery adds one to every example. Only the badge is dropped, the notebook source is untouched.

build_docs is red until #14144 and #14150 land, and default just mirrors it. Parts 1 and 2 have merged, so the data and wheel steps now pass and it stops in conf.py: jupyterlite_cell_notes.py imports jupyterlite_setup_cell, which #14150 adds, and that in turn reads the renderer from #14144. Every other check is green, since nothing but Sphinx reads conf.py.

Checked on #13925, where the same wiring builds with every page executed and no sphinx warnings.

Enables jupyterlite_sphinx, stages the data the browser notebooks read,
prepends the setup cell to each notebook copy, and leaves the launch
badge off the pages that cannot run in the browser.
It sits with "Get data and triage examples to run" rather than after
test-doc. Same effect, since all it has to do is precede make html, and it
keeps the step away from the wheel build's insertion point.
@natinew77-creator
natinew77-creator marked this pull request as ready for review August 17, 2026 20:18
# Conflicts:
#	doc/documentation/datasets.rst
The tutorial crops the white margins off brain.screenshot(), and vtk.js
cannot hand a framebuffer back to Python, so there is no screenshot to
crop.
Two entries had gone stale: upstream renamed decoding_rsa_sgskip.py and
montage_sgskip.py, so both examples were badged again despite still
needing the datasets they were excluded for. Also excludes the new
21_interactive_dipole_fit, which is a tour of mne.gui.dipolefit and needs
a picker vtk.js does not provide.
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