トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/265

ページの作成や編集にはユーザ登録が必要です。

カレンダページの目次表示プラグイン

  • 投稿者: Rusutaku
  • カテゴリ: 新規
  • 優先度: 普通
  • 状態: 提案
  • 日時: 2006年03月11日 17時02分34秒

 内容

calendar プラグインで作成したページの一覧を,新しい順に整理した目次ページへのリンクで表示します.

FSWiki 3.5.10 で動作確認しました.

 ダウンロード

indexcalender_20060311.zip(453)

  • 公開版(calender...?)

indexcalendar_20060315.zip(487)

  • ページ内アンカへの title 属性付加
  • 合計ページ数表示
  • パラメータ作成のサブルーチン化,など

おまけ CalendarHandler.pm(492)(20060315 版対応)

  • 強引にカレンダテーブルに目次リンクを付ける不恰好な改造
  • make_anchor 内の "&" を実体参照に修正しておいた

おまけパッチ indexcalendar_parse_for_20060315.patch(471)

  • IndexCalendarHandler.pm に当てるパッチです.
  • ある程度パースしてくれます.
  • リンクが優遇されてます.
  • あまりデバッグしてません.

 インストール方法

アーカイブの内容を calendar プラグインディレクトリに配置する.

また,同梱の Install.pm はデフォルトの calendar プラグインのものに

$wiki->add_handler("INDEXCALENDAR","plugin::calendar::IndexCalendarHandler");
$wiki->add_paragraph_plugin("indexcalendar","plugin::calendar::IndexCalendar","HTML");

を書き足したものです.

 使い方

{{indexcalendar カレンダ名}}
{{indexcalendar カレンダ名[,テンプレート名,include,old,要約文字数]}}

月別の見出しをクリックした先のカレンダーページで,編集画面に見本として表示されるテンプレートページを指定することができます.カレンダ編集にテンプレートを使っている場合は指定した方がよいでしょう.

{{indexcalendar カレンダ名,テンプレート名}}

これ以降のオプションは順不同です.

include でリンクの代わりに目次をそのまま出力します(省略時リンク).

{{indexcalendar カレンダ名,テンプレート名,include}}

old で一覧を古い順に並べ替えします(省略時新しい順).

{{indexcalendar カレンダ名,テンプレート名,old}}

要約の文字数をバイト数で指定することができます(省略時 60).

{{indexcalendar カレンダ名,テンプレート名,要約文字数}}
  • 使用例(おまけもつかってます)

なお,表示形式はえむもじらの記事インデックスを参考にさせていただきました.また,要約の抜き出しに TrackBackPingプラグインBugTrack-plugin/108の一部コードを使わせていただきました.

 コメント

  • 便利なプラグインありがとうございます。自分のところで設置してみたんですが
・2006年 01月 02月 03月
2006-03
・2006-03-xx ..................
・2006-03-xx ..................
・2006-03-xx ..................
2006-02
・2006-02-xx ..................
・2006-02-xx ..................
・2006-02-xx ..................

みたいな感じで表示されますが、月指定の箇所(2006-03,2006-02)のところのリンク先がhttp://xxx.xxx.xx/index.cgi?action=CALENDAR&HASH(0x890c254)のように、Calendarの後がHASHになってしまいリンク先に飛べないのですが、どのようなことが原因なのか分かるようでしたら教えてください。 - 名無しさん (2006年03月14日 12時13分24秒)

  • 申し訳ないのですが,私は Perl にあまり詳しくないので,原因については見当が付きません.使用例の Xrea でしか動作確認をしていないので,動作環境によっているのかもしれませんが,なんとも. - Rusutaku (2006年03月14日 16時50分29秒)
  • 該当箇所は plugin::calendar::CalendarHandler::make_anchor を呼び出した返り値を使用しているのですが,私のコーディングに不備があるのかもしれません.識者のアドバイスをいただけたらと思います. - Rusutaku (2006年03月14日 17時05分25秒)
  • 返答ありがとうございます。サーバーはland.toです。どなたか原因分かる方いたらよろしくお願いします。 - 名無しさん (2006年03月15日 22時55分33秒)
  • 原因は特定出来ませんでしたが、カレンダープラグインをインストールし直したところ正常に動作しました。こちら側で何か変更を加えていたようです。調べていただいた方には大変申し訳ありませんでした。 - 名無しさん (2006年03月16日 11時56分50秒)
  • カレンダーをBlogがわりにつかっているんですが、ページ頭に見出し+リンク[]を使っている場合も、そのまま生ソースで目次されてしまうんですか? - ふる (2006年03月16日 21時55分06秒)
  • 私がレンタルサーバ上で運用している関係から,あまり負荷をかけぬよう,要約抜き出しはコメント行とプラグイン書式を除去したソースを表示するようにしています. - Rusutaku (2006年03月17日 08時25分30秒)
  • リンク書式をパースしてみるパッチを作ってみます. - Rusutaku (2006年03月17日 08時31分43秒)
  • Wiki::process_wiki を使ってパースしようとしたらエラーが出たのでくじけました. - Rusutaku (2006年03月20日 22時49分34秒)
  • ある程度パースするパッチです.indexcalendar_parse_for_20060315.patch(471)
  • 上記パッチの処理が不完全だったのを修正しました. - Rusutaku (2006年03月22日 11時55分15秒)
  • すみません、パッチのあてかたがよくわかりません…… - 名無しさん (2006年03月30日 01時33分38秒)
  • たぶん,上記patchファイルを IndexCalendarHandler.pmと同じディレクトリに置いて,
patch < indexcalendar_parse_for_20060315.patch 

でしょうね.patchコマンドがありませんか? - kasai (2006年03月30日 10時19分36秒)

  • ありがたく使わせてもらってます.ところで,目次一覧で日付 (例えば 2006-03-30:)の後に改行せずに要約が表示される形式にするにはどのようにしたらいいでしょうか? - kasai (2006年03月30日 10時23分10秒)
  • 少々乱暴な方法ですが,IndexCalendarHandler.pm 内
$content = $wiki->process_wiki($content);

の次の行に

$content =~ s|\A<p>||;
$content =~ s|</p>\Z||;

を挿入してください. - Rusutaku (2006年03月30日 16時40分06秒)

  • うまくいきました.感謝です.こんな感じです. - kasai (2006年03月30日 22時07分41秒)
  • 月指定がハッシュを返すのは、拙作のURL生成関数を活用した標準プラグイン群を採用していたためだと思います。CalendarHandler.pmのmake_anchorメソッドは、連想配列を返すように変更していました。 - A_M (2006年04月05日 10時28分19秒)
  • パッチですが、コマンドラインでやるってことでしょうか? レンタルサーバに設置しているので使えないみたいなんですが、やっぱりローカルでやったほうがいいのでしょうか? - 名無しさん (2006年04月05日 12時39分02秒)
  • あ、その通りですね。「URL生成関数を活用した標準プラグイン群」を使用していました。 - 名無しさん (2006年04月05日 22時18分05秒)
  • IndexCalendarHandler.pmをBugTrack-plugin/249用に修正したものをwithBT249.zip(453)として添付しておきました。 - A_M (2006年04月05日 22時37分39秒)
  • 最近 (Vine 3.2にしたからか?) indexcalendar が反応しなくなりました.topで見ると%CPUを食いつぶしてしまうようです. - kasai (2006年05月11日 10時58分12秒)
お名前: コメント: