This project provides a way to convert standalone reStructuredText files to Jupyter notebook files.
This is currently achieved by converting to markdown using pandoc and then to a Jupyter notebook using notedown, plus some configuration and tweaks. A better approach would be to implement a proper Jupyter-export extension for Sphinx.
NEWS (2017-10): you may want to explore the recent https://github.com/QuantEcon/sphinxcontrib-jupyter/ that does just this.
Python 3 (for proper UTF-8 support in notedown), pandoc, notedown
Install pandoc and then this module as usual:
git clone https://github.com/nthiery/rst-to-ipynb.git cd rst-to-ipynb pip3 install .
pip3 will install the other dependencies as needed.
For [SageMath](http://sagemath.org) users: rst2ipynb is an optional package that you may install with:
sage -i rst2ipynb
then you can run it with:
sage -rst2ipynb ...
For [Cocalc](http://cocalc.org) users: rst2ipynb is already installed.
To convert a reST file xxx.rst
to a Jupyter notebook xxx.ipynb
, run:
rst2ipynb xxx.rst -o xxx.ipynb
- [X] Handle Sage's doctests
- [X] Fenced code blocks: fix incompatibility between pandoc output and notedown input.
- Fixed in notedown; see: aaren/notedown#29.
- [ ] Configurability of the default ReST role, in particular to handle maths in Sage's ReST dialect.
- Current status: hardcoded for Sage.
- [ ] Configurability of custom ReST roles, in particular to handle Sage's custom roles
- [ ] Proper argument parsing; escape characters, spaces, ... are not
- yet supported
- [ ] Handle input/output blocks within itemize and other indented constructions
- See aaren/notedown#33
rst2ipynb was partially funded by [OpenDreamKit](http://opendreamkit.org)