<div class="gmail_extra"><div class="gmail_quote">On 6 December 2012 15:28, W Gong <span dir="ltr">&lt;<a href="mailto:wen.g.gong@gmail.com" target="_blank">wen.g.gong@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div id=":12m">ipynb could be made more user-friendly, if new buttons are added to the tool bar,<br>e.g. to add an youtube link, the button prompts for url or the code, then auto insert a cell:<br><br><div style="margin-left:40px;color:rgb(255,0,0)">


from IPython.display import YouTubeVideo<br>YouTubeVideo(&#39;MTx6ha6fRwo&#39;)</div></div></blockquote></div><br>I think the challenge is that there is an enormous wealth of things you can do in the notebook - far more than we can put into the toolbar, and it&#39;s pretty heavy even for a hierarchical menu (see the magics menu in the Qt console). Is embedding Youtube videos so important to so many users that it merits a valuable toolbar button?<br>

<br>What&#39;s interesting is how we integrate the notebook as a way to edit and run code, with the notebook as a rich text presentation system. Embedding a video needn&#39;t go through a Python cell, but at present that&#39;s simpler than putting the relevant HTML into a Markdown cell. From the other direction, we&#39;re now talking about ways to embed variable references into Markdown cells, and definining a syntax to do that. I get the feeling we&#39;re missing a coherent approach here.<br>

<br>To spark discussion, maybe what we need is something like a &#39;template cell&#39;, that&#39;s in between a client-side Markdown cell and a code cell:<br>- Edit syntax something like Jinja2 templates, with fields that you can fill in, loops, if clauses, and so on. We&#39;re thinking of using Jinja2 anyway, so let&#39;s not invent our own templating language.<br>

- When you execute it (shift-enter), it is sent to the kernel to render the template.<br>- Python objects used in fields are rendered according to our display protocol, i.e. _repr_html_() will be preferred.<br>- In the interface, the rendered output replaces the editor (like a Markdown cell) until you double-click to edit it again.<br>

<br>Thoughts?<br><br>Thanks,<br>Thomas<br></div>