13.2. Tvorba WWW stránek pomocí XML

Práce s DocBook website není opět nic složitého. Typický postup pro vytvoření webového sídla sestává z následujících kroků:

  1. pro každou jednotlivou WWW stránku vytvoříme samostatný XML soubor jehož obsah bude uzavřen do elementu webpage,

  2. hierarchii těchto jednotlivých stránek uvedeme do souboru layout.xml (bude obsahovat odkazy na jednotlivé podstránky),

  3. soubor layout.xml transformujeme pomocí autolayout.xsl, čímž vznikne soubor autolayout.xml,

  4. soubor autolayout.xml transformujeme do výsledné HTML podoby některou ze šablon (nejčastěji asi chunk-tabular.xsl).

Jednotlivé stránky

Každou stránku webu tedy uvedeme do samostatného XML souboru. Její obsah musí být uzavřen do značky website a vždy ji přiřadíme nějaké id, abychom se na ni mohli v případě potřeby odkazovat.

ikona
<!DOCTYPE webpage SYSTEM "../schema/dtd/website.dtd">

<webpage id="latex">
<config param="desc" value="Software - DocBook"/>
<config param="rcsdate" value="$Date: 2003/01/16 15:05:46 $"/>

<head>
<title>Software - DocBook</title>
<titleabbrev>DocBook</titleabbrev>
<summary>Software - DocBook</summary>
</head>

<webtoc />

<para>nějaký obsah webové stránky</para>

</webpage>

Do elementu head uzavíráme metainformace stránky. Element webtoc označuje místo, kam se mají generovat navigační prvky. Ty se však obvykle generují samy i bez jeho uvedení.

Samotný obsah webové stránky záleží na nás. Pro její tvorbu používáme známé DocBookové značky. Můžeme si vybrat mezi dvěma DTD - buď website.dtd, které obsahuje omezenou množinu značek (tzv. Simplified DocBook DTD) a nebo website-full.dtd, které obsahuje značky všechny.

Element config slouží pro modifikaci některých parametrů a vlastností stránky. Viz kapitola o modifikaci vzhledu.

ikona
Důležité:

Soubory pište v kódování UTF-8. Předejdete tak zbytečným problémům s parsováním XML souborů.

Nastavení hodnoty charset v hlavičce HTML souboru nemusíme řešit, všechny české znaky budou převedeny na UNICODE entity.

Struktura webu

Když vytvoříme jednotlivé stránky, musíme vytvořit soubor layout.xml, kterým je všechny spojíme do určité hierarchie. V podstatě definujeme obsah TOC a vhodným zanořením elementů vznikne hierarchické uspořádání celého webu.

ikona
<?xml version="1.0"?>
<!DOCTYPE layout PUBLIC "-//Norman Walsh//DTD Website Layout V2.4.0//EN"
          "http://docbook.sourceforge.net/release/website/2.4.0/schema/dtd/layout.dtd">
<layout>
  <config param="text-prefix" value="txt"/>

  <config param="homebanner-tabular" value="graphics/homebanner.png"
	  altval="Home Banner"/>
  <config param="banner-tabular"     value="graphics/banner.png"
	  altval="Banner"/>

  <copyright>
    <year>1999</year><year>2003</year><year>2001</year>
    <holder role="http://nwalsh.com/~ndw/">Norman Walsh</holder>
  </copyright>

  <style src="example.css" type="text/css"/>

  <toc page="index.xml" filename="index.html">
    <tocentry page="software.xml" filename="software.html" tocskip='1'>
      <tocentry page="software-latex.xml"
          filename="software-latex.html" revisionflag="changed" />
      <tocentry page="software-docbook.xml"
          filename="software-docbook.html"/>
    </tocentry>
    <tocentry page="form.xml" filename="form.html" dir="form" />
  </toc>

  <notoc page="about.xml" filename="about.html"/>
</layout>

Tato ukázka názorně demonstruje, jak se taková struktura definuje. Povšimněte s v úvodní části elementu config, který v tomto případě definuje obrázkové logo, jež bude umístěno nad navigačním menu. Dále následuje element copyright, který vygeneruje informace o copyrightu do pravého dolního rohu každé stránky.

Element style definuje umístění kaskádového stylu stránek.

Element toc definuje strukturu webu. Pokud chceme stránky seskupit uděláme to pomocí tocentry. Zpravidla vytvoříme jednu „hlavní nadřízenou“ stránku - v tomto případě software.xml s prázdným obsahem, protože definicí atributu tocskip="1" bude automaticky nabídnuta první podstránka v hierarchii. Hlavní nadřízená stránka samozřejmě také může mít svůj obsah, u zanořených skupin se to ale zpravidla nedělá.

U položek tocentry můžeme definovat některé atributy, zajímavý je revisionflag="changed", který položce menu přiřadí obrázek označující „novinku“.

V položce tocentry definujeme atributem page název zdrojové XML stránky a atributem filename jméno HTML souboru, pod kterým bude její obsah uložen.

Atributem dir="form" říkáme, že bude tato stránka uložena do podadresáře form, což usnadní orientaci zejména u rozsáhlejších webových sídel.

Stránky, které nebudou uvedeny v obsahu, ale dá se na ně odkazovat jiným způsobem uvedeme do elementu notoc.

ikona
Poznámka:

Navigační menu funguje tak, že když klikneme na kategorii, „rozbalí“ se podmenu s jejím obsahem. Po kliknutí mimo kategorii toto podmenu zase zmizí.

Soubory s XML nemusí být všechny umístěné v jednom adresáři. Můžeme je uložit do libovolných podadresářů pro usnadnění naší orientace. Tato adresářová hierarchie dokonce ani nemusí odpovídat hierarchii webu.

ikona
Ukázkový dokument pro DocBook Website

Tento soubor obsahuje ukázkový dokument pro DocBook website v XML i HTML verzi.

Generování HTML

Postup generování se ničím neliší od toho, co již známe. Jen je třeba mít na paměti, že v případě generování website musíme učinit dva průchody (layout.xml->autolayout.xml a autolayout.xml->HTML).

Nejsnáze to provedeme dávkovým souborem website_saxon.bat.

Vygenerované HTML soubory budou uloženy do podadresáře, který je v XSL specifikován parametrem output-root.

ikona
Důležité:

Až budete své webové stránky někam nahrávat, nezapomeňte připojit všechny soubory, které mají obsahovat. Zejména nezapomeňte na kaskádové styly a adresář s obrázky.