⋮ Obsah

Šablony jmenných prostorů

https://www.dokuwiki.org/namespace_templates

DokuWiki podporuje scaffolding. Někdy můžete chtít, aby každá stránka v určitém jmenném prostoru vycházela ze společného základu. Například ve jmenném prostoru address můžete mít předem připravenou tabulku, kterou stačí jen vyplnit daty. Toho lze snadno dosáhnout pomocí tzv. „šablony jmenného prostoru“.

Když se vytvoří stránka, DokuWiki zjistí, zda existuje soubor šablony, a zobrazí ho v okně pro úpravy. Šablony jsou tedy .txt soubory a měly by obsahovat značkovací jazyk DokuWiki.

Soubory šablon

Lze použít dva typy souborů šablon:

Pokud jsou v jednom jmenném prostoru přítomny obě šablony (běžná i děděná), při vytváření nové stránky má přednost běžná _template.txt. To umožňuje odlišit stránky v hlavním jmenném prostoru od všech stránek v podřízených prostorech, což může být velmi užitečné.

POZNÁMKA: Jakékoli změny v souborech šablon ovlivní pouze nově vytvořené stránky, stávající stránky zůstanou nedotčeny.

Jedním ze způsobů, jak vytvořit soubor šablony, je:

  1. Pomocí wiki uložit stránku s obsahem, který chcete použít jako šablonu, do příslušného jmenného prostoru.
  2. Pomocí FTP nebo WebDAV soubor přejmenovat na _template.txt

pokud je to možné, upřednostněte použití pluginu TemplatePagename (viz vysvětlení níže).

Syntaxe

Obsah souboru je běžný značkovací jazyk wiki.

Nahrazovací vzory

Uvnitř souboru můžete použít některé nahrazovací vzory, které šablonu trochu zpřístupní.

@ID@ úplné ID stránky
@NS@ jmenný prostor stránky
@CURNS@ poslední část jmenného prostoru stránky
@!CURNS@ totéž jako výše, ale první znak je velké písmeno
@!!CURNS@ totéž jako výše, ale první znak každého slova je velké písmeno
@!CURNS!@ totéž jako výše, ale všechna písmena jsou velká
@PAGE@ název stránky (ID bez jmenného prostoru, podtržítka nahrazena mezerami)
@!PAGE@ totéž jako výše, ale první znak je velké písmeno
@!!PAGE@ totéž jako výše, ale první znak každého slova je velké písmeno
@!PAGE!@ totéž jako výše, ale všechna písmena jsou velká
@FILE@ název stránky (ID bez jmenného prostoru, podtržítka zůstávají)
@!FILE@ totéž jako výše, ale první znak je velké písmeno
@!FILE!@ totéž jako výše, ale všechna písmena jsou velká
@USER@ ID uživatele, který stránku vytváří
@NAME@ jméno uživatele, který stránku vytváří
@MAIL@ e-mailová adresa uživatele, který stránku vytváří
@DATE@ datum a čas zahájení editační relace
%a %d-%m-%y atd. např. Čt 06-12-12. strftime zástupné znaky nahrazeny časem vytvoření stránky
%% v šabloně se objeví doslovný znak %

Úpravy šablon přes wiki

Soubor _template.txt nelze upravovat přes DokuWiki (pouze někdo, kdo má přístup k souborům v systému souborů – obvykle administrátor přes FTP nebo WebDAV – může tyto soubory upravovat). Existují však tři způsoby, jak to obejít:

Upravitelné šablony pomocí symbolických odkazů

POZNÁMKA: Tato část obsahuje instrukce pro použití na Linux serveru a nebude fungovat na systému Windows.

Tímto způsobem můžete uložit šablony do speciálního jmenného prostoru a vytvořit symbolické odkazy, aby je DokuWiki našla. Můžete také zvolit, že konkrétní šablona nebude upravitelná tím, že odstraníte její konkrétní symlink.

  1. Vytvořte jmenný prostor s názvem „templates“ nebo podobně.
  2. V tomto prostoru vytvořte stránku pro každou šablonu jmenného prostoru, kterou chcete upravovat.
  3. Postupujte podle výše uvedených instrukcí, ale vytvořte z _template.txt pevný odkaz 1) na správnou stránku ve vašem jmenném prostoru šablon. Nyní máte šablonu, kterou lze snadno upravovat přes wiki rozhraní.

Další možností je vytvořit symbolické odkazy přímo ve složce. Vytvoříte tedy template.txt, což je symbolický odkaz na _template.txt ve vlastním jmenném prostoru.

cd /var/www/html/dokuwiki/data/pages/namespace/something
ln -s _template.txt template.txt

Aby tyto měkké odkazy (softlinky) fungovaly, může být nutné nastavit volbu FollowSymLinks pro tento adresář v konfiguraci vašeho webového serveru.

POZNÁMKA: Tato část obsahuje instrukce pro použití na Windows serveru a nebude fungovat na Linux systému.

Otevřete příkazový řádek (cmd.exe) na serveru a přejděte do umístění, kde chcete mít šablonu. Použijte příkaz MKLINK pro vytvoření symbolického odkazu.

cd c:\inetpub\wiki\data\pages\namespace\something
mklink template.txt _template.txt

Pluginy

Další funkce šablon jsou implementovány pomocí pluginů.

Všechny tyto pluginy jsou upravitelné pouze přes souborový systém.

Řešení problémů

Problém: Dojde k neočekávané chybě „no timestamp“, když server (Linux Ubuntu) nemůže zapisovat do adresáře /dokuwiki/data/pages/namespace. To se může stát, pokud adresář jmenného prostoru vytvoří administrátor jako <root>, aby mohl umístit soubor šablony jmenného prostoru do /dokuwiki/data/pages/namespace/, ještě před vytvořením první stránky.

1. Řešení: Než vytvoříte skrytý soubor šablony, nejprve vytvořte pomocnou stránku pomocí grafického rozhraní DokuWiki, například: yourserver/doku.php?id=namespace:dummy&do=edit Tím umožníte DokuWiki vytvořit adresář jmenného prostoru pod vlastní správou a zajistíte DokuWiki plná práva zápisu do vytvořeného adresáře.

2. Řešení: Administrátor <root> by měl být schopen změnit nastavení vlastníka a skupiny pomocí příkazu chown (např. chown www-data:www-data /dokuwiki/data/pages/namespace/ v CLI2)) a v první řadě by měl vytvořit nové adresáře a soubory s nastavením vlastník:skupina (owner:group) platným pro instalaci DokuWiki.

1)
Měkké odkazy zřejmě nefungují, viz poznámka o FollowSymLinks níže.
2)
Command Line Interface