Pregunta

Me gustaría hacer ciertas líneas de una tabla de contenidos de DocBook atrevido en función de si el particular <section> tiene un determinado atributo definido.Esto es fácil añadiendo un <xsl:if test="..."> declaración al DocBook XSL (fo/autotoc.xsl líneas 187-230 - esto es para salida a PDF usando XMLMind).

Sin embargo, me pregunto si es una mala práctica editar los propios DocBook XSL.Tengo otras personalizaciones en un XSL propio, principalmente parámetros de configuración, pero no puedo imaginar cómo introduciría esta lógica condicional (basada en qué línea del TOC se está procesando actualmente) sin poner algún tipo de código. en los originales.¿Alguna idea?¿Cómo se actualiza a un DocBook XSL más nuevo después de realizar cambios?

¿Fue útil?

Solución

importación las hojas de estilo DocBook de su propio XSLT. Entonces, (re) definir la plantilla Docbook que desea "anular".

Desde su plantilla será el más alto en el árbol de importación, que tendrá prioridad.

Al hacerlo de esa manera usted no tiene que modificar cualquiera de los archivos principales docbook XSLT. Esto hará que las actualizaciones de la Docbook hojas de estilo más fácil en el futuro.

<?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> 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top