DocBook XSL - можно редактировать исходные таблицы стилей?

StackOverflow https://stackoverflow.com/questions/1726194

  •  19-09-2019
  •  | 
  •  

Вопрос

Я хотел бы внести определенные строки в оглавление DocBook смелый основываясь на том, является ли конкретный <section> имеет определенный атрибут.Это легко сделать, добавив <xsl:if test="..."> инструкция к DocBook XSL (fo / autotoc.xsl строки 187-230 - это для вывода в PDF с помощью XMLMind).

Однако мне интересно, не является ли плохой практикой редактирование самих DocBook XSLS.У меня есть другие настройки в отдельном моем собственном XSL, в основном устанавливающие параметры, но я не могу представить, как я мог бы ввести эту условную логику - на основе того, какая строка TOC в данный момент обрабатывается - без добавления какого-либо кода в оригиналы.Есть какие-нибудь мысли?Как перейти на более новую версию DocBook XSL после внесения изменений?

Это было полезно?

Решение

Импорт таблицы стилей docbook из вашего собственного XSLT.Затем (повторно) определите шаблон Docbook, который вы хотите "переопределить".

Поскольку ваш шаблон будет самым высоким в дереве импорта, он будет иметь приоритет.

Делая это таким образом, вам не нужно изменять ни один из основных файлов docbook XSLT.В будущем это упростит обновление таблиц стилей Docbook.

<?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> 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top