このエントリはMacとは何の関係もありません。当サイトにも使われているtDiaryに関するインストールメモです。こことは別のサイトにtDiary最新版を入れる機会があったので、手順をメモします。
CVSからtDiaryの最新版ソースをとってきてインストールすることにします。しかしそれに関する情報が少ない!
まず本家のダウンロードのページを見ると、
http://sourceforge.net/projects/tdiary/にて、CVSを公開しています
ぐらいしか書いてなくて具体的な手順はわかりません。
google等で検索すると、tDiary最新版を追い掛けるにはというtdiary-userのページが見つかるわけですが、ここに書いてある手順どおりにしても失敗します。
結局、tdiary-devel ML の過去のメールを探索して、cvs リポジトリのホスト名が変更になったことをつきとめ、以下の手順にてソースを入手できることがわかりました。
cvs -d:pserver:anonymous@tdiary.cvs.sourceforge.net:/cvsroot/tdiary login
cvs loginを実行するとパスワードを聞いてきますが、ここでは何も入力せずにリターンキーを押します。
cvs -d:pserver:anonymous@tdiary.cvs.sourceforge.net:/cvsroot/tdiary co core
次に上記のコマンドを実行すると、coreというディレクトリが作成され、そこに最新版のtDiaryがco(チェックアウト)されます。
しかし、CVSで最新を追いかけるような人には詳しい説明は要らないだろうということなんだと思いますが、あまりに不親切。古くて嘘の情報はないほうがマシですね。
最低限、設定しないといけないのは、以下の通り。
ぐらいでしょうか。自分の場合は、さらに
としました。
プラグインもCVSから取ってくることにします。
cvs -d:pserver:anonymous@tdiary.cvs.sourceforge.net:/cvsroot/tdiary co plugin
で、このとってきたプラグインのパスをtdiaryに教えてやらなければならないわけですが、これも説明がわかりにくい。tdiary.confを見ると @plugin_pathという変数があって、そこで上記のパスを指定してやればよさそうな気がしますが、そんなことをするとtdiaryはまともに動かなくなります。CVSのpluginディレクトリには、tdiaryにデフォルトで入っている必須のプラグインは含まれていないからです。
実際にはtdiary.confに次にように指定します。
@options['sp.path'] = ['path to plugins']
http://docs.tdiary.org/ja/?html_anchor.rbより。
tDiaryの各ページのURLは、「?date=YYYYMMDD」のような形式が標準です。しかし、このような明らかにCGI呼出しに見えるURLは、検索エンジンによってインデックスされにくいとされています。
というわけで、html_anchorプラグインを導入して、各ページのURLを「YYYYMMDD.html」に変換するようにしました。さらに、Apacheの設定もする必要があります。自分の場合は .htaccess で以下のように RewriteEngineを有効にしました。
RewriteEngine on RewriteBase / RewriteRule ^([0-9]+)\.html$ index.rb?date=$1
この辺は適当に。
Emacs 用の tdiary-mode.el が cvs の contrib に入っているのでインストー ルしました。
cvs -d:pserver:anonymous@tdiary.cvs.sourceforge.net:/cvsroot/tdiary co contrib
contrib の util/tdiary-mode に http.el と tdiary-mode.el があるので、 それを emacs の load-path のディレクトリにコピーし、.emacs に次の行を 追加します。
(setq tdiary-diary-list '(("my 1st diary" "http://mac.qmix.org/")
("my 2nd diary" "http://www.example.com/")))
(setq tdiary-text-directory (expand-file-name "~/tmp/td"))
(autoload 'tdiary-mode "tdiary-mode" nil t)
(autoload 'tdiary-new "tdiary-mode" nil t)
(autoload 'tdiary-new-diary "tdiary-mode" nil t)
(autoload 'tdiary-replace "tdiary-mode" nil t)
(add-to-list 'auto-mode-alist
'("\\.td$" . tdiary-mode))