Road Map

We are collecting user stories on this page: NoteBook/UserStories

For those who want to peek in the development, the trac for the ipython svn repository gives a view, http://projects.scipy.org/ipython/ipython Mentors:

  • Fernando Perez
  • Robert Kern

Students:

  • Toni Alatalo
  • Tzanko Matev

During a phone call on 2005-07-03, Fernando and I (Robert) hashed out a basic plan of attack for the notebook project.

  • We are going to be using an XML-based format at least in this stage of development. I have gotten pretty far in a few days thanks to ElementTree?. The flexibility that that XML affords us should serves us well during early development. It is still a possibility that some kind of Python-syntax form would be useful and preferred later in development, so we will probably revisit this issue later.
  • The XML format will be described here: NoteBookXML.
  • We will need to identify a markup to represent the structure of the rich text with ipython "cells" embedded inside. Two possibilities that should be looked at are a small subset of XHTML and also the XML that docutils uses to represent the structure of reST documents. Be sure to browse the docutils sandbox. There's some appropriate stuff in there. The docutils approach has the benefit of being able to offload some or all of our static document rendering off to other people.
  • GUI:
    • We need to identify a rich-text component that will handle HTML-like text (i.e. not just changing font properties, but also structural elements like headings and enumerated lists) and images. wx.stc ultimately won't work, but it will be useful as an intermediate target, and can be used immediately. wxMozilla is worth looking at, although the idea of embedding that monster gives me the same chills that it's giving you.
    • The first milestone is to write a GUI component (wx.stc recommended for now) that will
      • open a notebook file
      • render it, unstyled, as cells of raw text and input and output cells
      • allow editing of the raw text cells
      • allow editing of the code in the input cells (but not the "In [NN]?:")
      • allow moving the cells around
      • allow supression or deletion of cells
      • save the notebook back out to a file
  • It is useful to have a concrete target in mind. Think about having the Scipy tutorial as an interactive notebook. Some possible milestones:
  • Render a sub-chapter with prompts and output.
  • Render a sub-chapter with prompts, output and graphics.
  • ... and equations.
  • Render a whole chapter.
  • Render multiple chapters.