目次
XML フィード
DokuWiki は、feed.php ファイルでデータを XML フィードとして提供しています。このフィードは フィードリーダー (RSS リーダー) に登録することができます。
XML フィード作成機能は、Kai Blankenhorn による秀逸な Feed Creator Class を利用して実装しています。
設定および URL オプション
フィードをどのように作成するかについては、設定オプションで設定することができます。URL パラメータ無しで feed.php にアクセスした場合は、フィードの作成にこれらの設定オプションが使用されます。すべての設定オプションは URL パラメータで上書きすることができます。
リンク
作成されるフィード内の各アイテムにはリンクが設定されます。このオプションでは、リンク先の設定を行います。
- 設定オプション: rss_linkto
- URL パラメータ: linkto
- デフォルト値: diff
- 設定可能な値:
設定値 | リンク先 |
---|---|
page | フィードが作成された時点のリビジョンのページ |
current | 最新リビジョンのページ |
rev | ページのリビジョン一覧画面 |
diff | ページの変更点の差分表示画面 |
フィード内容
フィードアイテムの内容に何を表示するかについては、このオプションで設定します。
- 設定オプション: rss_content
- URL パラメータ: content
- デフォルト値: abstract
- 設定可能な値:
設定値 | アイテムの内容 |
---|---|
abstract | ページの最初の段落 |
diff | ページの変更点の差分 (プレーンテキスト) |
htmldiff | ページの変更点の差分 (HTML 整形済みの表) |
html | HTML で整形されたページの内容すべて |
フィード形式
DokuWiki は様々な形式の XML フィードを作成することができます。
- 設定オプション: rss_type
- URL パラメータ: type
- デフォルト値: rss1
- 設定可能な値:
設定値 | フィード形式 |
---|---|
rss | RSS 0.91 |
rss1 | RSS 1.0 |
rss2 | RSS 2.0 |
atom | ATOM 0.3 |
atom1 | ATOM 1.0 |
リスト方式
feed.php はデフォルトでは最近変更されたページのリストを出力するために利用されますが、他のリスト方式で出力することもできます。
- 設定オプション: 無し
- URL パラメータ: mode
- デフォルト値: recent
- 設定可能な値:
設定値 | リスト方式 |
---|---|
recent | 最近変更されたページを新しいものから順にリスト |
list | 名前空間内のすべてのページを単純にリスト (名前空間の選択は下記セクションを参照してください) |
search | 追加パラメータ q で指定される検索クエリにマッチしたページのリスト |
名前空間によるフィルタ
フィードに含まれるページを特定の名前空間に含まれるページだけに限定することができます。
- 設定オプション: 無し
- URL パラメータ: ns
- デフォルト値: *
- 設定可能な値: すべての妥当な名前空間
リスト方式が list
の場合、フィードに含まれるのは指定された名前空間に直接所属するページのみとなります。その名前空間より下 (サブ名前空間) のページがすべて含まれるわけではないので注意してください。
リスト方式が recent
の場合、サブ名前空間のページも含まれます。
リスト方式が search
の場合、名前空間のフィルタは直接サポートされているわけではありませんが、検索クエリの中で @
構文を使用して名前空間を限定することができます (例: "検索文字列 @ns"
)。この場合は、サブ名前空間のページもフィードに含まれます。
アイテムの上限
フィード内でリストされるページ数を調整することができます。
- 設定オプション: recent
- URL パラメータ: num
- デフォルト値: 20
- 設定可能な値: すべての整数値
小変更を含める
小変更は、デフォルトではフィードに表示されません。この動作は URL パラメータを与えることによって変更することができます。
- 設定オプション: 無し
- URL パラメータ: minor
- デフォルト値: 0
- 設定可能な値: 0 または 1
キャッシュ
XML フィードは Wiki の負荷軽減のためキャッシュされます。このオプションでは、フィードキャッシュの有効期間を設定します。
- 設定オプション: rss_update
- URL パラメータ: 無し
- デフォルト値: 5*60
- 設定可能な値: 単位を秒とする整数値
サマリ
通常、ページの編集の概要はフィードアイテムのタイトルに付加されます。この動作が不要な場合もあるため、オプションで付加しないように設定できるようになっています。
- 設定オプション: rss_show_summary
- URL パラメータ: 無し
- デフォルト値: 1
- 設定可能な値: 0 または 1
例
- feed.php?type=rss2&num=5 は、RSS 2.0 形式で最近更新された 5 ページを返します。
- feed.php?mode=list&type=atom&linkto=page&ns=wiki は、名前空間 “wiki” に含まれるすべてのページを ATOM 0.3 形式で返します。リンク先はフィードが作成された時点のリビジョンのページとなります。
フィードとアクセス制御
アクセス制御が有効化されている場合、閲覧が禁止されているページは公開フィード内には含まれなくなります。
もし制限されたページを含むフィードにアクセスしたい場合は、''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>
関連項目
- RSS/ATOM フィードの集約: DokuWiki のページに外部サイトのフィードを埋め込む
- feed プラグイン: ブログの記事をより多彩な方法で RSS 出力する
- フィードの設定: DokuWiki をブログツールとして使う場合の設定のヒント