このエントリでは、
ForgejoでRe:View(.re)のPreviewを行う設定方法を示します。

本エントリは、以下の記事を参考にしています。

Forgejoのセットアップは、過去のエントリを参照ください。

UbuntuLinuxにForgejoをセットアップする手順
https://takemikami.com/2024/03/18/UbuntuLinuxForgejo.html

試した環境:

  • Ubuntu Linux 22.04.3
  • Forgejo 1.21.7
  • Re:View 5.10.0

Re:Viewのインストール

ForgejoでRe:View(.re)を表示するために、
review-compileを利用するので、Re:Viewをインストールします。

S以下コマンドでRubyをインストールします。

sudo apt install ruby

以下のコマンドで、
forgejoの実行ユーザに、Re:Viewをインストールします。
※ここではforgejoの実行ユーザはforgejoとしています。

sudo su - forgejo
gem install --user-install review

Forgejoにrender commandを設定

以下のドキュメントを参考に、render commandを設定します。

Markup (markup) | Forgejo
https://forgejo.org/docs/latest/admin/config-cheat-sheet/#markup-markup

review-compileを呼び出すシェルスクリプトを用意します。

# review-compileでは、対象ファイルの拡張子が「re」であることが前提ですが、
# forgejoのrender commandから渡されるファイルは拡張子が付いていないので、
# reという拡張子を付ける処理を施します。

/var/lib/forgejo/.local/bin/render-review-html.sh

#!/bin/sh

TMP_FILE=$1
mkdir ${TMP_FILE}_d
cp $TMP_FILE ${TMP_FILE}_d/preview.re
cd $(dirname ${TMP_FILE}_d/preview.re)
/var/lib/forgejo/.local/share/gem/ruby/3.0.0/bin/review-compile --target=html preview.re
rm ${TMP_FILE}_d/preview.re
rmdir ${TMP_FILE}_d

Forgejoの設定ファイルに、
reのrender commandとして先ほどのスクリプトを指定します。

custom/conf/app.ini への追記内容

[markup.review]
ENABLED = true
FILE_EXTENSIONS = .re
RENDER_COMMAND = "/var/lib/forgejo/.local/bin/render-review-html.sh "
IS_INPUT_FILE = true
RENDER_CONTENT_MODE = sanitized

※ここではforgejoのホームディレクトリは/var/lib/forgejoとしています。

設定ファイルを修正したら、forgejoを再起動し反映します。

sudo systemctl restart forgejo

ブラウザからForgejoで.reファイルを開くと、previewが表示されます。

# どのページを開いても1章になる、画像が表示されない等の問題はありますが、

以上。