<span style='font-family:Verdana'><span style='font-size:12px'>Hi,<br /><br />I've been giving matthias's comment some thought re nbviewer support<br />for javascript views, and also considered the intention of disabling javascript<br />due to security-concerns.<br /><br />Here is a solution to both issues that I'd like to suggest:<br /><br />There's a need to separate static HTML from HTML bearing<br />javascript which might only be renderabe dynamically, call it dynamic HTML.<br /><br />My suggestion is that the display protocol be modified&nbsp; so that the semantics of<br />`_repr_html_` would mean static HTML only, and a new `_repr_jshtml_` (however named)<br />magic method would be supported, under which objects would implement<br />dynamic views.<br /><br />This provides the following benefits:<br />- Objects can provide HTML representation of themselves suiting<br />the environment they are in. It's the front end that chooses the<br />representation it supports. So there will be no further need to sniff<br />qtconsole vs. IPNB via `get_ipython().config`.<br />In particular, nbviewer could leverage this to allow even dynamic views<br />to gracefully degrading in order to cooperate.<br />- For security reasons, the use of '_repr_jshtml_' view by IPYthon would be <span id="misspelled-optin" name="misspelled-optin">behind<br />an opt-in mechanism</span>, and the static&nbsp; `_repr_html_` would be sanitized/sandboxed.<br /><br />The IPython.core.display functions could be extended accordingly to<br />obey the currently active security policy.<br /><br />Thoughts?<br /><br />Yoval<br /><br />Matthias BUSSONNIER write:<pre>&gt; Hi y-p ! 
&gt; 
&gt; Look really nice ! 
&gt; 
&gt; Did not have time to look into the source right now, but I'll definitively will. 
&gt; Do you think  the data exchanged with the kernel in some cases could be store either in the metadata of cells, 
&gt; or in the Json representation of displayed object ? 
&gt; 
&gt; If we do this and by carefully crafting the "js plugin"  they could be loaded by nbviewer and read sone data in the dom injected. 
&gt; Which would allow a limited interactivity on nbviewer. 
&gt; 
&gt; Do you rely on display_javascript for the initial loading of javascript ? or inject &lt;script&gt; tag in a display HTML 
&gt; If you do , this can be problematic in the future. 
&gt; 
&gt; -- 
&gt; Matthias</pre></span></span>