day記法不具合でしょうか

Filed in ソフトウェア by on 2008-8-9 2 Comments  [長年日記]
adiaryのday記法って、あまり使う機会がないかもしれませんが、詳細は以下のような感じです。

-日付指定は[day:7:7日の記事]や[day:7/7]、そのほか[day:2006/6]とも書けます。

-その日を指定したい場合は単純に[day:]や [day:今日の日記]で行けます。

記事key指定機能、日付指定機能 – adiary開発日誌

この記法で、[day:2008/08/05]と書くと2008/08/05という風にリンク先が8月の日記になります。*1(私が使い方を間違えているだけかもしれません。)で、ソース(/path/to/adiary/lib/Satsuki/TextParser/TagPlugin/Tag_adiary.pm)を見てみましたが、2箇所ほど修正したほうがいいのかなという感じのもの見つけました。

--- Tag_adiary.pm.org   2008-02-07 01:50:48.000000000 +0900
+++ Tag_adiary.pm       2008-08-09 21:30:34.000000000 +0900
@@ -104,7 +104,7 @@
$url  .= $opt;
$name2 = $ROBJ->tm_printf("%Y/%m/%d", $opt);
-       } elsif ($opt =~ /^[\d\/\-]+$/) {               # 数字 と /
+       } elsif ($opt =~ /^\d+[\/\-]\d+[\/\-]{0,1}\d{0,4}$/) {          # 数字 と /
$name2 =  $opt;
$opt   =~ tr/-/\//;
my @ymd = split('/', $opt);
@@ -112,7 +112,7 @@
my $year = pop(@ymd);
unshift(@ymd, $year);
}
-               if (999 < $ymd[0] && $ymd[0] < 10000 && $ymd[1] < 13) {
+               if (999 < $ymd[0] && $ymd[0] < 10000 && $ymd[1] < 13 && $ymd[2] eq '') {
# YYYY/MM
$url .= sprintf("%04d%02d", $ymd[0], $ymd[1]);
} else {

1箇所目はそう問題にはならないかも知れませんが、”数字 か /”になってます。なので後に評価される

} elsif ($opt =~ /^\d+$/) {     # DD MDD MMDD

を潰してしまっています。

結局、[day:2008/08/05]と書いても2箇所目で評価されて8月の日記へのリンクを生成していました。ほんとは[day:20080805]とかかけたほうがいいんでしょうけど、

} elsif ($opt =~ /^\d+$/) {     # DD MDD MMDD
$name2 = $opt;
if ($opt <   100) { $day=$opt; }
elsif ($opt <  1000) { $day=substr($opt, 1); $mon=substr($opt, 0, 1); }
elsif ($opt < 10000) { $day=substr($opt, 2); $mon=substr($opt, 0, 2); }
$url .= sprintf("%04d%02d%02d", $year, $mon, $day);
} elsif ($name eq '') {

なんとなく空気読みました(笑)

フォーマットに関するドキュメントとかあったほうがいいかもしれませんね。

*1 : adiary Ver2.00でfixされました。

関連記事

Pocket

Tags:

About the Author ()

こんにちは。マツです。都内でITのお仕事やってます。iPhone/iPad/Mac/写真/家電/文具/ライフハック/クラシック/長崎(出身)など興味があります!

ご案内

記事をご覧いただきありがとうございます!
もし、当ブログを気に入っていただけましたら、Facebookページのご購読RSSのご購読をお願いしますm(_ _)m

follow us in feedly

Comments (2)

Trackback URL | Comments RSS Feed

  1. nabe より:

    あぁーこれはまずいですね。ご指摘ありがとうございます。修正させて頂きます(^^;

  2. matu より:

    nabeさん、恐縮です。今後も微力ながら協力させていただきます(^^

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です