⋮ 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í.
- Konfigurační volba: config:disableactions
- Výchozí stav: XML Syndication (RSS) nezaškrtnuto
Odkazy
Každá položka vytvořeného kanálu bude mít odkaz; tato volba určuje, kam bude odkaz směřovat.
- Konfigurační volba: config:rss_linkto
- URL parametr: linkto
- Výchozí hodnota: diff
- Možné hodnoty:
| 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.
- Konfigurační volba: config:rss_content
- URL parametr: content
- Výchozí hodnota: abstract
- Možné hodnoty:
| 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.
- Konfigurační volba: config:rss_media
- URL parametr: view
- Výchozí hodnota: both
- Možné hodnoty: both, pages, media
| 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.
- Konfigurační volba: config:rss_type
- URL parametr: type
- Výchozí hodnota: rss1
- Možné hodnoty:
| 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.
- Konfigurační volba: žádná
- URL parametr: mode
- Výchozí hodnota: recent
- Možné hodnoty:
| 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.
- Konfigurační volba: žádná
- URL parametr: ns
- Výchozí hodnota: *
- Možné hodnoty: libovolný platný jmenný prostor
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).
- Konfigurační volba: žádná
- URL parametr: sort
- Výchozí hodnota: natural
- Možné hodnoty: date, natural
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.
- Konfigurační volba: config:recent
- URL parametr: num
- Výchozí hodnota: config:recent
- Možné hodnoty: libovolné celé číslo
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.
- Konfigurační volba: žádná
- URL parametr: minor
- Výchozí hodnota: 0
- Možné hodnoty: 0 nebo 1
Zobrazit pouze nové položky
Umožní vypisovat pouze nově vytvořené položky.
- Konfigurační volba: žádná
- URL parametr: only_new
- Výchozí hodnota: 0
- Možné hodnoty: 0 nebo 1
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é.
- Konfigurační volba: config:rss_update
- URL parametr: žádný
- Výchozí hodnota: 5*60
- Možné hodnoty: čas v sekundách
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.
- Konfigurační volba: config:rss_show_summary
- URL parametr: žádný
- Výchozí hodnota: 1
- Možné hodnoty: 0 nebo 1
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é
- Agregace RSS/ATOM kanálů pro přidávání externích kanálů na stránky DokuWiki
- Tipy k nastavení kanálu při blogování s DokuWiki
- Plugin Feedauth posílá v kanálu hlavičku „authorization required“, což někteří klienti vyžadují.