[IPython-dev] live input widgets

Jason Grout jason-sage at creativetrax.com
Sat Apr 13 10:23:36 EDT 2013


I've been experimenting with having live javascript input widgets in 
codemirror (e.g., the sage cell, samuel's port of the notebook, 
William's salvus project, the IPython notebook, etc.)

Here's a very simple proof-of-concept:

http://jsfiddle.net/gh/gist/jquery/2.x/5378313/ (repository at 
https://gist.github.com/jasongrout/5378313 )

In the lower right pane, highlight an integer and press "Insert Widget". 
  Then you can change the integer by clicking on the buttons.

Once we can have javascript widgets on the input, whole new worlds are open:

* live images in the input code, automatically uploaded to the server, 
drag and drop from your browser, or even just an image editor so you can 
draw your image
* live mathjax-based equation editors
* matrix/table data editors
* a d3-based live graph editor (i.e., vertices and edges), right in the 
input

and a huge number of other possibilities.

Anyways, I thought people here would be interested.

You'll notice that the text content has weird unicode characters in it 
delimiting the boundaries of the widget.  The live widgets can put just 
single values in the text, but they can also embed json-encoded 
messages.  When the cell is interpreted for evaluation, the unicode 
widget delimiters can be stripped out, the message decoded and relevant 
python code generated, and then the widget message replaced with the 
generated python code.

Thanks,

Jason



More information about the IPython-dev mailing list