Markdown を IPython Notebook にオンラインで変換する nbify というWebサービスをリリースしました。
Markdown で記述した記事や教材を、IPython Notebook 形式に変換してダウンロードすることが出来ます。または、ダウンロードせずに nbviewer 上で直接見ることも出来ます。
nbify がどのような働きをするのか、この記事を使って解説します。
例としてこれから matplotlib に関する説明を少しだけ挟みます。
[Sample] matplotlib の使い方
pip install
で matplotlib をインストールしよう。
%matplotlib inline
import matplotlib
matplotlib をインストールし終えたら、自由にグラフを描いてみよう。
以下のコードは、 matplotlib.org: mplot3d example code: 2dcollections3d_demo.py のサンプルを使用している。
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.gca(projection='3d')
x = np.linspace(0, 1, 100)
y = np.sin(x * 2 * np.pi) / 2 + 0.5
ax.plot(x, y, zs=0, zdir='z', label='zs=0, zdir=z')
colors = ('r', 'g', 'b', 'k')
for c in colors:
x = np.random.sample(20)
y = np.random.sample(20)
ax.scatter(x, y, 0, zdir='y', c=c)
ax.legend()
ax.set_xlim3d(0, 1)
ax.set_ylim3d(0, 1)
ax.set_zlim3d(0, 1)
plt.show()
.ipynbへ変換
この記事のMarkdown版のURLを nbify のフォームに入力して、[View on nbviewer] を押すと、nbviewer でこの記事を見ることが出来ます。もしくはこのリンクから、直接nbviewerにアクセス出来ます。
Qiitaでは、記事のURLに
.md
を付け足すことで、内容をMarkdown形式で見ることが出来ます。
実際に付け足すと、以下のようになります。
http://qiita.com/uetchy/items/221da126f92e7c016beb.md
ブックマークレット
Qiitaの記事をその場でIPython Notebookに変換するブックマークレットを作りました。
javascript:(function(){window.location.href="http://nbviewer.jupyter.org/url/nbify.herokuapp.com/"+window.location.href+".md";})();
このコードをブックマークに追加して、Qiitaの記事を開いたページで実行すると、nbviewerが開いて記事を.ipynb形式で見れます。
md2ipynb
MarkdownをIPython Notebookに変換するために、md2ipynb という小さなライブラリを作りました。今のところ、Pythonのコードブロックにしか対応していませんが、他の言語を追加することは難しいことではないでしょう。
結論
- 記事中のコードをその場で実行しつつチュートリアルを読み進めることが出来るようになりました
- インタラクティブにコードを弄って挙動の変化を確かめることが出来るので、手を動かして覚えたい時に良いかもしれません