IPython-Notebooks in einem WordPress-Blog veröffentlichen

Wie in einem vorangegangen Artikel erwähnt, bieten IPython-Notebooks hervorragende Möglichkeiten Arbeiten zu publizieren. Einfügungen können als $\LaTeX$-Code oder durch MathJax vorgenommen werden, Bild- und Videomaterial kann ebenso wie Audiosequenzen in die Notebooks aufgenommen werden. Ein Thema lässt sich so auf sehr ansprechende, multimediale Weise darstellen.
Um eine Notebook-Datei für eine Veröffentlichung in ein gängiges Format zu konvertieren, ruft man auf der Kommandozeile folgendes auf:

> ipython nbconvert --to html input.ipynb

Man erhält ein statisches HTML-Dokument aus dem Notebook input.ipynb, durch Angabe von pdf, latex etc. können selbstverständlich auch andere Formate erzeugt werden.
Ein auf diese Weise erstelltes HTML-Dokument lässt sich nun ohne großen Aufwand in einem WordPress-Blog einfügen. Dazu wird lediglich ein Plugin benötigt, welches HTML-Code direkt im Editor einfügen kann. Hier wird die Vorgehensweise anhand des Plugins EmbedIt Pro beschrieben:

EmbedIt Pro:
Embed any HTML code (Youtube, UStream or whatever HTML) in a post, page or widget, deciding precisely where to embed it, either on-the-fly from custom fields OR from your saved HTML Code Snippets. Super easy for newbies but powerful for developers, since it supports not only shortcodes but PHP functions too to return or display the snippets in your templates.

Nach der Installation des Plugins findet man im Dashboard den Punkt HTML Snippets. Wählt man dort Add New kann man nun den HTML-Code auf der vorgesehenen Fläche einfügen (zum bsp. durch vorherige Selektion mit der Maus). Bestätigt man den Code durch klicken auf Veröffentlichen, erhält man einen Shortcode, der direkt im zu erstellenden Artikel eingefügt werden kann.

Ohne weitere Nachbearbeitung kann man mit dem beschriebenen Workflow seine IPython-Notebooks in einem WordPress-Blog veröffentlichen, dies spart Zeit und erhöht die gestalterische Qualität der Publikation.

IPython Notebook

Das IPython Notebook ist eine web-basierte, interaktive Plattform, um Programmcode, Text, mathematische Formeln und grafische Ausgaben in einem einzelnen Dokument zu vereinen. Notebooks sind normale Dateien, die einfach in andere Formate wie HTML oder PDF etc. umgewandelt werden können. Außerdem können einzelne Notebooks der Öffentlichkeit als statische Webseite zugänglich gemacht werden ohne das der Betrachter etwas zusätzlich installieren muß. Weitere Informationen zu den umfangreichen Möglichkeiten von IPython und Notebooks erhält man auf der IPython-Homepage[ 1].

Um Notebooks nutzen zu können, ruft man in einer Konsole das Kommando

ipython notebook --no-browser

auf, dies startet den lokalen Notebook-Server. In einem Web-Browser kann man sich nun über

IPython Notebook in Google Chrome

IPython Notebook in Google Chrome

http://127.0.0.1:8888 mit dem Server verbinden und gelangt zum IPython Dashboard, von wo aus ein neues oder bestehendes Notebook ausgewählt werden kann. Im Notebook selbst hat man nun über eine Navigationsleiste Zugriff auf verschiedene Funktionen: Der Punkt Cell gestattet z.B. eine Zelle als Markdown auszuwählen. Eine solche Zelle dient der Dokumentation des Kodierungsprozesses und bietet dafür ausgefeilte Möglichkeiten an. So kann Text mit beliebigem HTML-Code formatiert werden, Bilder und andere Multimedia-Inhalte über html5-Elemente eingefügt und mathematische Formeln in $\LaTeX$-Notation angegeben werden. Der Punkt Help bietet Links zur Onlinehilfe von Python, IPython, NumPy, SciPy, MPL und SymPy an.

Über Magics können bestimmte Funktionen auch nach dem Start des Kernels noch unterstützt werden, die ein spezielles Setup für eine reibungslose Zusammenarbeit mit IPython erfordern und deshalb eigentlich beim Aufruf von IPython in der Kommandozeile übergeben werden müssen. Statt des Kommandozeilenaufrufs:

ipython notebook --no-browser --matplotlib inline

können durch Aufruf des Magics %matplotlib inline die Plot-Funktionen auch nachträglich unterstützt werden. Die Angabe des Backends inline bettet statische Bilder innerhalb des Notebooks ein, statt ein separates, interaktives Fenster zu öffnen.