2017-06-28 2 views
0

J'utilise IPython Notebook markdown pour créer un document et il autorise du HTML comme <img> par exemple mais j'ai ajouté <object> pour inclure un fichier SVG et il n'apparait pas dans la sortie IPython Notebook. J'ai revérifié la source HTML de l'IPython Notebook et la balise <object> n'est pas servie par le serveur IPython Notebook. On dirait que la balise est également désinfectée.Liste de balises IPython - quelle est la liste des balises HTML autorisées et comment puis-je les changer?

Considérant que quand je le convertis moi-même en dehors de IPython Notebook à un fichier HTML, cela fonctionne très bien. Y at-il quelque chose que je dois faire pour ajouter <object> et à la liste des balises HTML autorisées?


Je trouve Jupyter de security.js mais pas sûr que cela fonctionne sur le serveur ou le client, et ne savez pas comment le modifier.

J'ai également essayé le fichier → Trust Notebook mais cela ne l'a pas réparé non plus.

Répondre

0

Je monkeypatched ma copie locale du site-packages/portable/statique/bloc-notes/js/main.min.js d'avoir ceci:

var sanitize_html = function (html, allow_css) { 
    /** 
    * sanitize HTML 
    * if allow_css is true (default: false), CSS is sanitized as well. 
    * otherwise, CSS elements and attributes are simply removed. 
    */ 
    var html4 = caja.html4; 

    if (allow_css) { 
     // allow sanitization of style tags, 
     // not just scrubbing 
     html4.ELEMENTS.style &= ~html4.eflags.UNSAFE; 
     html4.ATTRIBS.style = html4.atype.STYLE; 
    } else { 
     // scrub all CSS 
     html4.ELEMENTS.style |= html4.eflags.UNSAFE; 
     html4.ATTRIBS.style = html4.atype.SCRIPT; 
    } 

    /* BEGIN NEW CODE */ 
    var whitelist_key = html.match(/<span class="whitelist:([0-9A-Za-z-_]+)"\s+\/?>/) 
    if (whitelist_key && whitelist_key[1]== /* password goes here */) 
    { 
     console.log("whitelist ok"); 
     html4.ELEMENTS.object &= ~html4.eflags.UNSAFE; 
     html4.ATTRIBS['iframe::src'] = 0; 
     html4.ATTRIBS['object::data'] = 0; 
     html4.ATTRIBS['object::type'] = 0; 
    } 
    /* END NEW CODE */ 

puis dans les cellules de mon ordinateur portable ajouter <span class="whitelist:mypassword" />

Cela fonctionne pour l'instant, j'ai ouvert issue #2614 sur github.