https://www.dokuwiki.org/syndication
DokuWiki zpřístupňuje část svých dat jako XML kanál prostřednictvím souboru feed.php. Kanál lze odebírat pomocí čtečky zpráv.
Funkce XML syndikace byla implementována pomocí vynikající knihovny „Feed Creator Class“ od Kaie Blankenhorna.
Způsob generování kanálu lze nastavit pomocí určitých konfiguračních voleb. Pokud je feed.php volán bez jakýchkoli argumentů, použije tyto volby k vytvoření kanálu. Všechny volby lze také přepsat parametry předanými v URL.
Ve výchozím stavu je XML kanál DokuWiki dostupný, ale lze jej vypnout v konfiguraci pro zakázání akcí.
Každá položka vytvořeného kanálu bude mít odkaz; tato volba určuje, kam bude odkaz směřovat.
| Hodnota | Cíl odkazu |
|---|---|
| page | revize stránky platná v okamžiku vytvoření kanálu |
| current | aktuálně nejnovější revize stránky |
| rev | pohled na konkrétní revizi stránky |
| diff | diff zobrazení změn stránky |
Co se zobrazuje v tělech položek kanálu, je řízeno touto volbou.
| Hodnota | Obsah položky |
|---|---|
| abstract | první odstavec stránky |
| diff | prostý textový diff změn stránky |
| htmldiff | HTML tabulka diffu změn stránky |
| html | plně vykreslený HTML obsah stránky |
Určuje, zda se do seznamu položek kanálu zahrnují i média.
| Hodnota | Obsah položky |
|---|---|
| both | vypisuje stránky i média |
| pages | vypisuje pouze stránky, média nevypisuje |
| media | vypisuje pouze média, stránky nevypisuje |
DokuWiki umí vytvářet XML kanály v několika formátech.
| Hodnota | Formát kanálu |
|---|---|
| rss | RSS 0.91 |
| rss1 | RSS 1.0 |
| rss2 | RSS 2.0 |
| atom | ATOM 0.3 |
| atom1 | ATOM 1.0 |
feed.php lze použít k exportu seznamu posledních změn (výchozí), ale lze jej použít i pro jiné seznamy.
| Hodnota | Režim seznamu |
|---|---|
| recent | vypíše nejnovější položky changelogu s nejnovější nahoře (odpovídá wiki stránce Poslední změny) |
| list | jednoduše vypíše všechny stránky v daném jmenném prostoru (viz níže, jak jej zvolit) |
| search | vypíše stránky odpovídající danému dotazu, předanému dalším parametrem q |
Kanál lze omezit tak, aby zahrnoval pouze stránky z určitého jmenného prostoru.
V režim seznamu list bude kanál obsahovat stránky pouze z daného jmenného prostoru, bez podřízených jmenných prostorů.
V režim seznamu recent jsou podřízené jmenné prostory zahrnuty.
Omezení jmenného prostoru není přímo podporováno pro režim seznamu search. Místo toho můžete dát omezení jmenného prostoru přímo do dotazu (pomocí syntaxe @) - to však bude zahrnovat podřízené jmenné prostory.
Způsob řazení stránek v kanálu lze změnit (pouze pro režim seznamu list).
Ovlivňuje pouze režim seznamu list. Přirozené řazení je prosté pořadí, v jakém jsou stránky uloženy.
V režim seznamu recent jsou stránky vždy řazeny podle data, jak již název napovídá.
Lze řídit i maximální počet stránek uvedených v kanálu.
Poznámka: Skutečný počet vrácených položek bude dále omezen počtem položek, které splní kritéria kanálu.
Ve výchozím nastavení se v kanálu nezobrazují drobné úpravy. To lze změnit parametrem v URL.
Umožní vypisovat pouze nově vytvořené položky.
(Ukládání do mezipaměti)
XML kanály jsou kešovány, aby se snížila zátěž wiki. Tato volba určuje, jak dlouho jsou keše kanálu platné.
Souhrn změny stránky je obvykle zahrnuto v titulku položky kanálu. To může být někdy nechtěné a lze to vypnout.
Pokud jsou seznamy ACL povoleny, stránky s omezeným čtením se do veřejných kanálů nezahrnují.
Chcete-li přistupovat ke kanálům omezených stránek, je nutné předat do URL uživatelské jméno a heslo takto: ''http://example.com/dokuwiki/feed.php?u=username&p=password''.
Toto není příliš bezpečné a může vést k úniku přihlašovacích údajů. Pokud DokuWiki běží nad
mod_php, může fungovat i předání přihlašovacích údajů přes HTTP Basic Auth, které některé čtečky podporují.
V mém nastavení (DokuWiki 2008-05-05 a Liferea) HTTP Basic Auth nefungoval ihned po instalaci. Zdá se, že k ověření nedocházelo, protože se na něj webový server neptal. Proto jsem jej vynutil vytvořením souboru .htusers (z uživatelských informací DokuWiki) a omezením přístupu k feed.php:
Pro vygenerování souboru htusers (používaného Apachem) z uživatelských dat DokuWiki jsem použil tento jednoduchý skript:
user@host# cat <<EOF > update_htusers #!/bin/sh grep -v '^#' users.auth.php | cut -sd\: -f1,2 > .htusers EOF user@host# chmod +x update_htusers user@host# ./update_htusers
Do stávajícího .htaccess v hlavní složce DokuWiki přidejte:
AuthType Basic AuthName "feed" AuthUserFile path-to-your-htusers-file <Files feed.php> Order deny,allow require valid-user </Files>