Wenn jemand interessiert ist, hier ist es, was ich getan habe, um ein in sich geschlossenes Notebook zu teilen.
Meine unausgegorene Lösung war die Markdown-Zelle und legen Sie eine Code-Zelle
display(HTML(open('example.svg').read()))
ersetzt die Richtlinie ![](example.svg "Example")
Markdown zu spalten.
Da der Dateiinhalt in einer Ausgabezelle gespeichert wird, kann das gespeicherte Notizbuch in einer geschlossenen Weise mit einem Dienst wie nbviewer mit all seinen Einschränkungen geteilt werden. Wenn sich jemand dafür entscheidet, mein Notebook herunterzuladen, dann lädt es auch meinen SVG-Code herunter, nicht wahr?
OTOH, wenn ich einen Dienst wie Microsoft Azure Notebooks Aktie mit (das zumindest in dem aktuellen, Frühjahr 2017 „Vorschau“ Inkarnation jemanden mit einem Microsoft-Konto kann mit meinem Notebook zu interagieren) jeden, der versucht, um diesen Code ausführen Zelle wird verletzt - es ist jedoch möglich, eine Cross-gehostete Lösung zu implementieren, die die Markdown-Bild-Direktive verwendet, die auf eine Datei verweist, die über HTTP bedient wird. Aber dieses Kreuz-Hosting ist, was ich in der ersten Instanz zu vermeiden versuchte, ... fragen Sie mich nicht warum: -. (...
Wenn Zellen HTML akzeptierten, konnte ich den Dateiinhalt einfach in die Zelle kopieren. - "%% html" -Zellenmagie ist keine plausible Lösung, da ich nicht garantieren kann, dass das Notebook, wenn es verteilt wird, auf die gleiche Erweiterung zugreifen kann, mit der ich die beschämend lange Eingangszelle verstecken würde. - Andere Möglichkeiten, die auf 'display()' basieren, sind jedoch mit einer Codezelle verbunden, die entweder eine externe Referenz oder den gesamten Dateiinhalt freilegt ... - Die hypothetische Markdown-Lösung spricht mich an, weil die gleiche Zelle entweder nicht gerendert ist (SVG Code sichtbar) oder gerendert (NUR das Bild ist sichtbar). – gboffi