検索可能に(1)失敗

tDiary の検索プラグインを導入してみる. 何種類かあるみたいなんだが, ど
うしよう. とりあえず namazu 先生に任せようか.

namazu2 の導入

$ sudo apt-get install namazu2 namazu2-index-tools libtext-kakasi-perl

諸々 install されました.

sqeeze.rb の導入

動的に HTML を生成するのではなくて, plugin で生成しておきます. これを使用して namazu の index を作成するわけです. squeeze.rb 自体は同梱されているので, plugin 選択画面で選択するだけ.

… squeeze.rb 直打ち(CGI 実行) は駄目, コマンド実行も駄目, おやー?

tdiary を更新したらイケた. うーんと?

コマンド実行でのエラーは

undefined method `+' for nil:NilClass
/usr/share/tdiary/tdiary.rb:485:in `load'
/usr/share/tdiary/tdiary.rb:402:in `initialize'
public_html/diary/squeeze.rb:292:in `new'
public_html/diary/squeeze.rb:292

行頭のエラーは結構 FAQ らしく,

  • Revision: 1.11 以降を使用
  • @options['squeeze.output_path'] を指定

のどちらかで回避できるらしいが, この squeeze.rb, Revesion:1.18 なんですけど.

ruby の debug モードで主力すると, erb_fast が無い, と言われた. おや? …あ, これは良いのか. erbscan を入れていたら, それを使う, って設定ですね.

tdiary.rb の冒頭に

begin
        require 'erb_fast'
        ERbLight = ERB
rescue LoadError
        begin
                require 'erb'
                ERbLight = ERB
        rescue LoadError
                require 'erb/erbl'
        end
end

ってあるし.

Exception `NoMethodError' at /usr/share/tdiary/tdiary.rb:485
- undefined method `+' for nil:NilClass

な訳で, 該当行を読むとやっぱり data_path.

うーんと…あ, 場所によっては security エラーとか出よるな.

この方針やめ. また今度