iodide-project / iodide-project/iodide

Resurrect "export notebook" feature

Open
#2,178 5 comments 4 reactions 0 assignees View on GitHub
iodide-server
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.