Šablona:pages

Z thewoodcraft.org


[editovat]

Template-info.svg Dokumentace


Tato šablona používá velmi složitou syntaxi nebo funkce parseru. Nepokoušejte se kód měnit, nejste-li si naprosto jisti, co děláte; pokud editace způsobí nečekané následky, urychleně ji vraťte. Veškeré experimenty byste měli provádět na pískovišti nebo ve svém uživatelském prostoru a nikoli zde.

Parametrizovaná šablona pro generování obsahu knih.

PoznámkaSeznam všech knih najdete na speciální stránce Special:IndexPages (v globálním menu Knihovna).

Parametry

Šablona původně vznikla jako náhrada za nefunkční tag <pages /> který nabízí rozšíření ProofreadPage, proto její základní parametry víceméně vychází z parametrů tohoto tagu – tedy až na parametr index=, protože název elektronické knihy, zpracované přes rozšíření (viz Help:Jak pracovat s knihami) je základním parametrem, bez kterého její použití nedává smysl. Proto je na první pozici.

Upozornění I když se může na první pohled zdát, že šablona {{pages}} vrací, to samé jako tag <pages /> není tomu tak. A je důležité vědět, v čem je ten rozdíl.
  1. Ke zpracování šablony dochází dříve(!), než začne parser interpretovat tagy.
  2. Tato šablona je závislá na konfiguraci rozšíření Loops, konkrétně na proměnné $egLoopsCounterLimit, která limituje počet načtených stránek. Při výchozí hodnotě 100, se zpracuje cca 100 stránek, ale záleží na množství vnořených šablon. Proto má wiki TheWoodcraft.org, kde se hojně šablony využívají, nastavenou hodnotu 2600.

Nápovědu k tagu <pages /> naleznete na webu wikisource.org. Klíčový je rozdíl v parametru exclude:

from
Číslo první stránky, kterou má začínat vybraný obsah
to
Číslo stránky, kterou má vybraný obsah končit. Není-li parametr uveden, jsou zobrazeny všechny zbývající stránky dokumentu.
exclude
Obsahuje číslo pouze jedné(!) stránky, která se má při zpracování přeskočit. To je zásadní rozdíl, oproti použití tagu <pages />, který umožňuje zpracovat seznam několika čísel, oddělených čárkou, případně i rozsah, pokud jsou dvě čísla spojena polčkou. Šablonu {{pages}} (ale i tag <pages />) lze s různými parametry použít na jedné stránce opakovaně. Není tedy důvod, proč kód zbytečně komplikovat zpracováním rozsahu.

Neimplementované parametry

Tag <pages /> má implementované parametry, které u šablony {{pages}} nejsou, poněvadž to není nutné. Více viz u příkladů použití šablony níže.

fromsection
Pokud mají includované stránky obsah rozdělený na sekce, lze pomocí tohoto parametru určit od které z nich se má začít obsah extrahovat (tento parametr využívá rozšíření LabeledSectionTransclusion)
tosection
Pokud mají includované stránky obsah rozdělený na sekce, lze pomocí tohoto parametru určit která z nich už do výběru nepatří (tento parametr využívá rozšíření LabeledSectionTransclusion)
onlysection
Pokud mají includované stránky obsah rozdělený na sekce, lze pomocí tohoto parametru určit která z nich se má ze stránky vytahovat (tento parametr využívá rozšíření LabeledSectionTransclusion)
step
Lze využít u dokumentů, jejichž obsah kontinuálně pokračuje na sudých a lichých stránkách (výchozí hodnota je 1)

Použití

Pokud si kladete otázku, co je lepší, zamyslete se nad následujícími body:

  • Použití šablony umožňuje velice snadno a rychle dohledat všechny stránky, na kterých je šablona použita.
  • Parametry šablony lze také (v případě potřeby) extrahovat do přehledné tabulky
  • Asi ten nejdůležitější argument je, že při použití šablony, dojde ke zpracování kódu až po transkluzi, kdežto při použití tagu <pages />, až po.

Základní použití

Příklad
{{pages|roll_1906.djvu
|from = 1
|to = 78
}}

Výsledek je stejný, jako kdybychom použili

<pages index="roll_1906.djvu" from="1" to="78">

Komplexní použití

Šablona {{pages}} umožňuje generování komplexních stránek, které naleznete v kategorii Kategorie:Singlepage.

U některých dokumentů není při prvotním zpracování jasné, jaké má být správné pořadí stránek. Tato šablona ale nabízí elegantní způsob, jak lze stránky snadno a rychle přeskupit. Někdy také chceme rozdělit zpracování singlepage stránky na více částí. Následující ukázkový kód generuje stránku Stará a nová cesta Lesní moudrosti, 1937 (sborník), na kterém to lze krásně demonstrovat.

Příklad
__NOEDITSECTION__
{{Vsuvka|
__TOC__
{{:Stará a nová cesta Lesní moudrosti, 1937}}
}}
{{#css: h2 { border: none; text-align: center; } h3 { border: none; text-align: center; } }}
{{pages|buk1937.djvu|from=1|to=1}}<!-- Bukovanského průvodní dopis 20.3.1937 -->
{{pages|buk1937.djvu|from=2|to=4}}
{{pages|buk1937.djvu|from=12}}
{{pages|buk1937.djvu|from=9|to=9}}
{{pages|buk1937.djvu|from=6|to=6}}<!-- Setonova návštěva o vánocích 1936 -->
{{pages|buk1937.djvu|from=5|to=8|exclude=6}}
{{pages|buk1937.djvu|from=10|to=11}}<!-- Zpráva o plánovaném táboře JGL 1937 -->
  • Především je nutno upozornit, že při použití tagu <pages />, by nefungovalo přesunutí (a generování) obsahu stránky (viz _‌_TOC_‌_)
  • Použití šablony umožňuje měnit přes CSS konfiguraci vybraných elementů na stránce – v tomto případě jsou centrovány nadpisy 3 a 2 úrovně.
  • Jak je z příkladu patrné, vložení jedné stránky lze provést uvedením jejího čísla v parametru from= i to=, jak vidíte např. u strany 1, nebo 6.
  • Navíc můžeme za šablonu přidat skrytou poznámku, která ve stručnosti uvádí, co zobrazovaný rozsah, nebo stránka obsahuje.
  • Vložení rozsahu stránek, je základní operace. Jelikož se od strany 12 již pořadí stránek nemění, proto není parametr to= nezbytně nutný – zpracování šablony se u poslední stránky totiž tak jako tak ukončí.
  • Vložení rozsahu stránek, ze kterého je potřeba vyjmout pouze jednu stránku, lze zajistit s využitím parametru exclude=. Ušetříme si tak minimálně jedno použití šablony {{pages}} na stránce.