nikolaでipynbファイルの公開設定を行う
Nikolaでipynbファイルを使用する方法
Nikolaでipynbファイルを使用する方法ですが、過去にdrillerさんがQiitaに書かれた記事を参考に追加することが可能です。
しかし、このままだとMathJaxが有効化されない、プロットした画像が描画されないなどの問題があったため、下記に簡単に対策を記載しておきます。
事前準備
conf.py
のPOSTS
とPAGES
にipynb
用のエントリを追加しておきます。
ipynbファイルでのブログ記事新規作成
mdファイルでの作成と同じようにnikola new_post -f 形式
で形式にipynbを指定すれば良いです。
$ nikola new_post -f ipynb
記事タイトルを聞かれるので入力するとposts
ディレクトリ下にipynbファイルが生成されます。
既存ipynbファイルの使用
-
posts
ディレクトリ下に既存ipynbファイルを配置 - Jupyter Notebookで
Menu -> Edit -> Edit Notebook Metadata
を選択 - 下記のようなエントリを追加(最初の{...}は元々metadataに書かれていたエントリを省略したものです)
{ {...}, "nikola": { "tags": "python,pydata,numpy,scipy,librosa,scikit-learn", "title": "2018/2/28にPydata Osakaで'SciPyの概要と各モジュールの紹介'というタイトルで発表しました", "date": "2018-06-16 14:3:00 UTC+09:00", "type": "text", "slug": "4", "category": "", "link": "", "description": "" } }
ブログポストの構築
markdownのときと同じようにnikola build
でブログを構築します。
nikola serve
でローカルでの確認を取ります。
$ nikola build $ nikola serve -b
MathJaxの描画
上記までで記事の追加は可能なのですが、このままだとMathJaxによる数式が描画されません。 描画するためには下記の対処を行います。
- CSPのdefault-srcに"https://cdnjs.cloudflare.com"を追加
-
過去記事でも触れたように
conf.py
のEXTRA_HEAD_DATA
を編集
-
過去記事でも触れたように
-
conf.py
で無効化されているMATHJAX_CONFIG
のオプションをコメントアウトして有効化
前者によってmathjaxがCDNから読み込まれるようになり、後者によって\$で囲われたインライン数式が描画されるようになります。(MathJaxはデフォルトでは\$によるインライン描画は有効化されていない)
画像、音声の読み込み
上記対策を行ってもipynbファイルに埋め込まれた画像、音声が描画されませんでした。これもCSPによってブロックされていたためです。対処としては、stackoverflowのこのQAを参考に、CSPのdefault-srcにdata:を追加(conf.py
のEXTRA_HEAD_DATA
を編集)することでipynbにbase64で埋め込まれたdata:imageやdata:audioが読み込まれるようになりました。
コメント
Comments powered by Disqus