Содержание
Новостные ленты XML
«Докувики» предоставляет некоторые свои данные для новостных лент XML с помощью файла feed.php. На новостную ленту можно подписаться в агрегаторе.
Функциональность XML-рассылки1) реализована в замечательном классе Feed Creator, написанном Каем Блэнкенхорном (Kai Blankenhorn).
Опции, заданные в конфигурации или переданные в URL
То, каким образом происходит рассылка, настраивается с помощью определённых опций. При вызове feed.php
без аргументов, он использует эти опции для работы. Значения всех опций могут быть переписаны параметрами, переданными в URL.
Ссылки
Каждый элемент в созданной ленте имеет ссылку; эта опция определяет, куда эта ссылка указывает.
- Опция конфигурации: rss_linkto
- Параметр URL: linkto
- По умолчанию: diff
- Возможные значения:
Значение | Ссылка |
---|---|
page | Версия статьи на момент создания рассылки. |
current | Наиболее свежая версия статьи. |
rev | Страница со списком версий статьи. |
diff | diff-вид изменений статей. |
Содержание новостной ленты
Этой опцией определяется, что показывается в теле элемента новостной ленты.
- Опция конфигурации: rss_content
- Параметр URL: content
- По умолчанию: abstract
- Возможные значения:
Значение | Содержимое элемента |
---|---|
abstract | Первый параграф статьи |
diff | diff-вид изменений статьи в виде простого текста. |
htmldiff | diff-вид изменений статьи в виде таблице в формате HTML. |
html | Всё содержание статьи в виде HTML. |
Формат новостной ленты
«ДокуВики» может создавать 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 может быть использован для экспорта списка последних изменений (по умолчанию), но на ряду с этим может использоваться и для других списков.
- Опция конфигурации: none
- Параметр URL: mode
- По умолчанию: recent
- Возможные значения:
Значение | Режим списка |
---|---|
recent | Список наиболее свежих статей, самые свежие сверху. |
list | Простой список всех статей в пространстве имён (какого имени — см. ниже) |
search | Список статей, соответствующих запросу поиска, заданного в дополнительном параметре q |
Фильтр пространств имён
Лента новостей может быть ограничена статьями только конкретного пространства имён.
- Опция конфигурации: none
- Параметр URL: ns
- По умолчанию: *
- Возможные значения: любое допустимое пространство имён
В режиме списков list
лента будет содержать статьи только из данного пространства имён, но не из его подпространств.
В режиме списков recent
подпространства включаются.
Ограничение пространства имён напрямую не поддерживается для режима списков search
. Вместо этого вы можете ограничить пространство имён в запросе, используя символ «@», однако при этом будут включены подпространства.
Ограничение числа элементов
Здесь может быть определено число статей в рассылке новостей.
- Опция конфигурации: recent
- Параметр URL: num
- По умолчанию: 20
- Возможные значения: целое число
Включение малых правок
По умолчанию малые правок (minor edits) будут отражаться в рассылке. Это может быть изменено в параметре URL.
- Опция конфигурации: none
- Параметр URL: minor
- По умолчанию: 0
- Возможные значения: 0 или 1
Кэширование
Рассылки XML кэшируются для уменьшения нагрузки на вики. Эта опция контролирует, насколько долго кэши новостей считаются валидными.
- Опция конфигурации: rss_update
- Параметр URL: нет
- По умолчанию: 5*60
- Возможные значения: время в секундах
Сводки изменений
Сводка изменений статьи обычно включается в заголовок элемента новостной ленты. Это может быть нежелательно и может быть отключено.
- Опция конфигурации: rss_show_summary
- Параметр URL: нет
- По умолчанию: 1
- Возможные значения: 0 или 1
Примеры
- feed.php?type=rss2&num=5 возвращает RSS-2.0-рассылку пяти наиболее свежих изменений;
- feed.php?mode=list&type=atom&linkto=page&ns=wiki перечисляет все статьи в пространстве имён «wiki» в формате ATOM-0.3-рассылки, в которой каждый элемент связан непосредственно со статьёй.
Новостные ленты и списки доступа
Когда включены списки доступа (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>
См. также
- Агрегация рассылок RSS/ATOM для добавления внешних лент в ваши статьи «ДокуВики».
- Советы по установке рассылки, если хотите вести блог с помощью своей «ДокуВики».