Forgejoでpandocを使ってdocxを表示する設定方法
このエントリでは、
Forgejoでpandocを使ってdocxを表示する設定方法を示します。
また、あわせてDiffの確認できるように設定します。
Forgejoのセットアップ関連は、過去のエントリを参照ください。
UbuntuLinuxにForgejoをセットアップする手順
https://takemikami.com/2024/03/18/UbuntuLinuxForgejo.html
ForgejoでJupyteNotebook(ipynb)を表示する設定方法
https://takemikami.com/2024/03/23/ForgejoJupyteNotebookipynb.html
試した環境:
- Ubuntu Linux 22.04.3
- Forgejo 1.21.7
- pandoc 3.1.12.3
pandocのセットアップ
Forgejoでdocxを表示するためには、
docx→html変換が必要なので、pandocをインストールします。
以下コマンドでpandocをインストールします。
wget https://github.com/jgm/pandoc/releases/download/3.1.12.3/pandoc-3.1.12.3-linux-amd64.tar.gz
sudo tar zxf pandoc-3.1.12.3-linux-amd64.tar.gz -C /opt
# aptでインストールしたversionは、
# --embed-resources
オプションが使えなかったので、手動で入れてます
Forgejoにrender commandを設定
Forgejoの設定ファイルに、
ipynvのrender commandにpandocを指定します。
custom/conf/app.ini への追記内容
[markup.docx]
ENABLED = true
FILE_EXTENSIONS = .docx
RENDER_COMMAND = "/opt/pandoc-3.1.12.3/bin/pandoc --embed-resources --from=docx --to=html "
IS_INPUT_FILE = true
RENDER_CONTENT_MODE = no-sanitizer
設定ファイルを修正したら、forgejoを再起動し反映します。
sudo systemctl restart forgejo
ブラウザからForgejoでdocxファイルを開くと、ファイル内容が表示されます。
Diff用のgit設定
Forgejoから呼び出しているgit diffの結果をテキストに変換すれば、
Diff表示画面に差分が表示されるようになるので、
git diffのtextconvでpandocを呼ぶように変更します。
Forgejoから利用するgitの設定については、以下を参考にします。
Git - Config options (git.config) | Configuration Cheat Sheet | Forgejo
https://forgejo.org/docs/latest/admin/config-cheat-sheet/#git---config-options-gitconfig
Forgejoの実行ユーザのgit/attributes
設定を、以下のように指定します。
~/.config/git/attributes
*.docx diff=wordx
次のように、custom/conf/app.ini
にgitconfigの設定を追記します。
ここではattributeファイルのパス、textconvにpandocの呼び出しを指定しています。
custom/conf/app.ini への追記内容
[git.config]
core.attributesFile = /var/lib/forgejo/.config/git/attributes
diff.wordx.textconv = /opt/pandoc-3.1.12.3/bin/pandoc --from=docx --to=markdown
※ここではforgejoのホームディレクトリは/var/lib/forgejo
としています。
ブラウザからForgejoでdocxの差分表示をすると、
次のようなイメージで差分が表示されます。
差分の表示イメージ
この方法では、差分の前後を表示しようとすると、
(git diffの差分表示ではないので)
バイナリファイルがそのまま表示されてしまう問題はありますが。
以上。