deathbeds / pidgy

Interactive computing in Markdown

Home Page:https://pidgy.rtfd.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

add a pidgy-powered jupyterlite site to docs build

bollwyvl opened this issue · comments

With jupyterlite 0.1.0a17 we can now deploy custom wheels which can be imported in pyolite notebooks.

This makes it much easier to deploy work-in-progress demos with per-PR builds on RTD.

Depending on the kind of experience we want to demonstrate we can:

  • #66 ship some pyolite notebooks that can "upgrade" to pidgy ones
    • add jupyterlite to the docs environment
    • before the docs build, ensure lite builds to _static
      • this can be done right in conf.py or some other way
  • ?? add a pidgy console iframe
    • re-use existing console (no widgets) or notebook (more cognitive load) machinery
    • hack the theme to allow starting a lite app, kernel
    • expose the lab app, use commands, etc. to pre-run code,
    • add some "run example" buttons to run more code
  • ?? build an actual pidgilite kernel
    • as above, but also needs nodejs
    • deploy as a jupyterlite extension, e.g. @deathbeds/jupyterlite-pidgy
      • in a weird twist, this would be an npm package
        • that gets built into a wheel as, e.g. jupyterlite-pidgy
          • to ship to pypi
            • in order to be installable with real pip
              • but wouldn't work in normal lab
                • yet

The first route would just include a link to a local site... I like to do it in a template.

Eventually, though, we could iframe the lite site in... this would take... deeper modification.

Pushing on the iframe idea, the pièce de résistance might be integrating a (non-existant) lite extension would exposed more things to the host application... the lightest touch would be a router hack, e.g. #command::restart-run-all::{} though a real iframe bust with postMessage would have legs, as well.

For the simplest case, It's unclear whether jupyterlite should be added to docs/requirements.txt or noxfile

htmlmin does not publish wheels, so cannot be imported.

update: no big deal, it's a simple wheel to build