1. 注意:jupyter notebookをadoc形式で出力可能
この記事を書いたあとでjupyter notebookをadoc形式で出力できることに気づきました。
adoc形式のファイルをincludeすることでnotebookの出力を表示できるかもしれません。
こちらについては後日ためしてみて別記事でご紹介しようと考えています。
2. Asciidoctorでjupyter notebookの出力を表示する
Asciidoctorでjupyter notebookの出力を表示したいことが多々あります。
いろいろ試してみた結果たどりついた私なりの対応方法を共有します。
実際に試してみるとなかなかに難しく、思い通りに行かないことが分かるかと思います。
多少の妥協はありますが
-
方法1、link:を使用して対象HTMLを参照する
-
方法2、raw html をincludeする
の2つの方法をご紹介します。
3. 方法1、link:を使用して対象HTMLを参照する
単純で簡単な方法です。jupyter notebookからエクスポートしたHTMLにリンクを貼る方法です。
-
notebookのスタイルが適用されている
-
別ページに飛ばないと内容を確認できない
下記のように記述すればリンクを貼ることが可能です。
link:trynotebookonasciidoctor.html[jupyter notebookからエクスポートしたHTMLはこちら]
下記のように表示されます。
4. 方法2、raw html をincludeする
asciidoctorの文書内からraw html をIncludeします。
-
別ページに飛ばなくても内容を確認できる
-
エクスポートしたHTMLに一手間加える必要がある
-
notebookのスタイルが適用されない
エクスポートしたHTMLは単体で成り立つようにScriptやCSSの情報が含まれています。
raw htmlをそのままIncludeすると上記の情報が干渉してAsciidoctorのスタイルが崩れてしまいます。
このためnotebookのScriptやCSSの情報を削除してからIncludeすることにします。
エクスポートしたHTMLは下記のような構造になっているので
<html> <body> ここから ここまでのHTMLタグをRaw HTMLとしてIncludeする </body> </html>
bodyの内部だけをincludeするようにします。
実際の表示結果は下記のようになります。
%matplotlib inline
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(100)
y = np.random.rand(100)
df = pd.DataFrame(dict(x=x, y=y,))
plt.scatter(x, y)
plt.show()
df
5. まとめ
思い通りに簡単にというのは難しいのですがなんとか表示できるようになりました。
今回は以上です。