PukiWiki の calendar_viewer プラグインが惜しい

※ 相変わらず pukiwiki.org が引けないので hosts に書いちゃった

わたしゃ普段自分の活動記録を PukiWiki の calendar2 プラグインを利用して残しております。しかしこれって一覧性悪いなーとずっと(2年以上!)思っていたんだけど、calendar_viewer なんてプラグインがあったのね。

で、見てみたらアクションプラグインとしても使えるので、適切な引数がセットされるように InterWikiName を定義してやると、簡単な BracketName を書くだけで、ワンクリックで見たい月の記録がどーんと1ページに展開されるようになった。例えば

  1. Log というページに calendar2 を置くこととする
  2. 当然、Log というページに #calendar2 と書いておく
  3. InterWikiName で -[./?plugin=calendar_viewer&mode=view&file=Log&date= Log] と定義
  4. [ [Log:2005-07] ] ってリンクを用意すると 2005年7月の一覧へのリンクができる。

さらに Log に

-[[Log:2005-07]]
-[[Log:2005-06]]
-[[Log:2005-05]]
-[[Log:2005-04]]
-[[Log:2005-03]]
-[[Log:2005-02]]
-[[Log:2005-01]]
-[[Log:2004-12]]
-[[Log:2004-11]]

こんな風にリンクを並べておけば、今日の日付の内容とともに過去のページにさかのぼって確認するためのリンクも用意されてとても使いやすい。この程度は自動生成するまでもなく、手書きで十分。

…なんだけど、実はその日ごとのページに navi プラグインやら contents プラグインやらが埋め込まれているので、特に navi プラグイン周りでかなりおかしなことが起きていて、そこが不便。

calendar_viewer の出力を Document Map で眺めているところ

まぁ一覧のページそのものは Firefox の DocumentMap 拡張で当たりをつけてから見る1ので、そんなに支障はないんだけど、ページ内容を詳細に見ようと思うと navi プラグインの嘘の情報が各日付の内容をサンドしているのでかなり見にくい。

今さら全ページの navi プラグインを外すのも邪魔くさいし、1ページずつ見てるときはこれはこれで便利だし、どうしよう。igonre_block_plugin オプションかなんかをつけて、

// 現状で閲覧許可がある場合だけ表示する
if (check_readable($page, false, false)) {
  $body = convert_html(get_source($page));
} else {
$body = str_replace('$1', $page, $_msg_calendar_viewer_restrict);
}

ここら辺で convert_html() する前に # から始まる行を捨てる処理でも加えりゃいいのか。でもオプションの渡し方がよく分かってないんだよな、実は。

  1. 当然、やった内容ごとに見出しをつけてあるので、これだけでほとんどすべて把握できる 

More