はてなからtDiaryへ移転する際につまづいたところをメモしておく。
レンタルサーバのサービスが既にtDiaryをインストールする仕組みを用意してく れていたので、基本的なインストールはとても簡単だった。
まず、ツッコミ機能をオフにしようとしたが、オフにする仕組みはないようだっ たので、とりあえず、スタイルシートを使って隠すことでごまかした*1。
次に、トラックバックのプラグインを有効にして、受信のテストをしたところ、 文字化けした。Web検索して調べてみると、Rubyライブラリの「Uconv」がないためらしい。 ここのサーバにはインストールされていないようなので、ソースをダウンロード して、サーバにアップロードし、シェルアカウントでコンパイルして、 tdiary.rbと同じ場所に置いたところ解決した。
過去の日記を移転しようとして、tDiaryの記法が自分には使いにくいことに気付 き、途方にくれたが、etDiary スタイルという別の記法を使えることに気付き、そちらを使うことにした。
これで移転の作業を進めていたところ、title_tag.rbプラグイン の挙動が変だった。「サブタイトル1, サブタイトル2, サブタイトル3」と なるはずのところが、「サブタイトル1,,,,サブタイトル2,,,,,, サブタイトル3」 などとなってしまった。これまた途方にくれたが、同様に、recent_list.rbプラグイ ンの挙動も変だったことから、原因が予想できた。
どうやら、パラグラフ(<p>...</p>)が全部セクション扱いされて しまっているようだ。etdiary_style.rbのeach_sectionイタレータがパラグラフ ごとにyieldするようなので、セクションサブタイトルのないパラグラフでは yieldしないように改造してみたところ、今度はパラグラフの本文が表示されな くなってしまった。
きちんと直すのは難しそうだったので、title_tag.rbとrecent_list.rbの方を改 造した。each_sectionのイタレーション内で、サブタイトルが空のときはnextす るようにした。
これでうまくいったかのように見えたが、RSSが変だというご指摘のメールを頂 いた。makerss.rbプラグイ ンも直す必要があるのだった。同じように改造して仮対処したが、この方法 では、セクションの概要がRDFファイルに書き出されない。ちゃんと直すのは面 倒そうだ。同じ原因で、トラックバックを送信するときにも概要が送られないだ ろうと予想される。
それから、html_anchor.rbプラグイ ンを有効にしてみたところ、IEでは普通に動作するが、Firefoxでアクセス すると、どういうわけか、2回に1回必ず、応答がなく空白のページになってしま うという異常が発生する。私の環境だけなのかがよくわからない。
html_anchor.rbを使うにあたって、Apacheでmod_rewriteを使うのが推奨とされ ているが、ここのサーバには残念ながらインストールされていないので、「Actionを利用する」 で説明されている方法でやっているが、これが原因なのだろうか。
これは他にも解決方法がありそうだ。http://example.com/diary 自体をCGIにす れば、「/20041114.html」の部分を「PATH_INFO」で取得できるので、これを使 うようにtdiary.rbを改造することができるはずだ。プラグインとしても実現可 能だろうか。ただ、この方法でこのURLだと、トップディレクトリにtdiaryのファ イルを展開することになりかねないが、それは避けたいところ。
ところで、旧日記の移転は全部は完了していない。とりあえず10月までさかのぼっ て移転させてみた。
さきほど、hatenaス タイルというものがあると知った。これは使える!と思ったが、互換性のな い点として、パラグ ラフを区切るには2行の空行を入れないといけない仕様らしい。ちょっとこ れは残念。旧日記を移転するには修正点が多すぎるなあと。
2行の空行でパラグラフ区切りというのには馴染めないが、逆に、はてなの、改 行が区切りになるというスタイルも実はあまり好みでない。LaTeXのスタイル、 つまり、1個の改行には意味がなく、空行がパラグラフの区切りとなるのが好み だ。これは etDiaryが目指したものか。ただ、etDiaryの、行頭に「<」を書 くと特別な意味になってしまうため、行頭に空白を空けないといけないのは、好 みでない。
はてなの「((...))」記法は便利だった。tDiaryのfootnote.rbプラグイン の記法はいまいち書きにくい。
はてなの記法は便利だったが、物足りないところもあった。行頭に「-」が続く と ULエレメントとなるわけだが、LIに続けてBLOCKQUOTEを書きたいことが多かっ たので、そのときは一旦整形なしモードに移って手でHTMLタグを書いていた。
BLOCKQUOTEのCITEを「<blockquote cite="..." title="...">」で書く記 法を使っていたが、これがはてなの機能だったと気付いた。てっきり、HTMLの機 能かと思っていた。
この記法も書き辛いものだった。改行を使ってもっとシンプルに書けるのではな かろうか。たとえば、
[[ 引用先の表題 http://foo.example.com/ 引用文本文、 最初の段落 引用文本文、 2つ目の段落 ]]
のようにして、最初の空行までをCITEに使う仕様とか。ついでに、CITEの部分に <div class="cite">を入れてスタイルシートで見た目を調整できるように できるとよいなあ。
それから、今回の移転で、記法を書き換える作業のついでに、画像を埋め込んで いた部分に、<div class="figure"> を入れて、キャプション付きで図を 埋め込むスタイルを作りこんでみた。なかなかよい。これをもっと手軽に書ける ようにしたい。たとえば、
<< キャプション文字列 http://画像のURLその1 http://画像のURLその2 >>
のような記法などどうか。
Wikiとかはよく知らないので、このあたりはもう既にいろいろな記法があるのだ ろうか。
あと、パラグラフの先頭にインデントを入れないCSSにしているのは、 BLOCKQUOTEの直後にインデントが入るのを避けたい場合があるためだ。それはた とえば、BLOCKQUOTEの直後に「となっているが」などの文で続けたい場合などだ。 これはどうしようもないのだろうか。
そのうち自分流のtDiary用スタイルを作ってみたい*2。
tdiary.confに「@hide_comment_form = true」と書き込むことでスタイルシートを使わずにコメント欄を消す方法があります
http://takagi-hiromitsu.jp/diary/20041114.html う〜ん、何が理由かは知りませんが、何処かで勘違いされたようですね。 BLOCKQUOTEはHTMLタグで定 ...
[システム] apacheのmod_actionsとfirefoxの相性?はてなの騒動?で移転された高木浩光さんの日記で、「tDiaryへの移転でつまづいたところ」の中に”html_anchor.rbプラグイン”について書かれている。 うちもこのプラグインを同じようにapacheのmod_actionsと併用で導入..