«Докувики» предоставляет некоторые свои данные для новостных лент XML с помощью файла feed.php. На новостную ленту можно подписаться в агрегаторе.
Функциональность XML-рассылки1) реализована в замечательном классе Feed Creator, написанном Каем Блэнкенхорном (Kai Blankenhorn).
То, каким образом происходит рассылка, настраивается с помощью определённых опций. При вызове feed.php
без аргументов, он использует эти опции для работы. Значения всех опций могут быть переписаны параметрами, переданными в URL.
Каждый элемент в созданной ленте имеет ссылку; эта опция определяет, куда эта ссылка указывает.
Значение | Ссылка |
---|---|
page | Версия статьи на момент создания рассылки. |
current | Наиболее свежая версия статьи. |
rev | Страница со списком версий статьи. |
diff | diff-вид изменений статей. |
Этой опцией определяется, что показывается в теле элемента новостной ленты.
Значение | Содержимое элемента |
---|---|
abstract | Первый параграф статьи |
diff | diff-вид изменений статьи в виде простого текста. |
htmldiff | diff-вид изменений статьи в виде таблице в формате HTML. |
html | Всё содержание статьи в виде HTML. |
«ДокуВики» может создавать 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
. Вместо этого вы можете ограничить пространство имён в запросе, используя символ «@», однако при этом будут включены подпространства.
Здесь может быть определено число статей в рассылке новостей.
По умолчанию малые правок (minor edits) будут отражаться в рассылке. Это может быть изменено в параметре URL.
Рассылки XML кэшируются для уменьшения нагрузки на вики. Эта опция контролирует, насколько долго кэши новостей считаются валидными.
Сводка изменений статьи обычно включается в заголовок элемента новостной ленты. Это может быть нежелательно и может быть отключено.
Когда включены списки доступа (ACL), статьи с ограниченным доступом по чтению не будут включены в публичные ленты новостей.
Если вы хотите получить доступ к рассылкам ограниченных статей, вам нужно передать ваши имя пользователя и пароль в URL, как показано здесь:
''http://example.com/dokuwiki/feed.php?u=username&p=password''
Это не очень безопасно и может привести к утечке ваших персональных данных.
Но в тоже время, это может работать, когда «ДокуВики» работает поверх mod_php
, который передаёт логин/пароль через схему аутентификации «HTTP Basic Auth», и некоторые агрегаторы поддерживают её.
В моей конфигурации (dokuwiki 2008-05-05 и Liferea) аутентификация «HTTP Basic Auth» не работала «из коробки». Оказалось, что аутентификация не проходила потому, что веб-сервер не запрашивал её. Поэтому я принудил её совершаться, создав файл .htusers (из информации по пользователям «ДокуВики») и ограничил доступ к feed.php:
Я использовал следующий простой скрипт для генерации файла .htusers, используемый Apache, из данных пользователей «ДокуВики»:
user@host# cat update_htusers #!/bin/sh grep -v '^#' users.auth.php | cut -sd\: -f1,2 > .htusers
Добавьте к существующему файлу .htaccess в основной директории «ДокуВики»:
AuthType Basic AuthName "feed" AuthUserFile path-to-your-htusers-file <Files feed.php> Order deny,allow require valid-user </Files>