Frage

Ich möchte bestimmte Zeilen eines DocBook Inhaltsverzeichnis machen fett basierend auf, ob die bestimmten <section> hat ein bestimmtes Attribut definiert. Dies ist leicht durch eine <xsl:if test="..."> Anweisung an den DocBook XSL Hinzufügen (fo / autotoc.xsl Linien 187-230 - das ist für die Ausgabe in PDF mit XMLmind).

Ich frage mich aber, wenn es die DocBook XSLs selbst zu bearbeiten schlechte Praxis ist. Ich habe andere Anpassungen in einem separaten XSL meines eigenen, meist Einstellparameter, aber ich kann mich nicht vorstellen, wie ich diese bedingte Logik einführen würde - basierend auf der Linie des TOC gerade bearbeitet wird - ohne irgendeine Art von Code zu setzen in den Originalen. Irgendwelche Gedanken? Wie aktualisieren Sie auf eine neuere DocBook XSL nach Änderungen vornehmen?

War es hilfreich?

Lösung

Import DocBook Stylesheets aus dem eigenen XSLT. Dann (re) definieren die Docbook Vorlage, die Sie „überschreiben“ wollen.

Da die Vorlage die höchste in dem Importbaum sein wird, wird es Vorrang.

Durch das so tun, müssen Sie nicht eine der Kern docbook XSLT-Dateien ändern. Es macht Upgrades der DocBook Stylesheets einfacher in der Zukunft.

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:import href="xsl/fo/docbook.xsl"/>

<xsl:template match="template-that-you-need-to-redefine">
  ...
</xsl:template>

</xsl:stylesheet> 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top