FAQ: Použití XSL stylů

1. Je možné ovlivnit nějakým způsobem názvy souborů generovaných chunkerem?
2. Je možno vytáhnout poznámky pod čarou ještě jednou do zvláštní kapitoly?
3. Lze nějak nadefinovat, aby se obsah v HTML výstupu negeneroval na titulní stránce, ale na stránce následující? Na titulní stránce chci ponechat jen obsah elementu bookinfo.
4. Stáhnul jsem si nejnovější verzi Saxonu 8.x (7.x) a nefungují mi s ní XSL styly pro DocBook. Co dělám špatně?

1.

Je možné ovlivnit nějakým způsobem názvy souborů generovaných chunkerem?

Mam na mysli napr. nejaky atribut (id) elementu section atp.? Nyní z XSLT transformace lezou soubory s nazvy ar01s01s02s02s01.html atp. Jelikoz zdrojovy soubor ve formatu DocBook generuji automatizovane, je mozne, ze se bude poradi section menit a soucasne s tim by se jinak jmenovaly i vygenerovane html soubory – a tudiz by prestaly platit externi odkazy na vysledny html chunk.

Lze to ovlivnit velmi snadno. Jsou dvě možnosti, které můžete kombinovat.

  • Pokud nastavíte parametr XSLT stylů use.id.as.filename na 1, pro elementy, které mají ID, se vygeneruje soubor s názevem id.html (příponu lze ovlivnit parametrem html.ext).

  • Jméno souboru lze ovlivnit pomocí speciální PI:

    <chapter>
    <title>Ahoj</title>
    <?dbhtml filename="ahoj.html"?>
    ...

Autor: Jirka Kosek

2.

Je možno vytáhnout poznámky pod čarou ještě jednou do zvláštní kapitoly?

Jde, stačí si v XSLT napsat šablonu, která vytáhne všechny poznámky z dokumentu a pak na ně zavolá původní šablony pro formátovní poznámek pod čarou:

<xsl:template match="processing-instruction('ukazpoznamky')">
  <xsl:apply-templates select="//footnote"
                       mode="process.footnote.mode"/>
</xsl:template>

V dokumentu pak:

<chapter>
<title>Poznámky</title>

<para>Poznámnky z celého dokumentu</para>

<?ukazpoznamky?>

</chapter>

Autor: Jirka Kosek

3.

Lze nějak nadefinovat, aby se obsah v HTML výstupu negeneroval na titulní stránce, ale na stránce následující? Na titulní stránce chci ponechat jen obsah elementu bookinfo.

Stačí použít parametr chunk.tocs.and.lots:

<xsl:param name="chunk.tocs.and.lots" select="1"/>

Autor: Jirka Kosek

4.

Stáhnul jsem si nejnovější verzi Saxonu 8.x (7.x) a nefungují mi s ní XSL styly pro DocBook. Co dělám špatně?

Saxon 7 a 8 je implementace jazyka XSLT 2.0. Standardní styly pro zpracování DocBooku jsou však napsány v XSLT 1.0 a využívají jeho rozšíření, která Saxon 7/8 nepodporuje. Pro použití se styly si stáhněte Saxon 6.5.3, který implementuje XSLT 1.0.

Autor: Jirka Kosek