) {
if ($flag == 0) {
(/\[(\d+)-(\d+)-(\d+)-/);
my $cdate = $1 * 10000 + $2 * 100 + $3;
$flag = 1 if ($stop_date > $cdate);
}
$ostr .= $_ if ($flag);
}
close F;
print "update ";
}
output_to_file("$outputdir/cl.itemlist", \$ostr);
}
### 日付で参照リンク
sub datestr2anchor {
my ($d) = @_;
if ($page_mode == 2) { # アイテムモード
$d =~ s!\[(\d{4}-\d\d-\d\d(-\d+)?)\]![$1]!g;
} elsif ($day_page_mode or $page_mode == 1) { # 日モード
$d =~ s!\[((\d{4}-\d\d-\d\d)(-\d+)?)\]![$1]!g;
} else { # 月モード
$d =~ s!\[((\d{4}-\d\d)-\d\d(-\d+)?)\]![$1]!g;
}
return $d;
}
sub datestr2url {
my ($d) = @_;
if ($page_mode == 2) { # アイテムモード
$d =~ s!(\d{4}-\d\d-\d\d(-\d+)?)!$1.html!;
} elsif ($day_page_mode or $page_mode ==1) { # 日モード
unless ($d =~ s!((\d{4}-\d\d-\d\d)-\d+)!$2.html\#$1!) {
$d =~ s!(\d{4}-\d\d-\d\d)!$1.html!;
}
} else { # 月モード
$d =~ s!((\d{4}-\d\d)-\d\d(-\d+)?)!$2.html#$1!;
}
return $d;
}
### 文字列置き換えから一時的に退避し、後に復帰させる
my $num_of_escaped_string;
my %escaped_string;
my $num_of_escaped_src;
my %escaped_src;
my $num_of_escaped_plugin;
my %escaped_plugin;
sub escape_string {
my ($strp) = @_;
### HTML エスケープ - 文字列そのまま
my $btag = '_HTML_START_\n'; # 開始マーク
my $atag = '_HTML_END_\n'; # 終了マーク
$num_of_escaped_string = 0;
$$strp =~ s!$btag(.*?)$atag!
$escaped_string{++$num_of_escaped_string} = $1,
sprintf("\x5\x13%d\x3", $num_of_escaped_string)!gsmxe;
$$strp =~ s!\[(literal|sic|esc)\](.*?)\[/\1\]!
$escaped_string{++$num_of_escaped_string} = $2,
sprintf("\x5\x13%d\x3", $num_of_escaped_string)!gsmxe;
### ソースエスケープ - "&" や "<" などを置換し pre を付ける
$num_of_escaped_src = 0;
$$strp =~ s!\[src\](.*?)\[/src\]!
$escaped_src{++$num_of_escaped_src} = $1,
$escaped_src{$num_of_escaped_src} =~ s/&/&/g,
$escaped_src{$num_of_escaped_src} =~ s/</g,
$escaped_src{$num_of_escaped_src} =~ s/>/>/g,
sprintf("\x6\x13%d\x3", $num_of_escaped_src)!gsmxe;
### プラグインエスケープ
$num_of_escaped_plugin = 0;
$$strp =~ s!{{(.*?)}}!
$escaped_plugin{++$num_of_escaped_plugin} = $1,
sprintf("\x7\x13%d\x3", $num_of_escaped_plugin)!gsmxe;
}
sub unescape_string {
my ($strp) = @_;
### プラグインアンエスケープ - 実行!
$$strp =~ s|\x7\x13(\d+)\x3|eval($escaped_plugin{$1})|ge;
### ソースアンエスケープ - pre 追加
#$$strp =~ s|\x6\x13(\d+)\x3|$escaped_src{$1}
|g;
$$strp =~ s|\x6\x13(\d+)\x3|$escaped_src{$1}
|g;
### HTML アンエスケープ
$$strp =~ s|\x5\x13(\d+)\x3|$escaped_string{$1}|g;
}
### inside referrer のリンク作成
sub get_inside_ref {
my ($id) = @_;
if (defined $inside_ref{"$id"}) {
return map {datestr2anchor("[".$_."]")}
(sort {$b cmp $a} keys %{$inside_ref{"$id"}});
}
return ();
}
### カテゴリページのファイル名を生成
sub get_category_filename {
my ($cn) = @_;
to_utf8_cl(\$cn) if (not $utf8_mode and $cn =~ /[\x80-\xff]/);
$cn =~ s/([^0-9a-z_-])/unpack('H2', $1)/gei;
$cn =~ tr/A-Z/a-z/;
return "cat_$cn.html";
}
### エントリヘッダーの生成
sub make_entry_header_html {
my ($eh, $ymd) = @_;
if ($show_day_of_week == 1) { ### 日付の後ろをどうするか?
# 曜日(Mon, Tue, ...)を追加: "2000-10-19" --> "2000-10-19 Thu"
$eh .= " ".get_day_of_week($ymd);
}
return qq($eh);
}
### アイテムヘッダーの生成
sub make_item_header_html {
my ($ih, $ymdi) = @_;
# 前に足すもの
my $ihb = "";
if ($item_header_style == 0 or $item_header_style == 1) {
$ihb = $item_header_mark;
if ($use_item_anchor == 1) {
my $day_url = datestr2url($ymdi);
$ihb = qq($ihb);
}
$ihb .= " ";
}
# タグで囲む
$ih = qq($ihb);
# 後ろに足すもの
if ($item_header_style == 0 or $item_header_style == 2) {
$ih .= ":";
}
return $ih;
}
### make category link(anchor) string for item header
sub make_cat_link_html {
my ($catp) = @_;
my $catstr;
if (defined $catp) {
if ($output_cat_pages) {
$catstr =
join("", map
{"[$_]"}
@$catp);
} elsif ($cat_page_cgi eq "") {
$catstr = join("", map {"[".$_."]"} @$catp);
} else {
$catstr =
join("", map
{my $tmp = $cat_page_cgi;
$tmp =~ s/%%CAT%%/urlencode($_)/ge;
"[$_]"}
@$catp);
}
}
return $catstr;
}
### 指定されたファイルへ文字列を出力
sub output_to_file {
my ($fname, $contp) = @_;
$$contp =~ s//$replace_once/;
if ($update_by_size == 1 and -s $fname == length($$contp)) {
return;
}
if ($utf8_mode) { # ad hoc 050821
$$contp =~ s/;charset=EUC-JP">/;charset=UTF-8">/;
}
print "output to \"$fname\"\n" if (!defined $quiet_mode);
open(F, "> $fname") || die "$fname: $!\n";
binmode(F);
print F $$contp;
close(F);
}
### URL ENCODE
sub urlencode {
local ($_) = @_;
s/([^ \n\.\*\-_A-Z0-9])/sprintf("%%%02lX",unpack("C",$1))/gie;
s/ /+/g;
return $_;
}
### modularized for i18n
# delete content of this func,
# if you use utf8 file and don't use Jcode.
sub to_utf8_cl {
my ($sp) = @_;
use Jcode;
$$sp = Jcode->new($$sp)->utf8;
}
chalow-1.0/ChangeLog 0000644 0000766 0000766 00000163561 10706133621 012640 0 ustar yto yto 2007-10-19 YAMASHITA Tatsuo
* version 1.0[リリース]:
chalow 1.0 を公開します。
長いことほったらかしなのが気がかりだったので、
最低限の修正でとりあえず1.0を出しておくことにします。
ソースも oldtype で人様に見せれるものではないですが、
使えればよいや、ということで。
現在は、1.0とかなりかけ離れた新バージョンを作っています。
というか、いじっていると結構かけ離れてしまった、というのが真相です。
* clsearch.cgi:
URLなどを修正。
* conf/utf8/cl.conf:
URLなどを修正。
* cl.conf:
URLなどを修正。
* README:
ちょろっと修正。
* chalow (unescape_string):
Tatsuya Kinoshita パッチを適用。
2005-08-21 YAMASHITA Tatsuo
* version 1.0rc6[リリース]:
公開。
* chalow:
RSSに最近何日分表示するかを指定できるようにした。
0の場合は $opt_topn と同じになる。
[src]
# RSSに最近何日分表示するか(0の場合は $opt_topn と同じ)
$rss_topn = 0;
[/src]
(write_rss_file): ←上記のためにこの関数いじった。
* conf/utf8/cl.conf:
御指摘頂いたものを修正しました。ありがとうございました。
●文字化け修正。
* chalow (output_to_file):
御指摘頂いたものを修正しました。ありがとうございました。
●utf8 modeのとき、chalowスクリプト内のテンプレートの、charset 指定を
デフォルトの EUC-JP ではなく UTF-8 にするようにした。ad hoc。
[src]
if ($utf8_mode) {
$$contp =~ s/;charset=EUC-JP">/;charset=UTF-8">/;
}
[/src]
* chalow:
御指摘頂いたものを修正しました。ありがとうございました。
●usageメッセージで、-cオプションのところの「(default "cl.conf")」
は昔の仕様なので削除。
●blockquoteの前後のpタグの問題。定義のところでデフォルトで以下を
入れておくことにした。
[src]
my $auto_replace = '
s!()!
$1!g;
s!()!
$1!g;
';
[/src]
●RSSのファイル名として、cl.rdf以外も使えるようにしました。
cl.conf で設定できます。デフォルトは "cl.rdf" です。
[src]
# RSSファイル名
$rss_filename = "cl.rdf";
[/src]
- cl.rdf 以外のファイル名にしたい人が過去の cl.conf を編集して使う
場合の手順:
cl.conf に $rss_filename を追加(上記)し変更。
そして、cl.conf 中の各種テンプレートファイル(
$index_template, $month_page_template, $day_page_template,
$item_page_template, $cat_page_template, $rss_template)中の
"cl.rdf" を に置き換えて下さい。
2005-08-10 YAMASHITA Tatsuo
* version 1.0rc5[リリース]:
公開。
今回の主な変更点は以下:
'''「続きを読む」機能''':
'[esc]====[/esc]' と記入するとそれ以下の記述が省略され item page へ
ジャンプするリンクが表示されます。
item page を出すようにしたとき($page_mode=2)のみ機能します。
なお、cl.conf の $item_template に以下のような記述を追加する必要が
あります。
[src]
《続きを読む》
[/src]
'''utf8 mode''':
chalow をコマンドラインオプション --utf8 で実行。ChangeLog 本体も
cl.conf も文字コードが utf8 になっている必要あり。
cl.conf は conf/utf8/cl.conf を参考にどうぞ。
* README:
mod.
* ChangeLogReader.pm:
新しいのに置き換えた。(これまでは別ファイル名でテストしてた)
* 要望:
- カテゴリ一覧をネスト
2005-06-23 YAMASHITA Tatsuo
* chalow:
> my $readmore_tag = "[esc]====[/esc]";
デフォルトを :::: から [esc]====[/esc] に変更。はてな記法に準拠。
2005-04-12 (Tue) YAMASHITA Tatsuo
* chalow (okikae,make_item_html):
readmoreの処理を追加。
* 「続きを読む」機能[ReadMore]:
仕様:item page を出すようにしたとき($page_mode=2)のみ機能する。
item pageでは全部読める。
他のページでは指定したところまで表示し、「read more」等のリンク
でitem pageへ飛ぶ。
====
okikaeでreadmore記法の箇所とitemの最後に class 付きタグを入れる。
> んんん
> ::::
> あああ
↓
> んんん
> あああ
make_item_html() - for other pages
(1) name=content には、readmoreのdivを消したものを入れる。
(2) $item_template で新変数 name=readmore が使えるようになる。
make_item_page() - for item pages
そのまま。
> # Read More mode (0:OFF, 1:ON)
> $readmore_mode = 1;
readmore記法('::::')は変更できる。
> # Read More tag
> $readmore_tag = "::::";
* conf/utf8/cl.conf:
New. 設定ファイル for utf8
* chalow (to_utf8_cl):
New. modularized for i18n
* utf8 mode[i18n]:
目的:国際化(UTF8)のために文字コード変換まわりを局所化する。
仕様:文字コード変換をせずにそのまま通す。
> # UTF8 mode (0:OFF, 1:ON)
> my $utf8_mode = 0;
コマンドラインオプション --utf8
ToDo(chalow)
●ソース中のデフォルトテンプレートを日本語なし(ascii)に
●ユーザ設定読み込み後のEUC-JPへの変換をやめる
●write_rss_file: rss出力時のUTF8への変換切替->func
●get_category_filename: カテゴリファイル名作成時のUTF8変換切替->func
!!!
〇clsearch.cgi
* 作業再開:
作業を再開しました。
2005-01-25 (Tue) YAMASHITA Tatsuo
* chalow (write_rss_file):
旧:$ymd."T23:59:59+9:00";
新:$ymd."T23:59:59+09:00";
2005-01-19 (Wed) YAMASHITA Tatsuo
* chalow:
tmplが空なら月ページ、日ページを作らない仕様にした。
* chalow:
pmに手をいれ大掛かりな改造。
2004-12-24 YAMASHITA Tatsuo
* version 1.0rc4[リリース]:
公開。
* sample/diary.css:
シンプル化。画像指定を止めた。
* chalow:
> # RSS の description を CDATA で囲むか (1:YES, 0:NO)
> my $rss_cdata = 0;
を廃止。ref. [2004-11-28-2]
リリース前に導入してすぐに廃止したゆえ影響なし。
* chalow (write_rss_file):
dc:creator も出せるようにした。
* cl.conf:
調整。
* chalow (okikae):
> s/\]>/\]>/go;
ad hoc!!
2004-12-23 YAMASHITA Tatsuo
* chalow (escape_string):
Add.
> $escaped_src{$num_of_escaped_src} =~ s/>/>/g,
テキスト中に「]]>」があると「
* chalow (write_rss_file):
RSSファイルのテンプレート化!
HTML::Templateを使うようにした。
新設定項目。
>>
# RSSファイルのテンプレート
my $rss_template = << "RDFSTR"
...
RDFSTR
<<
あと、RSSをちょっと修整。
xmlns:lang=>xml:lang, resource=>rdf:resource, content:encoded
* ChangeLogReader.pm (store_changelog):
仕様変更。
旧: } elsif (/^\t?__DATA__.*$/) {
新: } elsif (/^__DATA__\s*$/) {
* README:
- typo 時下書き→直書き
- typo [src]...[/esc] -> [src]...[/src]
- サンプル提示のときの「>」はやめて行頭タブに統一した。
など。
2004-12-11 YAMASHITA Tatsuo
* conf/yto/diary.css:
New. sample/ にあるのとは別。
2004-11-30 YAMASHITA Tatsuo
* chalow (write_rss_file):
RSS を Bloglines で見てみると、相対URLがおかしくなっている。
2004-11-27-3.html を http://nais.to/2004-11-27-3.html にしちゃってる。
そこで、RSS 中で相対パスを絶対パスにするようにした。 ad hoc
ref. http://chalow.net/2004-11-28-1.html
2004-11-29 YAMASHITA Tatsuo
* ChangeLogReader.pm (store_changelog):
ゴミ("close F;"が残ってた)を消した。
2004-11-28 YAMASHITA Tatsuo
* chalow (write_rss_file):
RSS の description で CDATA を出すモード作成。
> # RSS の description を CDATA で囲むか (1:YES, 0:NO)
> my $rss_cdata = 0;
* chalow:
認識している問題:
非公開itemだけの空エントリが %entry_statistics に残っちゃう問題。
2004-11-27 YAMASHITA Tatsuo
* chalow:
itemページ作成のためのいろいろ作業。
> # 作成するページの単位 (0:月, 1:日, 2:アイテム)
> my $page_mode = 0;
(datestr2anchor): あわせる。
(datestr2url): あわせる。
(write_item_page): New.
$item_page_template も用意した。
itemのテンプレート要素にcatを追加。
今まで
>
これから
>
他には、header_text というものも。head/title タグなどに使う。
* chalow:
ChangeLogReader.pm を使うように改造。
* ChangeLogReader.pm (store_entry):
Add.
2004-11-12 YAMASHITA Tatsuo
* chalow (write_rss_file):
[2004-10-25-2]のをちょっと改造。今日のもの以外は
T23:59:59+9:00 を足すことにした。
> 2004-10-25T23:59:59+9:00
2004-11-07 YAMASHITA Tatsuo
* version 1.0rc3[リリース]:
公開。
2004-10-25 YAMASHITA Tatsuo
* chalow (write_rss_file):
RSS の各 item の dc:date について。
今まではすべて日付のみであった。
> 2004-10-25
方針を変更。今日のものだけ時間まで入れることにした。
> 2004-10-25T23:00:00+9:00
追加したロジック:
> my $item_dcdate = ($dcdate =~ /^$ymd/) ? $dcdate : $ymd;
2004-10-07 (Thu) YAMASHITA Tatsuo
* chalow で差分更新を行なう方法:
chalow では --stop-date オプションによる差分更新ができるのだが、
カテゴリファイルは差分更新されない。そこでカテゴリ別表示を
clsearch.cgi で行なうようにすると良い。手順は以下の通り:cl.conf
の $output_cat_pages を 0 にする。必要ならば $cat_page_cgi の
clsearch.cgi へのパスを環境にあわせて変更する。
* chalow (parse_entry):
ごめんなさい!
複数人利用のときの item ID 付与方針を変更しました。
1,2,3,4 と普通につきます。
今までは、authorがかわるごとに +100 されてました。
1,2,3,101,102,...という風に。
しかし、この前ロジックを大きく変更してから
これが動いていないようです。同じ日付エントリがあると、
マージされないで上書きされてたみたいです。
修整するために上記のように仕様を「自然なもの」に変更しました。
変な仕様にしたのが間違いのもとでした。
ごめんなさい、ごめんなさい、ごめんなさい。
$enthashp->{curid} というのを導入して、item ID を entry ごとに
管理するようにしました。最初からこれで行けばよかったんだよなあ。
猛省。
2004-08-18 (Wed) YAMASHITA Tatsuo
* chalow (write_itemlist_file):
--stop-date 2004-08-01 すると、 cl.itemlist の 2004-07-31-* らへん
がおかしくなる。clsearch.cgiでの検索で発見したバグ。
ロジックがおかしかったので修整した。
2004-07-31 (Sat) YAMASHITA Tatsuo
* chalow (write_itemlist_file):
--stop-date のとき、 cl.itemlist を差分更新するようにした。
* chalow:
クリーニング直後のおかしなロジックを直した。
category_count をクリーニングの直後に入れた。
しかし、これは効率的ではない。再考が必要。
* chalow (write_js_file):
分割した。
(write_category_list_file): カテゴリ一覧
(write_latest_item_list_file): 最近の記事
* chalow (write_*_page):
latest_item_list, category_list
> $t->param(latest_item_list => $latest_item_list);
> $t->param(category_list => $category_list);
使い方 (cl.conf):
|
↓↓↓↓↓
|
ただし、updateされるたびに全ファイルの更新が必要になる。
* chalow (write_js_file):
JSだけでなくHTMLの文字列をグルーバル変数 $latest_item_list,
にキープして HTML::Template で使うことにした。
* chalow (urlencode):
New. いまさら。
* chalow:
「HTML 生成のためのループ」のところで、
カテゴリ別item表示をCGIにするときの処理を書く。
(write_js_file): ここでも同様の処理を。
* cl.conf:
新設定項目 see ↓
* chalow:
新設定項目。および、整理。
>>
# カテゴリページを作るか (0:NO, 1:YES)
my $output_cat_pages = 1;
# カテゴリページ中のエントリ数の上限
# ($output_cat_pages = 1 のときのみ有効)
my $cat_page_entry_max = 10;
# カテゴリ別item表示のためのCGIを指定する(カテゴリ名は %%CAT%% で
置き換え)
# ($output_cat_pages = 0 のときのみ有効)
my $cat_page_cgi = "clsearch.cgi?cat=%%CAT%%";
<<
* clsearch.cgi:
clsearch.cgiで、カテゴリ指定 (cat:Music, cat:日常生活)、日付指定
(date:2004, date:2004-07, date:2004-07-01)、が使えるようにした。
list modeというのを作った。パラメータで mode=2。マッチしたitemの
itemリンクとitem headerの一覧を表示する。全部表示する。from指定な
どは無効。date:2004-07 と組み合わせて使うとその月のタイトル一覧が
出せる。
また、dateパラメータを指定すると内部で mode=2 になる。
例: clsearch.cgi?date=2004
また、catパラメータを指定すると内部で mode=1 になる。
例: clsearch.cgi?cat=Life
* chalow (write_itemlist_file):
cl.itemlistのフォーマットを変更!!!!!
cl.itemlistにカテゴリ情報も追加。カテゴリ別表示をCGIでもできるよう
にするため。
item headerとitem contentの間をスペースからタブにした。CGIであつか
いやすいように。
* chalow (okikae):
昔の画像貼り付け記法への対応を止める(ソースから削除)。
[IMG:image/hogehoge.jpg]など。
>>
### 画像張り付け
# image : [IMG:image/2000-06-20-08-32-57.m.jpg]
s!\[IMG:([^\]\s]+)\]!get_link_str("画像", $1);die!ge;
### リンク付き画像張り付け
# サムネイルと拡大画像などに
# image : [IMG:image/hello-s.jpg image/hello.jpg]
# image : [IMG:image/hello-s.jpg http://example.com/hoge.html]
s!\[IMG:([^\]\s]+)\s+([^\]\s]+)\]!get_link_str($1, $2);die!gesm;
<<
2004-07-26 (Mon) YAMASHITA Tatsuo
* version 1.0rc2[リリース]:
公開。
* cl-yto.conf:
Add. "conf/yto/cl-yto.conf". ytoの設定ファイルをサンプルとしてつけ
とくことにした。いろいろ足して行こうかと。
* cl.conf (clsearch):
[2004-05-12-1]にともない update.
2004-07-22 (Thu) YAMASHITA Tatsuo
* cl.conf:
細かく変更。
* chalow (write_rss_file):
RSSの各アイテムのタイトルのフォーマットを変更。
OLD: $ymd-$i $ih
NEW: $ih
2004-06-27 YAMASHITA Tatsuo
* cl.conf:
タイポ: blukfeeds --> bulkfeeds
2004-06-13 YAMASHITA Tatsuo
* chalow (output_to_file):
Replace Once 機能。1行追加しただけ。
> $$contp =~ s//$replace_once/;
* cl.conf:
新設定項目。
> # ファイルの最初に出てくる「」を置き換える文字列
> $replace_once = "";
2004-06-04 YAMASHITA Tatsuo
* chalow (make_calendar_table):
typo. alisgn --> align
* README:
「」についての記述を削除。
その他、エスケープやソースの記述法を追記。
* clkeitai.cgi (output_an_item):
[2004-05-12-1]の方法に準拠。
以下を塊として認識する。
2004-05-18 YAMASHITA Tatsuo
* chalow:
$version でバージョン番号管理です。
2004-05-12 (Wed) YAMASHITA Tatsuo
* clsearch.cgi:
$home_page_url, $home_page_nameを廃止。
今までの表示がシンプルモード。新たにアイテムモードも容易。これは
v0.19までのclsearch.cgiの表示方式。
アイテムモードは、以下を塊として認識する。
clseach.cgi?mode=1 でitem mode。0だとsimple mode。
(get_item): New.
ファイルから、IDにより指定されたitemを取りだす関数。
2004-05-09 YAMASHITA Tatsuo
* version 1.0rc1[リリース]:
公開。
* README:
mod.
* sample/diary.css:
table 関連追加 (.day)。
h3 を追加。
* chalow (okikae):
表。Hiki の記法を採用。
以下のように記述すると、
> ||項目1-1||項目1-2||項目1-3
> ||項目2-1||項目2-2||項目2-3
以下のような表になります。
||項目1-1||項目1-2||項目1-3
||項目2-1||項目2-2||項目2-3
2004-04-24 (Sat) YAMASHITA Tatsuo
* cl.conf:
調整。
2004-04-14 (Wed) YAMASHITA Tatsuo
* sample/dot-pink-16.png:
New!
* chalow:
廃止:$no_indent
> # タブによるインデントをなくすか (1:なくす or 0:そのまま)
> my $no_indent = 0;
タブインデントが欲しいときは以下のようにしよう!
>
* chalow:
今後は kuttukibbs.cgi 1.0rc1 以降のみサポート。
kuttukibbs.cgi v0.4 以前の亡霊を削除。
削除: $entry_url =~ s/\#/%23/;
削除: $item_url =~ s/\#/%23/;
New: $item_ymd, $entry_ymd
* cl.conf: mod.
インデックスページにサイドバー。
コメント周辺。
* sample/diary.css: mod.
2004-04-01 (Thu) YAMASHITA Tatsuo
* cl.conf: mod.
2004-02-27 (Fri) YAMASHITA Tatsuo
* chalow (write_category_page):
カテゴリページ中のエントリが多いときは複数ページにするようにした。
これにともない新設定項目。
> # カテゴリページ中のエントリ数の上限
> my $cat_page_entry_max = 30;
* chalow (make_day_list):
> if (defined $all_entries{$ym."-".$day}) {
↓↓↓↓↓↓↓↓↓↓
> if (defined $entry_statistics{ymd}{$ym."-".$day}) {
2004-02-26 (Thu) YAMASHITA Tatsuo
* cl.conf (amazon_search):
New. プラグイン。amazon サーチ結果リンクの作成。
>>
[src]{{amazon_search('トトロ')}}[/src]
→ {{amazon_search('トトロ')}}
[src]{{amazon_search('トトロ','books-jp')}}[/src]
→ {{amazon_search('トトロ','books-jp')}}
[src]{{amazon_search('トトロ','dvd-jp')}}[/src]
→ {{amazon_search('トトロ','dvd-jp')}}
<<
2004-02-17 (Tue) YAMASHITA Tatsuo
* chalow:
HTML::Template 化
- item, entry
- write_*_page()
- 以下、廃止。 cl.conf からも消す。
>>
# インデックスページの HTML ヘッダに追加したいもの (favicon.ico など)
my $index_page_head_plus = "";
# 月ページの HTML ヘッダに追加したいもの
my $month_page_head_plus = "";
# 日ページの HTML ヘッダに追加したいもの
my $day_page_head_plus = "";
# ツッコミ機能を使用するか (1:YES, 0:NO)
my $use_tukkomi = 0;
# ツッコミのテンプレート = の中味。
# TUKKOMI_DATE はそのエントリの日付 (例: 2003-06-25) に変換される
my $tukkomi_template = "";
<<
* cl.conf (amazon):
New プラグイン。amazon リンクの作成。これだけありゃいいじゃん的。
[2004-02-16-1]
2004-02-16 YAMASHITA Tatsuo
* version 0.24[リリース]:
公開。
* 今後の予定[メモ]:
- HTML::Template を採用。
- $*_page_head_plus の廃止
- $use_tukkomi, $tukkomi_template の廃止
- コメントや TB 関連は entry の template に直接書く方針
- $css_file の廃止
* p:TODO:
- 日本語コードの選択
- chalowlib?
- くっつき BBS との連携まわりをすっきりさせる
- ページ単位だけど、リンク元表示
参考:
要調査: JavaScript で #2003... も取れるか?
2004-02-15 YAMASHITA Tatsuo
* chalow:
細かい修整作業いろいろ。
- usage 表示の場所いじる
- $top_n_ctr 廃止(いらんかった)
- New ↓
> my %entry_statistics;
> # {ymd} : 日付 (年-月-日) の重複 (for 複数人利用)
> # {ym} : 各年月に含まれている日付エントリ数
> # {md} : 同じ月日を持つ年 for same date jump
2004-02-14 YAMASHITA Tatsuo
* cl.conf:
新設定項目。
> # 日付一覧をカレンダー表示にするか (1:YES, 0:NO)
> $calendar_style = 0;
* chalow (write_rss_file):
description が長いとき省略するという機能をちょっと直す。
まだ ad hoc だけど、まあいいや。本当は utf8 でやりたい。
(html2xmlstr): New. for RSS output.
(write_js_file): 日付にもリンクを付けた。
(make_day_list_str): New. for 日付一覧
(make_day_list): 整理。
(make_calendar_table): New. 日付一覧のカレンダースタイルを作成。
* README:
mod.
2004-02-13 YAMASHITA Tatsuo
* chalow (parse_entry)[メモ]:
item header の後に続けて何も書かずに改行するスタイルのとき、
item header を h3 で囲む設定にすると、
空行が item の header と content の間に入ってしまう問題について。
> * itemheader:
> content content content
$use_h3_for_item_header = 1 のときは、item content の最初の空行を
削るようにしている。
* chalow (output_to_file):
New. 指定されたファイルへ文字列を出力
* chalow:
テンプレート化への布石いろいろ。
* chalow (write_rss_file):
$permlink を使ってちょっとだけすっきり。
* chalow (parse_entry)[メモ]:
置き換えの方針:ハッシュに格納するときに okikae()。
置き換えた文字列をRSSなどに流用するので。
2004-02-12 YAMASHITA Tatsuo
* README:
Mod.
2004-02-11 YAMASHITA Tatsuo
* chalow (parse_entry):
プラグマ pragma の処理。
日付エントリの上と下にメッセージを埋め込めるようにしてみた。
* メッセージ埋め込み、案2:
> * message-top:
>
> 美食家の末は乞食 --- ベンジャミン・フランクリン
>
>
> * message-bottom:
>
> ♪ Jeith Jarrett / La Scala
>
* message-top:
美食家の末は乞食 --- ベンジャミン・フランクリン
* message-bottom:
♪ Jeith Jarrett / La Scala
* メッセージ埋め込み、案1: 廃案。
> * chalow::pragma:
> 美食家の末は乞食 --- ベンジャミン・フランクリン
> ♪ Jeith Jarrett / La Scala
2004-02-08 YAMASHITA Tatsuo
* cl.conf (cat):
New. カテゴリページへのリンクを生成するプラグイン。
* chalow:
カテゴリ別ページ作成関連作業。cat_life.html のようなの出力。
(get_category_filename): New.
(write_category_page): New.
(write_js_file): カテゴリ一覧JavaScriptファイルも出力するようにし
た。cl-cat.js
* ChangeLogの構造[メモ]:
>>
ChangeLog
└entry*
├entry header (= XXXX-XX-XX)
└item*
├id (= XXXX-XX-XX-X)
├item header
│ ├title
│ └category?
├item content
└item author?
<<
* chalow:
HTML::Template 適用に向けていろいろいじる。
(parse_entry): データ格納とHTML作成を行なっていたが、HTML作成部分
を分離する。
* chalow (clean_changelog):
クリーニング時に曜日を削ることにした。後で足す。
* cl.conf:
ユーザ設定項目の整理。
remove $opt_odir
* chalow (make_item_header_html):
New.
item header では okikae を適用しないように方針を変更。
カテゴリ処理をあとで施すために。
* chalow (make_entry_header_html):
New.
* chalow (get_inside_ref):
New. HTML::Template を採用したらなくなるかも。
inside referrer の重複を無くした。
2004-01-25 YAMASHITA Tatsuo
* chalow:
デバグモード ($debug_mode) 作った。ref. [2004-01-09-1]
2004-01-23 YAMASHITA Tatsuo
* cl.conf (wiki_link):
update.
2004-01-16 YAMASHITA Tatsuo
* chalow (write_js_file):
js ファイルの url に $clog_url_pref を足すようにした。
2004-01-14 (Wed) YAMASHITA Tatsuo
* cl.conf,sample/diary.css:
サイドメニューは id="links" (CSS だと #links) で、
本体は id="content" (CSS だと #content) で囲む方針にした。
これは MovableType の方式をまねた。
2004-01-13 (Tue) YAMASHITA Tatsuo
* cl.conf (shorten_url): New. URL を短く表示するプラグイン。
使い方:以下の様に書くと、
[src]
参考:{{shorten_url('http://example.com/0123456789/0123456789/
0123456789/0123456789/0123456789/0123456789-a.html',54)}}
{{shorten_url('http://example.com/0123456789/0123456789/
0123456789/0123456789/0123456789/0123456789-b.html')}}
[/src]
こうなります:
>>
参考:{{shorten_url('http://example.com/0123456789/0123456789/
0123456789/0123456789/0123456789/0123456789-a.html',54)}}
{{shorten_url('http://example.com/0123456789/0123456789/
0123456789/0123456789/0123456789/0123456789-b.html')}}
<<
2004-01-11 YAMASHITA Tatsuo
* version 0.23[リリース]:
作業途中だけどとりあえず公開。
パワーユーザ以外にはおすすめしません。
2004-01-09 (Fri) YAMASHITA Tatsuo
* chalow (clean_changelog):
日付単位に分割してリストに入れるのをこの段階で行なうようにした。
削除した秘密の項目を stdout に出力する処理を実装。
この出力を行なうためのモードは後で作る。当面はデフォルト。
2003-12-29 (Mon) YAMASHITA Tatsuo
* chalow (okikae):
行頭のスペースは に置き換えるようにした。
* chalow (escape_string):
文字列のエスケープ。順番。
1. HTML エスケープ - 文字列そのまま
2. ソースエスケープ - "&" や "<" などを置換し pre を付ける (インデ
ントが重要なときに) --- あまり使わないかも
3. プラグインエスケープ
戻すときは逆。
* chalow (okikae):
タブを最初に消す方針にしたのでバグが出た。修正。
OLD: my $URLDELIM = "\\\\\\n[\\t ]+";
NEW: my $URLDELIM = "\\\\\\n *";
* cl.conf (amazon_link):
プラグインと
の関係でごちゃごちゃと。
引数の "..\n..\n.." という文字列には
を再度足す。
* chalow (write_js_file):
New write_js_file().
JavaScript feed ファイルを出力する関数
* pre廃止[メモ]:
pre 囲みをやめる。各行の行末に
を付けるようにした。
pre 指定は別に行なう。
ソースの表示は [esc][src][/src][/esc] を使う→エンティティ置換&pre。
例: [literal][esc][/literal]...
[literal][/esc][/literal]
[sic][esc][/sic]
┏━━━┓
┃ ┣━━━━━┓
┗┳━━┛ ┃
┃ ┃
┗━━━━━━━━┛
[sic][/esc][/sic]
↓
[esc]
┏━━━┓
┃ ┣━━━━━┓
┗┳━━┛ ┃
┃ ┃
┗━━━━━━━━┛
[/esc]
[sic][src][/sic]
sub test {
my ($k) = @_;
return qq($o);
}
[sic][/src][/sic]
↓
[src]
sub test {
my ($k) = @_;
return qq($o);
}
[/src]
2003-12-28 (Sun) YAMASHITA Tatsuo
* chalow:
最初のクリーン時 (clean_changelog) に行頭のタブを全部なくすように
した。これにともなって全体を修正。
他フォーマットのプレインテキスト対応への布石。
(例えば、Windows のメモ帳の .LOG のフォーマット)
* chalow:
$clog_url の「# 末尾の "/" は不要」って条件を無くす。
(write_rss_file): RSS の出力エントリ数の上限を決めた。7 日分以上は
出さない。
(escape_string): 処理回避ブロック[2003-09-05-1]の記法の追加。
「Wiki Way」を参考に。
> [sic][literal]{{g}}[/literal][/sic], [literal][sic]{{g}}[/sic], [esc]{{g}}[/esc][/literal]
↓
> [literal]{{g}}[/literal], [sic]{{g}}[/sic], [esc]{{g}}[/esc]
* cl.conf (blukfeeds):
Bulkfeeds キーワード検索プラグイン
2003-12-25 YAMASHITA Tatsuo
* chalow (write_rss_file):
RSS に以下の記述を追加。
>>
xmlns:admin="http://webns.net/mvcb/"
<<
2003-11-07 YAMASHITA Tatsuo
* cl.conf (amazon_link):
プラグイン。普通のアマゾンアソシエイトリンクの作成。
2003-11-06 (Thu) YAMASHITA Tatsuo
* cl.conf (wiki_link):
プラグイン。Wiki へのリンクの作成。
usage: [esc]{{wiki_link('WIKINAME')}}[/esc]
{{wiki_link('ゲトマネ戦隊アサマシ8')}}
* cl.conf (qualmish_amazon_link):
プラグイン。後ろめたい amazon アソシエイトリンクの作成
usage [esc]{{qualmish_amazon_link('ASIN', 'ID', 'STR')}}[/esc]
{{qualmish_amazon_link('4756102816','ytoshomepage-22',
"TEST:Perl書法
image/gazou.png")}}
{{qualmish_amazon_link('4756102816','',"TEST:Perl書法")}}
ref.
2003-11-04 YAMASHITA Tatsuo
* version 0.22[リリース]:
公開。
バグ修正と小さな変更のみ。
2003-11-03 YAMASHITA Tatsuo
* chalow (write_rss_file), cl.conf:
channel/description の中身を設定できるようにした。
>>
# 日記の説明 for RSS : 例: "日々のあれこれ。"
my $changelog_description = "";
<<
* chalow (parse_entry):
RSS の itemheader が出ないというしょうもないバグをなおしました。
http://apollo.u-gakugei.ac.jp/~sunaoka/clog/2003-11.html#2003-11-02-9
2003-11-02 YAMASHITA Tatsuo
* version 0.21[リリース]:
公開。
バグ修正や小さな変更のみ。機能の追加などはなし。
* chalow:
- h4rss をなくす (all_entries のキー)。
2003-11-01 YAMASHITA Tatsuo
* chalow (write_rss_file):
全体の dc:date に日付だけじゃなく時間も入れるようにした。
2003-10-30 YAMASHITA Tatsuo
* cl.conf:
clsearch プラグインを追加。
* chalow (write_index_page):
インデックスページのテンプレートで YEARMONTH が使えるようになりま
した!
* chalow:
- $all_month を廃止。
- make_month_page_list は一回だけ呼ぶことにした。
- write_index_page と write_month_page の引数の数へらす。
- 最近の何日かだけインデックスページに載せるための処理を
write_index_page へ。
* chalow (clean_changelog):
項目内での段落区切り表す空行をタブ行にするとこの正規表現を変更。
ついでに連続空行を詰める。
OLD $$strp =~ s/\n(\n\t[^\*])/\n\t$1/gm;
NEW $$strp =~ s/\n+(\n\t[^\*])/\n\t$1/gm;
2003-10-28 YAMASHITA Tatsuo
* clsearch.cgi:
検索結果にリンク出来るようにデフォルトとして GET を指定。
2003-10-27 YAMASHITA Tatsuo
* chalow (write_rss_file):
> $today → $today
http://mailarc.namazu.org/htmlmail/chalow/62
(parse_entry):
> push @{$same_date{"$m-$d"}}, $y; # 同じ日付 (月日) を持つ年のリスト
→
> push @{$same_date{"$m-$d"}}, $y # 同じ日付 (月日) を持つ年のリスト
> if (!grep(/$y/, @{$same_date{"$m-$d"}}));
http://mailarc.namazu.org/htmlmail/chalow/63
バグフィックス2つ。
2003-10-23 YAMASHITA Tatsuo
* chalow (okikae):
コメントを残す、というデフォルト設定をやめた。
* chalow (clean_changelog):
Saito HiroAki 氏のパッチを適用したのち、若干手直し。
[chalow:60] プライベートアイテムだけのエントリでparse error
http://mailarc.namazu.org/htmlmail/chalow/60
2003-10-22 (Thu) YAMASHITA Tatsuo
* p:秘密です: [2003-10-23-1]のテスト。
ほほう。
へへへ
2003-10-21 (Tue) YAMASHITA Tatsuo
* version 0.20[リリース]:
公開
* 今回の変更点:
- 日ページ作成機能
- 変更のあったファイルだけ出力するモード
- 複数ファイルのマージ
- HTML タグをそのまま書く記法
- 検索 CGI まわりの変更
- 携帯電話用 CGI
- TrackBack を使うための改造
* clkeitai.cgi (output_simple_list):
アイテムのサイズが大きすぎるとバグるので修正。
* chalow (write_day_page, write_month_page, write_index_page):
出力先ファイルとサイズが異なる場合のみ出力するモードを設けた。
> # 出力先ファイルとサイズが異なる場合のみ出力する (0:NO, 1:YES)
> $update_by_size = 1;
さらに、新コマンドラインオプション
> -u 出力先ファイルとサイズが異なる場合のみ出力する
* chalow (write_rss_file):
rss の description の中味の文字列長の上限を決めて、切るようにした。
* README:
mod.
* chalow (okikae):
引用の新記法:">>" と "<<" で囲む。ref はてなダイアリー。
> >>
> 引用です。
> <<
とすると、
>>
引用です。
<<
となります。
2003-09-29 (Mon) YAMASHITA Tatsuo
* chalow (write_rss_file):
RSS の description で改行がスペースになってしまっていたのを修正。
2003-09-25 (Thu) YAMASHITA Tatsuo
* chalow:
TrackBack を使うための改造。
$tukkomi_template の New 置き換え項目 DATE_ID = "20030924"
の div は cl.conf で設定書い
てもら方針に変更。
> $items_new .= qq();
↓
> $items_new .= $template;
2003-09-17 (Wed) YAMASHITA Tatsuo
* clkeitai.cgi:
New!!!
chalow により HTML 化されたページをケータイで見るための CGI。
検索用ファイル cl.itemlist が必要です。cl.conf の $output_itemlist
(検索用ファイルを作るか否か) を 1 にするが必要あります。
アイテム一覧表示。デフォルトです。HTML タグはほとんどなく、プレイ
ンテキストに近い表示です。アイテム別表示へのリンクがあります。
アイテム別表示。アンカーあり。改行あり。アイテム一覧から選んでジャ
ンプして来ます。
* clsearch.cgi:
use binmode().
* chalow (write_rss_file):
にアイテムの中味を入れた。
* cl.conf:
ちょい修正。
* chalow:
use binmode(). 全てのファイル IO に。
2003-09-10 YAMASHITA Tatsuo
* {dot-pink.png, dot-gray.png}:
New for item header
2003-09-05 (Fri) YAMASHITA Tatsuo
* clsearch.cgi:
複数キーでも検索できるようにした。
スペースで区切る。スペース入りのキーは "" で囲む。
* chalow:
複数のファイルをマージできるようにした。今までもそうできるはずだっ
たのだが、できてなかった (同じ日付を上書きしてしまう)。
* chalow (clean_changelog):
New. ChangeLog のクリーニング、を独立関数化。
* chalow (escape_string, unescape_string):
New. 文字列置き換えから一時的に退避し、後に復帰するための関数たち。
開始マーク '\t_HTML_START_\n' と終了マーク '\t_HTML_END_\n' に囲ま
れた領域はそのまま HTML ファイルへ出力する。
(設定により、行頭のタブは削られることもある)
_HTML_START_
例: フォントサイズ指定の解除
_HTML_END_
2003-09-04 (Thu) YAMASHITA Tatsuo
* chalow (write_day_page):
New. 日ページ作成。
> # 日ごとにページを作るか (1:YES, 0:NO)
> my $day_page_mode = 1;
* chalow (make_day_list):
New. 日付一覧を作成、を独立関数にした。
* chalow (datestr2anchor):
New. 日付で参照リンク作成、を独立関数にした。
* clsearch.cgi:
検索用ファイルを使用するように大幅に書き換え。
Jcode.pm は不要に (もともといらなかった疑惑...)。
* chalow (write_itemlist_file):
New. 検索用ファイルを出力する。検索用に itemlist を 1 ファイルにま
とめたファイルを作ることにした。
> # 検索用ファイル (itemlist) を作るか (1:YES, 0:NO)
> my $output_itemlist = 1;
2003-08-30 (Sat) YAMASHITA Tatsuo
* version 0.19[リリース]:
公開
* 変更点のまとめ:
- プラグイン機能
例:
[esc]{{google_search('海老名 映画館')}}[/esc] → {{google_search('海老名 映画館')}}
- 自分の日記内だけでのリファラー機能
ref.
- Hiki の記法を==パクる==採用
任意の URL へのリンク、文字修飾、水平線
例:(記号は全角で表記していますが、実際は半角)
[[Yahoo!|http://www.yahoo.co.jp/]] → [[Yahoo!|http://www.yahoo.co.jp/]]
==ABC== → ==ABC==
’’ABC’’ → ''ABC''
’’’ABC’’’ → '''ABC'''
- 各アイテムに記述者名を表示する機能 (for 複数人で ChangeLog)
- nkf はやめて、Jcode.pm を使うようにした
- RSS に も足すようにした
* README:
mod.
* chalow (parse_entry):
$descending_order_item_num 廃止。アイテムの ID は降順で固定。
* {clsearch.cgi,chalow}:
検索がしやすいように、各 item (section) の終わりをあらわすマーク
を入れる方針にした。最初からこうすれば良かった...。
2003-08-29 (Fri) YAMASHITA Tatsuo
* プラグイン機能[メモ]:
プラグイン機能が登場!
「{」2つと「}」2つで囲むとプラグイン (関数) を呼び出すことができ
ます。あんまり多くのことはできませんが...。
例:(記号は全角で表記していますが、実際は半角)
> [esc]{{google_search('海老名 映画館')}}[/esc] → {{google_search('海老名 映画館')}}
プラグインは cl.conf に足して置けば使えます。
in cl.conf
> # -------------------------------------------------------------
> # 以下、プラグイン
> sub google_search {
> my ($k) = @_;
> my $o = $k;
> $k =~ s/([^0-9a-z_ ])/'%'.unpack('H2', $1)/gei;
> $k =~ s/\s/+/g;
> my $c = "ie=EUC-JP&oe=EUC-JP&";
> return qq($o);
> }
* chalow:
日付リンクによるリファラー、つまり、自分の日記内だけでのリファラー
機能を実装。
ref.
で囲む。
sample/diary.css にそのクラスを追加した。
テスト: [2003-06-26-2] [2003-06-26-1] [2003-06-26]
* gazou.png:
New! これ↓ cvs add -kb した。
[[画像|image/gazou.png]]
* chalow: (get_link_str):
New for Hiki 記法。そして、 get_img_str() を廃止。
* p:[IMG:image/gazou.png] [IMG:image/gazou.png http://nais.to/~yto/]
* chalow (okikae):
Hiki の記法を==パクる==採用。
■任意の URL へのリンク
「単語|URL」を 2 つの半角カギカッコで囲むとを任意の URL へのリンク
になります。
例:(記号は全角で表記していますが、実際は半角)
> [[Yahoo!|http://www.yahoo.co.jp/]] → [[Yahoo!|http://www.yahoo.co.jp/]]
このとき URL の末尾が jpg,jpeg,png,gif だと IMG タグに展開されます。
(指定した単語がALTに設定される)
例:(記号は全角で表記していますが、実際は半角)
> ↓ [[図|image/gazou.png]]
[[図|image/gazou.png]]
「単語」の末尾が jpg,jpeg,png,gif だとクリック可能な IMG タグに展
開されます。IMG が URL へのリンクになります。
例:(記号は全角で表記していますが、実際は半角)
> ↓ [[image/gazou.png|http://nais.to/~yto/]]
[[image/gazou.png|http://nais.to/~yto/]]
また、URL っぽいものがあると勝手にリンクがはられます。
例:
> http://www.yahoo.co.jp/
■文字修飾の記法
「'」2個ではさんだ部分は強調されます。「'」3個ではさんだ部分はさら
に強調されます。「=」2個ではさんだ部分は取消線になります。
例:(記号は全角で表記していますが、実際は半角)
> ==ABC== → ==ABC== (ABC)
> ’’ABC’’ → ''ABC'' (ABC)
> ’’’ABC’’’ → '''ABC''' (ABC)
■水平線の記法
マイナス記号「-」を行の先頭のタブの後から 4 つ書くと水平線になりま
す。
例:(記号は全角で表記していますが、実際は半角)
> あはは
> −−−−
> いひひ
あはは
----
いひひ
2003-08-25 YAMASHITA Tatsuo
* chalow:
日付だけでなく記述者も考慮するようにしなくちゃ本来の ChangeLog (複
数の人々が開発に用いるという状況) で使えない。普及の壁??? そこで、
記述者が複数いる ChangeLog ファイル用に、各アイテムに記述者名を表
示するモードを作った。
in cl.conf:
> # 各アイテムに記述者名を表示するか (1:YES, 0:NO)
> $show_author_name = 0;
名前
「author name」
ref.
2003-08-16 YAMASHITA Tatsuo
* README:
mod. nkf が必要、との記述を削除。
* clsearch.cgi:
検索で日付が出て来なくなっていたのを修正。
2003-08-11 (Mon) YAMASHITA Tatsuo
* clsearch.cgi:
nkf はやめて、Jcode.pm を使うようにした。
* chalow:
nkf を呼ぶのはやめて、Jcode.pm を使うようにした。
(write_rss_file): utf-8 への文字コード変換に Jcode を使うようにし
た。ゆえに、chalow 0.18 から必要となった「nkf 2.0 以降」は不要。
- 他の場所でも nkf 使うのやめた。
- FileHandle も使うのやめた。
- memo: Cygwin へ Jcode.pm
2003-08-09 YAMASHITA Tatsuo
* clsearch.cgi:
CSS がらみでちょっと修正。
2003-08-08 (Fri) YAMASHITA Tatsuo
* chalow (write_rss_file):
RSS に も足すようにした。日付だけで、時間はなし。
例: 2003-08-03
2003-08-03 YAMASHITA Tatsuo
* version 0.18[リリース]:
公開
* add-extent.pl:
毎回 extent 情報を調べるのは時間がかかるので cache ファイルを採用。
2003-07-31 YAMASHITA Tatsuo
* RSS (RDF):
RSS を出力するようにした。
今のところ、RDF の文字コードは euc-jp。utf-8 でないと正しく動かな
い RSS 処理ソフトがあるらしい。どうしたものか。
(ref. RSS -- サイト情報の要約と公開
)
→ nkf -w でなんとかする。しかし、nkf は新しいのじゃなきゃならぬ。
* chalow:
(parse_entry): mod for RSS
%all_items というハッシュに全アイテム情報を詰め込む。
(write_rdf_file): New. for RSS output.
(parse_entry): パーズして結果をハッシュに詰め込むようにした。
パーズと生成を別パスにした。
* {chalow,cl.conf}:
新たな設定項目を追加
> # RSS を出力するか (1:YES, 0:NO)
> my $output_rss = 1;
> # ChangeLog を公開する URL (相対 URL 不可)
> my $clog_url = "http://nais.to/~yto/clog";
> # 他の年の同じ日付 (月日) へのリンクを張るか (1:YES, 0:NO)
> my $same_date_jump = 1;
* cl2moneycsv.pl:
New.
ChangeLog メモで家計簿っぽいことをするためのもの。
ChangeLog メモから買物ログを抜きだして CSV にする。
(ref. )
2003-07-30 (Wed) YAMASHITA Tatsuo
* chalow:
他の年の同じ日付 (月日) へのリンクを付ける機能 (same date jump) を
テスト的に実装。例えば、日付 (エントリヘッダー) の下に過去数年の
7/30 の記述へのリンクが表示される。
ぱくり元:
> 凹 n年日記
> 他の年の同じ月に日記をつけている場合のみ[n年日記]というリンクが
> 現れるようになりました.[n年日記]が現れるまで頑張って日記をつけ
> 続けてください.それからn年日記モードでは[n年日記]のリンクを表示
> しないようにしました.
* chalow:
「最近の何日かだけインデックスページに載せるための処理」を全体ルー
プの外へ出した。 $top_n_ctr が関係する。
2003-07-23 (Wed) YAMASHITA Tatsuo
* {chalow,cl.conf}:
Add 「type="text/javascript"」
ref.
2003-07-15 (Tue) YAMASHITA Tatsuo
* chalow (parse_entry):
item header 以外の行が「\t*」で始まると、それ以降が消えてしまうと
いうバグ [chalow:23] に対処。
例:
a
b
*
c
原因は item を認識する正規表現。
> # (3) 個々の item に分解し、各 item ごとに処理
> my @itemlist;
> while ($items =~ /^(\t\* .+?\n(?=\s*(\t\*|\Z)))/gsm) {
> push @itemlist, $1;
> }
↓
> while ($items =~ /^(\t\* .+?\n(?=\s*(\t\* |\Z)))/gsm) {
2003-07-12 YAMASHITA Tatsuo
* version 0.17[リリース]:
公開
* memo:
くっつき BBS =
2003-07-08 (Tue) YAMASHITA Tatsuo
* chalow (parse_entry):
くっつき BBS にあわせて、TUKKOMI_DATE の仕様を変更。
old: $template =~ s/TUKKOMI_DATE/$day/g;
new: $template =~ s/TUKKOMI_DATE/$mon.html%23$day/g;
old:
> 本日のツッコミ [全部
> 見る / ツッコミを入れる]
new:
> 本日のツッコミ [全部
> 見る / ツッコミを入れる]
2003-07-01 (Tue) YAMASHITA Tatsuo
* {chalow,cl.conf}:
mod $item_header_mark (ref. [2003-06-26-1])
> # item header の先頭の記号の指定
> # 『日記のセクションの先頭(サブタイトルの行頭)に挿入される、リンク用の
> # アンカー文字列を指定します。なお「_」を
> # 指定すると、テーマによっては自動的に画像アンカーがつくようになりま
> # す。』(tDiary の skel/conf.rhtml より)
> $item_header_mark = "*";
version 0.15 以降、panchor に決め打ちにしてしまっていたが、sanchor
もあるわけなので、設定できるようにした。
2003-06-29 (Sun) YAMASHITA Tatsuo
* sample/diary.css:
update
* check-tr.png:
New for sample CSS
* {chalow,cl.conf}:
新たな設定項目を追加
> # ツッコミ機能を使用するか (1:YES, 0:NO)
> my $use_tukkomi = 1;
> # ツッコミのテンプレート = の中味。
> # TUKKOMI_DATE はそのエントリの日付 (例: 2003-06-25) に変換される
> my $tukkomi_template = qq(
>
>
> );
* chalow:
試験的にツッコミ機能を使えるようにした。ツッコミ機能自体は外部のシ
ステムを利用。この部分については今後大幅な変更の可能性大。
2003-06-26 YAMASHITA Tatsuo
* README (usage):
add
* chalow (okikae):
- リンク付き画像張り付けをできるようにした。サムネイルと拡大画像な
どに。画像からの URL へのリンクも可能。
> [IMG:image/hello-s.jpg image/hello.jpg]
> [IMG:image/hello-s.jpg http://example.com/hoge.html]
(正しい表記は、半角コロンです)
- URL 文字列のマッチパターンをいじる。
* chalow (parse_entry): item header の処理のところのロジック変更。
* {chalow,cl.conf}:
新たな設定項目を追加
> # item header の先頭の記号の指定
> my $item_header_mark = "*";
2003-06-24 YAMASHITA Tatsuo
* README:
mod.
ref.
2003-06-23 (Mon) YAMASHITA Tatsuo
* version 0.16[リリース]:
公開
* chalow (parse_entry)[メモ]:
> tDiary のテーマも使えるようになると見栄えが全然違いますな。
> ただ、惜しむらくは、* に張られるアンカー。
> ChangeLog 形式なので、上にどんどん書かれていく。
> 一日に何回も更新するとアンカーのラベルが変わってしまう。
> その日に書いたエントリから順番に 1, 2 と付けて欲しい。
確かに。そうなんですよね。ということで、デフォルトを降順にしました。
上のアイテムから、5, 4, 3, 2, 1 となります。version 0.15 のように
昇順にするには、cl.conf で $descending_order_item_num = 0 とすれば
OK。
* {chalow,cl.conf}:
新たな設定項目を追加
> # item header の先頭の "*" のアンカー番号を降順にするか (1:YES, 0:NO)
> my $descending_order_item_num = 1;
2003-06-22 YAMASHITA Tatsuo
* version 0.15[リリース]:
公開
* README:
mod
* sample/ChangeLog:
remove
* chalow:
tDiary テーマ適用の調整。各 item を p で囲むようにした。
* ChangeLog の各部の名称[メモ]:
chalow では各部を以下のように呼ぶことにします。
設定ファイル、CSS、プログラムソースを見るときにご参照下さい。
[[IMG|image/chalow-cl-name-s.gif]]
* 半角スペース連続が消えてしまう問題[メモ]:
pre の代わりに p とか div とかで "white-space: pre; font-family:
monospace;" と指定する方法は、以下のような「半角スペース連続」表記
で崩れるという問題がある。item を pre で囲むのはいまいちな感じでは
あるが、今しばらくはやむを得ない。
これが...
> 4 5 6 7 8 9 10
> ┴───┴───┴───┴───┴───┴───┴
> - 階層1
> - 階層2
> - 階層3
こうなる
> 4 5 6 7 8 9 10
> ┴───┴───┴───┴───┴───┴───┴
> - 階層1
> - 階層2
> - 階層3
2003-06-21 YAMASHITA Tatsuo
* README:
tDiary のテーマを使うための設定について。
* {chalow,cl.conf}:
tDiary のセクションアンカーみたいなのを実装。使うには、新設定項目
$use_item_anchor を 1 にする。
> # item header の先頭の "*" にアンカーをつけるか (1:YES, 0:NO)
> $use_item_anchor = 1;
$item_header_style の設定で、"* HOGE:" か "* HOGE" にしておく必要
あり。
これにともない、okikae() 中の「日付で参照リンク」を修正。
- item anchor への参照リンクの記述方法の例: [2003-06-21-1]。
- もちろん今までの [2003-06-21] というのも使える。
- テスト: [2001-12-13-3] [2001-12-02] [2001-12-08-2](ない)
* {chalow,cl.conf,sample/diary.css}:
- デフォルトの設定として、月ページリスト、日付リストを calendar ク
ラスの p で囲む。
- 一番下に出る chalwo ロゴを p.footer にした。p.footer a で bold
がデフォルト。
-