Question

Je voudrais faire certaines lignes d'une table des matières DocBook gras selon que le <section> particulier a un certain attribut défini. C'est facile en ajoutant une déclaration <xsl:if test="..."> au DocBook XSL (fo / lignes autotoc.xsl 187-230 - ce qui est pour la sortie au format PDF à l'aide XMLmind).

Je me demande, cependant, si elle est une mauvaise pratique pour modifier le DocBook se XSL. J'ai d'autres personnalisations dans un XSL séparée mes propres, les paramètres de réglage pour la plupart, mais je ne peux pas imaginer comment j'introduire cette logique conditionnelle - fonction de la ligne de la table des matières est en cours de traitement - sans mettre une sorte de code dans les originaux. Des pensées? Comment avez-vous mise à niveau vers une version plus récente DocBook XSL après avoir modifié?

Était-ce utile?

La solution

Importation DocBook de votre propre feuille de style XSLT. Ensuite, (re) définir le modèle DocBook que vous voulez « override ».

Étant donné que votre modèle sera le plus haut dans l'arbre à l'importation, il aura la priorité.

En le faisant de cette façon vous ne devez pas modifier l'un des principaux fichiers XSLT DocBook. Il fera des mises à niveau de DocBook StyleSheets plus facile à l'avenir.

<?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> 
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top