理工系研究者のための Mac OS X, Windows, Linux メモ
 

ハイパー日記システム

参考:ハイパー日記システム

まず、ari's Page に置いてある

http://www.nijino.com/ari/programs/hnf-mode/

から最新版emacs-lispの

hnf-mode-020716.tar.gz 17-Jul-02 12:13 18k

をダウンロードする。

また、http://www.h14m.org/dist/ からhns 本体

hns-2.10-pl3.tar.gz

をダウンロードした。日記ディレクトリを

~/diary/

ウェブ日記ディレクトリを

~/Sites/diary/

とした。

次にインストール

% tar zxvf hns-2.10-p13.tar.gz
% cd hns-2.10-p13/
% sh hns-setup.ja

対話しながら設定。~/diary/, ~/Sites/diary/ に diary というファイルが存在するとインストールに失敗するので、あらかじめ確認しておく。emacs の calender で日記を付けていると diary というファイルが存在するので注意。

次に日記入力のためのemacs-lispをインストール。

% tar zxvf hnf-mode-020716.tar.gz
% cp hnf-mode/*.el ~/Library/emacslisp/

必要かどうかは分からないが hnf-mode.el を開いて、41行目を

「修正前」(defcustom hnf-html-dir "~/public_html/diary"
「修正後」(defcustom hnf-html-dir "~/Site/diary"

にしておいた。

そして .emacs に次の設定を書いておく。

;;HyperNikkiSystem(hns)の設定
(autoload 'hnf "hnf-mode" nil t)
(autoload 'hnf-mode "hnf-mode" nil t)
(setq auto-mode-alist (cons '("\\.hnf$" . hnf-mode) auto-mode-alist))
(setq hnf-diary-dir "~/diary")
(setq hnf-html-dir "~/Sites/diary")
(setq hnf-diary-year-directory-flag t)
;コマンドの補完機能を働かせる
(setq hnf-variable '(("TENKI") ("BASHO") ("TAIJU") ("TAION")))
(setq hnf-rlink '(("h14m") ("ari")))
(setq hnf-cat '(("Linux") ("Nikki")))
(setq hnf-group '(("myself") ("friend")))
(setq hnf-class '(("emphasis") ("hidden")))
(setq hnf-marks '(("(^^)") ("(-_-)") ("(^^;") ("(;_;)") ("(T_T)")))
(setq hnf-alias '(("Be") ("hns")))
(setq hnf-initial-function (function (lambda () (insert "OK\n\n"))))
(setq hnf-hour-not-today 4) ;午前4時までは前日の日記を開く
(autoload 'hnf-insert-diary-entry "hnf-mode" nil t)
(add-hook 'calendar-load-hook
(function
(lambda ()
(define-key calendar-mode-map "iD" 'hnf-insert-diary-entry))))
;hnf-mark-diary-entries を実行すると、日記を記入してある日にはマークが付く
(autoload 'hnf-mark-diary-entries "hnf-mode" nil t)
(add-hook 'today-visible-calendar-hook 'hnf-mark-diary-entries)
(add-hook 'today-invisible-calendar-hook 'hnf-mark-diary-entries)

それから、APELをリンク先から持って来てインストールする。インストールは、

% tar zxvf apel-10.3.tar.gz
% sudo make
% sudo make install

ここでインストールされた poe.elc をemacsが見つけることができないようだったので .emacsに検索パスを加えた。

(setq load-path
(append '("~/Library/lisp" "~/mylisp" "/sw/etc/lisp/emacs/21.2/site-lisp/emu")
load-path))

あとは emacs を立ち上げて、

M-x hnf

とすると、その日の日記が書ける。その日記のファイルは ~/diary/2002/d**.hnf のように保存される。もし num日前の日記を開きたいときは、

C-u num X-x hnf

とする。emacs の calender と連携するには、

M-x calender

でカレンダーを開いて、日付けを選択して i D を押す。i d の場合は従来の ~/diary に書き込む式の日記なので注意。詳細に付いては、hnf-modeと一緒に入っているREADME.jpに詳しく書いてある。ユーザーディレクトリでCGIを動かすために、

/etc/httpd/users/user_name.conf

を開いて、

<Directory /Users/user_name/Sites/diary>
AllowOverride FileInfo AuthConfig Limit
Options +ExecCGI
AddHandler cgi-script .cgi
</Directory>

を加えた。後は文法をチェックして、

% httpd -t

Apacheを再起動。

% sudo /usr/sbin/apachectl restart

~/Sites/diary/config.ph において、

# diary direcotry
$DiaryDir = "/Users/user_name/diary";
$MyDiaryURI = "http://127.0.0.1/~user_name/diary/";
$IncludeDir = "/Users/user_name/Sites/diary";

$MyDiaryURIの最後の"/"は付けておくこと。

Error Occured: can't append : /Users/user_name/diary/log/referer_log at lib/SimpleDB/Append.pm line 38.

というエラーが出て困っていたが、これはURLを

http://127.0.0.1/~user_name/diary/index.cgi

から、

http://localhost/~user_name/diary/index.cgi

に直したらうまくいった。

日記のファイルは、~/diary/ 以下に保存されるが、このファイルの作成日の情報も重要なので、バックアップを採ったり移動させたりする場合には、tar や cp -p を用いた方が良い。