DokuWiki は、feed.php ファイルでデータを XML フィードとして提供しています。このフィードは フィードリーダー (RSS リーダー) に登録することができます。
XML フィード作成機能は、Kai Blankenhorn による秀逸な Feed Creator Class を利用して実装しています。
フィードをどのように作成するかについては、設定オプションで設定することができます。URL パラメータ無しで feed.php にアクセスした場合は、フィードの作成にこれらの設定オプションが使用されます。すべての設定オプションは URL パラメータで上書きすることができます。
作成されるフィード内の各アイテムにはリンクが設定されます。このオプションでは、リンク先の設定を行います。
設定値 | リンク先 |
---|---|
page | フィードが作成された時点のリビジョンのページ |
current | 最新リビジョンのページ |
rev | ページのリビジョン一覧画面 |
diff | ページの変更点の差分表示画面 |
フィードアイテムの内容に何を表示するかについては、このオプションで設定します。
設定値 | アイテムの内容 |
---|---|
abstract | ページの最初の段落 |
diff | ページの変更点の差分 (プレーンテキスト) |
htmldiff | ページの変更点の差分 (HTML 整形済みの表) |
html | HTML で整形されたページの内容すべて |
DokuWiki は様々な形式の XML フィードを作成することができます。
設定値 | フィード形式 |
---|---|
rss | RSS 0.91 |
rss1 | RSS 1.0 |
rss2 | RSS 2.0 |
atom | ATOM 0.3 |
atom1 | ATOM 1.0 |
feed.php はデフォルトでは最近変更されたページのリストを出力するために利用されますが、他のリスト方式で出力することもできます。
設定値 | リスト方式 |
---|---|
recent | 最近変更されたページを新しいものから順にリスト |
list | 名前空間内のすべてのページを単純にリスト (名前空間の選択は下記セクションを参照してください) |
search | 追加パラメータ q で指定される検索クエリにマッチしたページのリスト |
フィードに含まれるページを特定の名前空間に含まれるページだけに限定することができます。
リスト方式が list
の場合、フィードに含まれるのは指定された名前空間に直接所属するページのみとなります。その名前空間より下 (サブ名前空間) のページがすべて含まれるわけではないので注意してください。
リスト方式が recent
の場合、サブ名前空間のページも含まれます。
リスト方式が search
の場合、名前空間のフィルタは直接サポートされているわけではありませんが、検索クエリの中で @
構文を使用して名前空間を限定することができます (例: "検索文字列 @ns"
)。この場合は、サブ名前空間のページもフィードに含まれます。
フィード内でリストされるページ数を調整することができます。
小変更は、デフォルトではフィードに表示されません。この動作は URL パラメータを与えることによって変更することができます。
XML フィードは Wiki の負荷軽減のためキャッシュされます。このオプションでは、フィードキャッシュの有効期間を設定します。
通常、ページの編集の概要はフィードアイテムのタイトルに付加されます。この動作が不要な場合もあるため、オプションで付加しないように設定できるようになっています。
アクセス制御が有効化されている場合、閲覧が禁止されているページは公開フィード内には含まれなくなります。
もし制限されたページを含むフィードにアクセスしたい場合は、''http://example.com/dokuwiki/feed.php?u=username&p=password'' のようにしてユーザ名とパスワードを URL パラメータ経由で引き渡す必要があります。
この方法は安全ではなく、あなたの認証情報が漏洩してしまうことになります。もし DokuWiki が mod_php
上で動作している場合は、認証情報の引渡しを HTTP のベーシック認証経由で行うという、いくつかのフィードリーダーでサポートしているような方法も利用することができます。
私の設定環境 (DokuWiki 2008-05-05 と Liferea) においては、HTTP ベーシック認証を利用する上記の方法はそのままでは動作しませんでした。Web サーバ側から認証情報を求めないため、認証動作自体が起こっていないように見えます。そこで、強制的に認証動作を行わせるため、以下のような .htusers ファイル (DokuWiki のユーザ情報から作成) を設置して feed.php へのアクセスを制限してみました。
Apache で利用される .htusers ファイルを DokuWiki のユーザ情報から作成するために、以下のような簡単なスクリプトを使用しました。
user@host# cat update_htusers #!/bin/sh grep -v '^#' users.auth.php | cut -sd\: -f1,2 > .htusers
準備ができたら、DokuWiki のインストールディレクトリにある .htaccess に以下の設定を追加してください。
AuthType Basic AuthName "feed" AuthUserFile path-to-your-htusers-file <Files feed.php> Order deny,allow require valid-user </Files>