jupyterlab-contrib/rise

Meta-issue with left over tasks

Opened this issue · 2 comments

This is a reboot of #381 - in order to move forward on jupyter/notebook#6220

The approach taken differs from #381 as it creates a stand-alone app (similarly to retrolab - JLab remix) in order to:

  • Deal with the DOM manipulation induced by RevealJS that don't play nicely in webapp such JupyterLab
  • Add the opportunity to spin a notebook focusing on slideshow experience

What it does:

  • Add button in JupyterLab notebook toolbar to open the RISE view of the current notebook
  • Support federated extension in RISE mode (in particular ipywidgets are working)
  • Restructure completely the package to be a single python package with multiple npm packages to ship a single package for the classical notebook and JupyterLab
  • Support ipywidget
  • Run on Binder for the classical notebook and JupyterLab (but failed to open the standalone app from JupyterLab)

What it partly do:

  • Create a ugly slideshow with no configuration

What needs to be done:

  • Improve styling
  • properly handle all kinds of cells (subslide, fragment, ...)
  • Render slideshow in side-by-side panel within JupyterLab
  • Create custom notebook factory to remove the toolbar Explicitly dispose the toolbar (avoid dealing with specific factory)
  • Turn off virtual rendering Wait for fully rendering before converting to slideshow (placeholder cannot be removed due to DOM hierarchy change for Reveal)
  • Turn off heading collapse feat.
  • Check Jupyter Widget interact
  • Implement as much features as possible from classical:
    • Support RevealJS theming
    • Support shortcuts
    • Support Jupytext (not tested may already work)
      PR opened: mwouts/jupytext#877
    • Dynamically load custom CSS
    • Deal with configuration:
      • at JupyterLab level
      • at notebook level
  • x [out of scope] Allow to edit style info from cell toolbar (updating extension??)
  • x [out of scope] [optional] Bring something like split-cell classic extension
  • Smart execution
  • Documentation
  • CI job to at least test it installs

Help will be really appreciate to cover the above points - don't hesitate to open PRs against this PR branch.

rise_demo_20211120

Tested here after a pip installation, and it worked smoothly for what I tried.

Thank you!!!

This should probably be reviewed again, and individual tasks split into separate issues.