Radiant CMS にフィルタを追加する

 まず Radiant CMS 自体のインストール方法をまとめましたので参考にしてください。

Radiant CMS の導入

 Radiant CMS にフィルタを追加するには、Radiant CMS 自体が Rails でできているので、Railsプラグイン機構を利用すると簡単です。

 たとえば、「hoge」を「ほげ」に変換する HogeFilter を作るとします。

 仮に /var/www/mysite に Radiant CMS による Web サイトがあるとします。まずは、以下のようにプラグインディレクトリに FogeFilter のディレクトリを作ります。

# cd /var/www/mysite/vendor/plugins
# mkdir hogefilter

 このディレクトリ直下に「init.rb」というファイルを作ってください。これは、プラグインの中で最初に解釈されるプログラムです。この中でフィルタの登録を行います。

# 必ず TextFilter::Base を継承してください。
class HogeFilter < TextFilter::Base
  # フィルタを登録します。以下で Hoge という名前で HogeFilter を登録しています。
  register 'Hoge'

  # このメソッドで入力値を変換します。
  def filter(text)
    return text.gsub(/hoge/, "ほげ")
  end
end

 これだけです。もし、init.rb で require したいライブラリが別にあるのでしたら、上記の例ですと hogefilter ディレクトリの直下に lib ディレクトリを作ってそこに置いてください。

 フィルタを作る際の注意点は、 タグは、このフィルタ処理より前に解釈されるということです。なので、HTML タグを解さないフィルタ(RDoc のような)は、 などが上手く動かないことがあるので注意してください。