iodide-project / iodide-project/iodide
Resurrect "export notebook" feature
- Dominant language
- JavaScript
- Stars
- 1.5k
- Forks
- 145
- PR merge metrics
- No merged PRs in 30d
Description
So we temporarily disabled the "export notebook" feature because the way it worked didn't fit into the server-based paradigm that we moved to. But there are still valid use cases for this! Maybe someone wants to publish a notebook outside of the context of iodide.io (e.g. #2174), maybe people want to export their data/work so they're not reliant on us. Probably other things I haven't considered.
I would propose we reintroduce this feature, with a few differences from before (at least to start):
1. Exported notebooks will not persist changes. We should probably include a banner in the editor saying that they should re-open this file on an iodide server to do that.
2. Similarly, history, adding files, and other features depending on the server will be disabled.
To start with, I would suggest that the server provide a zipped bundle with the following upon clicking on an export/link button:
* An html file with the iodide notebook inside
* Sufficient javascript/css to render the notebook (can probably use some variant of the webpack stuff we already generate, just need some custom logic for "standalone" mode)
* Any files attached to the notebook
From there, a user can copy them onto a webserver or whatever else they want to do. A subsequent enhancement might be to publish a notebook to github pages.
This wouldn't be a "trivial" feature to write, but probably isn't *too* difficult either. It might be an interesting feature for a motivated contributor who is comfortable working in both the webpack/js/react and python/django/server worlds. Previous iodide experience highly recommended.
Contributor guide
Assessment
This issue has not been assessed yet.