10 comments

[ 2.7 ms ] story [ 34.6 ms ] thread
Emacs org mode definitely got this right. Storing everything as json feels like an ok choice, but there is a huge advantage to storing in the repo exactly what you review.
There is also another tool called `pynb` (by the same author) that can be used to achieve human-readable format. The logic is a bit different there, since it generates a .py script file with markdown cells appearing as Python comments.

example diff: https://github.com/minireference/noBSLAnotebooks/commit/9005...

script: https://github.com/minireference/noBSLAnotebooks/blob/master...

pre-commit hook: https://github.com/minireference/noBSLAnotebooks/blob/master...

Hi Ivan, author here. Happy to read that pynb is useful! it can be used in a similar way (I used it also this way until I required support also for Zeppelin), however, it's limited to Jupyter and there's no Markdown support as you already pointed out.
Why wouldn't you just use org-mode and ob-ipython which lets you call out to jupyter kernels and have the results appear in your org file?

At least then you're dealing with diffs of plain text instead of json.

Github formats Jupyter notebooks but not Zepplin, which for me is pretty much a slam dunk for jupyter.
Git + Jupyter notebooks is a disaster though.
Converting notebooks to markdown is a fine idea (although you have to maintain both versions).

I built ReviewNB (https://www.reviewnb.com/) specifically to review Jupyter Notebooks on GitHub.