2018-10-17

[Nikola] Jupyter 埋め込みプラグインを改修した

warning
  • pathlib を使っているので Python 3.4 以上でないと動作しません。

Nikola では プラグインを導入することで Jupyter Notebook ファイルを記事中に埋め込めます。

公式ではnotebook_shortcodeというプラグインを導入するとできるってことなんですが、 現在(2018/10) 対応しているのが v7 (最新は v8) なので微妙に書き換えないと動きません。 notebook_shortcodeInsert a Jupyter/IPython notebook into a post using shortcodehttps://plugins.getnikola.com/v7/notebook_shortcode/

ほかにもいろいろ気になるところがあったので改修して GitHub に公開しました。

GitHub - righ/nikola-jupyter-shortcode: A Nikola plugin for embedding Jupyter notebook file to a postA Nikola plugin for embedding Jupyter notebook file to a post - GitHub - righ/nikola-jupyter-shortcode: A Nikola plugin for embedding Jupyter notebook file to a posthttps://github.com/righ/nikola-jupyter-shortcode

変更点は以下。

  • version 8 でも動くようにした
  • shortcode名を notebook から jupyter にした
  • パスの起点がプロジェクトルートになっているため、記事と同じディレクトリから参照できるようにした。

導入方法

plugins ディレクトリに リポジトリをクローンしてリポジトリ内の requirements.txt をインストールするだけです。

  1. ブログディレクトリのトップに移動する
  2. git clone https://github.com/righ/nikola-jupyter-shortcode plugins/jupyter-shortcode
  3. pip install plugins/jupyter-shortcode/requirements.txt
info
  • これはおそらくほとんどの Nikola プラグインについて言えることですが、 nikola plugin -i で導入されたプラグインは Git で管理されていない(.gitがない)ので、各自のリポジトリにコミットして管理していくという思想だと思います。

ブログ用の リポジトリで requirements.txt を置いている場合は、 -rplugins/jupyter-shortcode/requirements.txt のような行を追加します。

使い方

記事中に以下のように記述します。

ちなみに PCA の記事では {{% jupyter ./pca1.ipynb %}} のように指定してます。

warning
  • コードブロック中でも shortcode は実行されちゃいます。