Notebook to slides: turn a Jupyter notebook into a Reveal.js slideshow online
This converter turns a Jupyter notebook into a self-contained Reveal.js HTML slide deck you can present from any browser. Drop the .ipynb in the page, choose whether to keep outputs and speaker notes, and download an .html file that already loads Reveal.js and Highlight.js from a CDN—no build step, no slot for `nbconvert --to slides`, no LaTeX install. Open the file in Chrome, Edge, or Firefox to present, and zip it up to share with the audience afterwards.
The converter respects the same `slideshow.slide_type` cell metadata that Jupyter, RISE, and `nbconvert --to slides` already use: `slide`, `subslide`, `fragment`, `skip`, and `notes`. If you tagged your notebook in JupyterLab’s slide editor, the deck looks the way you set it up. If you have not tagged anything, the converter falls back to a pragmatic default: every Markdown heading starts a new slide, so a well-structured tutorial becomes a usable presentation without extra work.
Compared to running `jupyter nbconvert --to slides`, this page wins on simplicity. There is no Jupyter install required, no Python environment to maintain, and no need to host a static folder for the slides—the output is one .html file you can email, drop in Slack, or upload to any static site. Compared to RISE, you do not need a live kernel: the slides are static, which makes them easier to share and safer to embed on a website.
Bundle a colour theme (light or dark), turn off Include outputs when you only want the text and figures from a teaching script, and keep Speaker notes on if you embedded `notes` cells in your notebook. The result is a single shareable file that opens straight from a double-click.

