朝顔日記

rNote の記事作成用の何か

2005-01-02

この日記を rNote に移行したわけですが、私はローカルなエディタで書くのが好きなのでそのための環境を構築する必要があります。というわけで、まずはファイルを作成するところから。

rNote はひとつの記事が1つの xml ファイルから生成されます。デフォルトでは、entries ディレクトリ以下にサブディレクトリを作ると、それがそのままカテゴリーになるのですが、私の場合、ひとつの記事が複数のカテゴリーに属せるようにしたいのでこの機能は使っていません。代わりにもろもろの事情により、entries 以下には、2003 とか、2004 といった記事の年代を示すサブディレクトリと、日記以外の何か(何)という意味合いの etc というサブディレクトリがあります。2004とかの下には、01~12までの月ごとの記事を納めるサブディレクトリがあります。で、月ごとにディレクトリにその日の記事をおくわけです。で1日に複数の記事を書くこともあるので、ファイル名の末尾に a とか b とかをつけています。例えば、2005年1月2日にはじめて書くこの記事は、entries\2005\01\diary_050102a.xml というファイルに書かれることになります。もし二つ目ならば、entries\2005\01\diary_050102b.xml です。月が変わるごとにこれらのディレクトリを作ったり、あるいは日記を書くたびに、それなりのファイル名で記事を作るのは面倒です。

ということで、これらのことをバッチファイルひとつ実行で自動で出来るようにするというのが、今回の指令(何)です。というわけで、作ったのが以下の php スクリプト、名づけて diary.php です。なにも php でやる必要はないのですが、私が今一番書きやすいのが、php スクリプトなので。:p)


<?php
$entries = "d:\\web\\noasobi\\diary\\entries\\";
$openbat = "d:\\web\\noasobi\\diary\\ftp\\open.bat";
$editor = "c:\\bin\\xyzzy\\xyzzycli.exe"

$year = date("Y")."\\";
$month = date("m")."\\";
$day = date("d");
$entry = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");

$dh = @opendir($entries.$year.$month);
if($dh==0){
  mkdir($entries.$year.$month);
  $dh = opendir($entries.$year.$month);
}
closedir($dh);
for($i=0; $i<25; $i++){
  $file = $entries.$year.$month."diary_".date("y").date("m").$day.$entry[$i].".xml";
  if(!file_exists($file)){
    break;
  }
}

$fp = fopen($openbat,"w");
fwrite($fp, $editor." ".$file."\n");
fclose($fp);
?>

これで、その日の初めての記事書きなら、diary_yymmdda.xml が、ふたつ目なら、diary_yymmddb.xml が、26個目なら、diary_yymmddz.xml が指定のエディタで開かれるはずです。まぁ、27個以降はどうするかという問題もありますが、多分そんなに書くことはないので大丈夫でしょう。:p)

で、このスクリプトを呼び出して、エディタを起動させるのが、以下の diary.bat です。パスの通ったところにおいておきます。


@echo off
php -q d:\web\noasobi\diary\ftp\diary.php
call d:\web\noasobi\diary\ftp\open.bat

diary.php の置き場所によってパスを適宜書き換える必要があります。

次回は、あちこち(何処)からどうやって更新するかとか、どうやってテンプレ(何)を挿入するかとかが指令(何)です。

「rNote の記事作成用の何か」へコメントをつける

書き込み時の挙動について
URI らしき文字列には自動的にリンクが張られます。また "<" や、">" は実体参照化されます。
スパム対策のため、リファラを切っていると投稿できません。

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2005/01/diary_050102a.html