Giter Club home page Giter Club logo

rst-to-ipynb's Introduction

rst2ipynb

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.

Requirements

Python 3 (for proper UTF-8 support in notedown), pandoc, notedown

Installation

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.

Usage

To convert a reST file xxx.rst to a Jupyter notebook xxx.ipynb, run:

rst2ipynb xxx.rst -o xxx.ipynb

Example

TODO

  • [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

Acknowledgements

rst2ipynb was partially funded by [OpenDreamKit](http://opendreamkit.org)

rst-to-ipynb's People

Contributors

nthiery avatar moorepants avatar minrk avatar slel avatar jdemeyer avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.