Table of Contents

Новостные ленты XML

«Докувики» предоставляет некоторые свои данные для новостных лент XML с помощью файла feed.php. На новостную ленту можно подписаться в агрегаторе.

Функциональность XML-рассылки1) реализована в замечательном классе Feed Creator, написанном Каем Блэнкенхорном (Kai Blankenhorn).

Опции, заданные в конфигурации или переданные в URL

То, каким образом происходит рассылка, настраивается с помощью определённых опций. При вызове 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», и некоторые агрегаторы поддерживают её.

Подход, использующий .htusers

В моей конфигурации (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>

См. также

1)
XML Syndication