Tracking issue for adding interactive documentation #706
Open
Description
Description
This is an issue to collect tasks for adding interactive documentation to PyWavelets via JupyterLite kernels/notebooks.
Proposal
- Build against Pyodide out-of-tree (Build and test PyWavelets Pyodide wheels in CI #701)
- Migrate to
pydata-sphinx-theme
(DOC: Migrate topydata-sphinx-theme
#704) - Investigate where to upload wasm32 wheels (needs an external index that accepts
emscripten_X_Y_wasm32
platform tags) - Add CI jobs to run nightly builds of Pyodide wheels (or on every push to
master
, rather?),while configuring versioning to include git hashes or dates(Upload dev builds for all supported platforms to anaconda.org #712, Upload dev wheels to Anaconda.org + revamp wheels publishing workflow #714) - Convert all current usage examples to literate-programming-style notebooks, adding instructions and resolving issues as necessary
- API reference section (Initial steps towards interactive documentation via JupyterLite #728)
- Usage examples section (DOC: Add interactive notebooks to pages in the "Usage Examples" section #741)
- Add
jupyterlite-sphinx
and buttons based on screen size1 to provide interactive kernels for these examples, and - Check if we can download wheels from the external index on Read the Docs or if an alternative step is needed
- Wheels cannot be pre-loaded with
jupyterlite-pyodide-kernel
currently, so the global warning will be used for this purpose - Look to see a resolution to CORS headers issue from Anaconda (
micropip.install("<...>")
does not uphold custom PyPI indices pyodide/micropip#101)
- Wheels cannot be pre-loaded with
- Enable swapping of wheels so that the latest built ones are picked up by
jupyterlite-pyodide-kernel
or any other Pyodide interpreter that powers the documentation, always.
Additional comments
The intermediate step would mean that the .whl
files would have to be downloaded manually using wget
or curl
first (a helper script can be created for this) and pointed to the Pyodide-pip interpreter for installation.