ForgejoでJupyteNotebook(ipynb)を表示する設定方法
このエントリでは、
ForgejoでJupyteNotebook(ipynb)を表示する設定方法を示します。
本エントリは、以下の記事を参考にしています。
How to render Jupyter Notebooks on Gitea | Gitea
https://blog.gitea.com/render-jupyter-notebooks/
※Giteaの記事ですが、Forgejoもほぼ同じ。
Forgejoのセットアップは、過去のエントリを参照ください。
UbuntuLinuxにForgejoをセットアップする手順
https://takemikami.com/2024/03/18/UbuntuLinuxForgejo.html
試した環境:
- Ubuntu Linux 22.04.3
- Forgejo 1.21.7
- jupyter_core 5.7.2
- nbconvert 7.16.3
jupyter-nbconvertのセットアップ
Forgejoでipynbを表示するためには、
ipynb→html変換が必要なので、jupyter-nbconvertをインストールします。
以下コマンドでpython/pipをインストールします。
sudo apt install python3
sudo apt install python3-pip
以下のコマンドで、
forgejoの実行ユーザに、jupyter-nbconvertをインストールします。
※ここではforgejoの実行ユーザはforgejoとしています。
sudo su - forgejo
pip3 install nbconvert
Forgejoにrender commandを設定
以下のドキュメントを参考に、render commandを設定します。
Markup (markup) | Forgejo
https://forgejo.org/docs/latest/admin/config-cheat-sheet/#markup-markup
Forgejoの設定ファイルに、
ipynvのrender commandにjupyter nbconverを指定します。
custom/conf/app.ini への追記内容
[markup.jupyter]
ENABLED = true
FILE_EXTENSIONS = .ipynb
RENDER_COMMAND = "/var/lib/forgejo/.local/bin/jupyter nbconvert --stdout --to html --template basic "
IS_INPUT_FILE = true
[markup.sanitizer.jupyter0]
ELEMENT = div
ALLOW_ATTR = class
REGEXP =
※ここではforgejoのホームディレクトリは/var/lib/forgejo
としています。
設定ファイルを修正したら、forgejoを再起動し反映します。
sudo systemctl restart forgejo
ブラウザからForgejoでipynbファイルを開くと、
JupyterNotebookで表示されるのと同じように表示されます。
この段階では、未だスタイルシートが適用されていない状態です。
スタイルシートの適用
以下のドキュメントを参考に、ForgejoのHTMLをカスタマイズします。
Other additions to the page | Forgejo
https://forgejo.org/docs/latest/developer/customization/#other-additions-to-the-page
HTMLヘッダーに追加する内容をとして、以下のファイルを追加します。
このヘッダーからipynbに適用するスタイルシートを読み込みます。
custom/templates/custom/header.tmpl
<link rel="stylesheet/less" type="text/css" href="/assets/css/jupyter.less" />
<script src="//cdn.jsdelivr.net/npm/less" ></script>
nbconvertで、使っているテンプレート・スタイルシートは次を参考にします。
Creating Custom Templates for nbconvert | nbconvert
https://nbconvert.readthedocs.io/en/v7.16.3/customizing.html
以下のコマンドで、
先ほどのヘッダーから読み込む、CSSファイルを追加します。
echo ".jupyter {" > custom/public/assets/css/jupyter.less
cat ~/.local/share/jupyter/nbconvert/templates/classic/static/style.css >> custom/public/assets/css/jupyter.less
echo "}" >> custom/public/assets/css/jupyter.less
この後、ブラウザからForgejoでipynbファイルを開くと、
スタイルシートが適用された状態で、
JupyterNotebookで表示されるのと同じように表示されます。
以上。