Table of Contents

XML フィード

DokuWiki は、feed.php ファイルでデータを XML フィードとして提供しています。このフィードは フィードリーダー (RSS リーダー) に登録することができます。

XML フィード作成機能は、Kai Blankenhorn による秀逸な Feed Creator Class を利用して実装しています。

設定および URL オプション

フィードをどのように作成するかについては、設定オプションで設定することができます。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 のベーシック認証経由で行うという、いくつかのフィードリーダーでサポートしているような方法も利用することができます。

.htusers ファイルを利用する方法

私の設定環境 (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>

関連項目