/ / 最新

swk's log - chalow の Referrer (Inside) に記事タイトルをつける

2006-05-05

* chalow の Referrer (Inside) に記事タイトルをつける [logging][chalow] 11 users

chalow では,[2006-05-05-1] のように書くと他の記事が参照できて,逆に参照された側の記事の一番下には参照元一覧が表示される (デフォルトのテンプレートだと「Referrer (Inside)」).後で読むときにとても便利なので使いまくり.

参照記事に飛ぶ場合は,文脈から飛ぶ先の内容がある程度予測できるのだけど,Referrer (Inside) 一覧の方は,クリックしてみるまで内容が分からない.ここに記事タイトルでも表示されてると便利かな,などとふと思ったので試してみた.

まず parse_entry() の for ループの中,「ハッシュに格納」と「日付リンク情報の格納」の位置を入れ換えて,後者を次のように変更.入れ換えるのは,$ent->{$i}{h} を使いたいから.($ent->{$i}{ho} でもいいのかも知れないけど,念のため)

# ハッシュに格納
$ent->{$i}{h} = okikae($ent->{$i}{ho});
$ent->{$i}{c} = okikae($c);

# 日付リンク情報の格納
while ($c =~ /\[((\d\d\d\d-\d\d)-\d\d(-\d+)?)\]/g) {
    $inside_ref{$1}{"$ymd-$i"} = $ent->{$i}{h};
}

で,get_inside_ref() を以下のように変更.(変わってるのは return map ... の行だけ)

sub get_inside_ref {
   my ($id) = @_;
   if (defined $inside_ref{"$id"}) {
       return map { "<br> " . datestr2anchor("[".$_."]") . " " . $inside_ref{"$id"}{"$_"} } 
      (sort {$b cmp $a} keys %{$inside_ref{"$id"}});
   }
   return ();
}

というわけでこんな感じ↓の表示になるはず.これは自己参照だけど.

関連記事:
[2006-10-22-1] chalow の他記事参照文字列を生成する elisp
[2006-05-05-1] chalow の Referrer (Inside) に記事タイトルをつける

最終更新時間: 2009-01-04 15:31


Shingo W. Kagami - swk(at)kagami.org