⋮ Obsah

Syndikace XML

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.

Možnosti konfigurace/URL

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.

Zakázání

Ve výchozím stavu je XML kanál DokuWiki dostupný, ale lze jej vypnout v konfiguraci pro zakázání akcí.

Odkazy

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

Obsah kanálu

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

Typ obsahu

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

Formát kanálu

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

Režim seznamu

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

Filtrování jmenného prostoru

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.

Řazení položek

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á.

Limit položek

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.

Zahrnutí drobných úprav

Ve výchozím nastavení se v kanálu nezobrazují drobné úpravy. To lze změnit parametrem v URL.

Zobrazit pouze nové položky

Umožní vypisovat pouze nově vytvořené položky.

Kešování

(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é.

Shrnutí

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.

Příklady

RSS kanály a ACL

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í.

Přístup přes .htusers

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>

Viz také