pukiwikiプラグイン:pageinfo の変更点

お名前:


表記、そんな感じのものを作ったので、一応公開しておきます。~

*プラグイン概要 [#id97d6ce]

rssや(現在公式では未実装の)トラックバックなどで期待される、「ページのタイトル」「ページの概要」を提供するためのプラグインです。

例えばpukiwiki の日記系プラグインを使っていると、個々のページは『日記/2014-02-14』というようなタイトルで管理されます。
これ自体は別に良いのですが、例えば rssやトラックバックなどで外部から
参照される場合の『タイトル』として使うには、魂的にちょっと違います:~
『日記/xxxx』というのはサイトでの管理上のファイル名でしかなく、本来期待されるのはその日記内に書かれている記事のタイトルだろう、という意味で。~
似たような意味で、文書の概要を求める場合に『文書の先頭200文字』というのは、それなりにリーズナブルではあるものの、ページ内の構成によってはうまくないケースもありえます。

そこで、このプラグインでは一定ルールに従って
タイトルやDescription を自動生成する機能を提供します。

プラグインとして提供していますが、実質的には title/description を生成する汎用ライブラリとして使われることを想定しています。

*インストール方法 [#vf9ea7e2]
+本ページに添付されている下記ファイルをダウンロードし、pageinfo.inc.phpに名前変更して pukiwiki の pluginフォルダにおいてください。
--&attachref(pageinfo.inc.php_002);
+必要に応じて、当該プラグインファイル内の pageinfo_init() を書き替えてください。詳細は後述します。


*使い方 [#nec5e37f]

pageinfoプラグインはブロックプラグインです。~
パラメータの指定方法によって、3つの使い方があります。

**用法1 [#n11a36ee]
 #pageinfo

プラグインが記載されている現在ページを対象として、「タイトル」「概要」を生成・表示します。~
#pageinfo

使い方のイメージ:ページの先頭に配置して、ダイジェストとして利用する。

**用法2 [#r7235dbb]
 #pageinfo(<page>)
page で指定されたページを対象にして、「タイトル」「概要」を生成・表示します。

使い方イメージ:1つのページに複数の日付分の pageinfo を並べることで、複数記事のダイジェスト一覧がみられる。

**用法3 [#qfbac8c6]

 #pageinfo(<show|hide>,<title>,<description>)

タイトル、概要を自動解析ではなく、記載者が指定するモードです。~
この指定がある場合、必ずこちらで指定したタイトル・概要が適用されます(後述の正規表現ルールなどよりも優先します)。

第一パラメータで "hide"を指定すると、画面表示しません。これは後述の関数呼び出しを想定しての機能です。


*使い方:関数の利用 [#r6c57ded]
このプラグインでは、以下の2つの関数を持っています。~
これらは外部のプラグインからも呼び出されることを想定しているものです。~


 pageinfo_get_description(<page名>)
&lt;page名>で指定したファイルの「概要」をテキストで取得します。


 pageinfo_get_title(<page名>)
&lt;page名>で指定したファイルの「タイトル」をテキスト取得します。

あくまでプラグインの内部関数なので、使用したい外部プラグインでは
 if (file_exists(PLUGIN_DIR.'pageinfo.inc.php')) require_once PLUGIN_DIR.'pageinfo.inc.php';
・・・というような宣言が必要になるでしょう。



*使い方:タイトル・概要の取得指定方法 [#d03a4c7f]
このプラグインは初期状態では以下のルールに従ってタイトル・概要を作成します。

|タイトル|ファイル名そのもの|
|概要|当該ファイルの先頭250文字まで|

加えて、pageinfo_init() にルールを記載することで、『特定タイプのファイル名』のページに対して、『タイトル・概要の作成ルール』を作成することができます。~
ルールは複数作成できます。

ルールは正規表現を用いて指定します。~
サンプルを兼ねて、本プラグインの初期状態では以下のルールが記載されています。
|対象となるファイル名|"日記/"で始まるページ|
|タイトル|wikiテキストで最初に発見された **(見出し)|
|概要|wikiテキストで最初に発見された **(見出し)以降の文章から250文字|

Ver0.02 では、以下の制約があります。

-html での検索ルールを使用し、かつ画面表示する設定(用法1、用法2の書式)では、一部のプラグインが正常動作しません。特に動的要素が絡むものが駄目です。
(例えばコメント欄や、折りたたみがうまく動きません。
-wiki での検索ルールを使用する場合、概要に wiki書式が残ることがあります。
-通常ルール、およびwiki での検索ルールを使用する場合、概要に wiki書式が残ることがあります。



*技術的な話。 [#kfac01cc]

正規表現で検索・切り出しすることがポイントです。

内部的に、一度「現在のページをhtml化」するステップがあるため、そこでpageinfoを無効化しているのが特徴的なところでしょうか。

*変更履歴 [#d0dd33a5]
-2017.Feb.20 Ver0.02
--検索ルールを wiki書式優先に変更。理由詳細は下記 0.01版コメントを参照。

*コメント [#w01c23ae]

ご意見などがあれば。
#comment2(below)


#region(0.01版コメント)
-とりあえず、暫定対策として wiki書式を優先するように&事前設定の「日記用正規表現」をwiki書式版に変更した ver0.02を作成しました。 -- ともせ%管理人。 &new{2017-02-20 14:54:05 (月)};

-とりあえず、pageinfo_get_description(<page名>) に問題があることはわかりました。ダイジェストを作るときに内部的に一度(表示しない)html化をしているので、その際に「数を数える」タイプのプラグインが「空カウント」してしまっているようです。&br;html検索モードを廃止するかも・・・ -- ともせ%管理人。 &new{2017-02-19 22:54:41 (日)};

-いくつかのプラグインと干渉を起こしているようです。「regiongroupで、複数の折り畳みがあるときに後段のものを見失う」「comment系でうまく書き込めない?」。とりあえず、このページにコメントが必要な場合、[[掲示板]]をお使いください。 -- ともせ%管理人
#endregion
お名前: