Добавить значение метаданных только на страницу документа
Мне нужно знать, какая страница является страницей toc в нашем html-выводе из нашего индекса Solr. Я хотел бы добавить запись метаданных, которая идентифицирует вывод как ток. Все, что я попробовал, помещает ценность во все страницы. Мы используем docbook 4.5, и я очень новичок в xslt. Любые указатели в правильном направлении были бы большой помощью.
Спасибо!
1 ответ
Я не думаю, что таблицы стилей DocBook XSL предоставляют какой-либо симпатичный способ сделать это, поэтому вот уродливый хак:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import
href="/usr/share/xml/docbook/stylesheet/docbook-xsl/html/chunk.xsl"/>
<xsl:template name="head.content.generator">
<xsl:param name="node" select="."/>
<xsl:if test="not(parent::*)">
<meta name="TOC" content="This is the TOC"/>
</xsl:if>
<meta name="generator" content="DocBook {$DistroTitle} V{$VERSION}"/>
</xsl:template>
</xsl:stylesheet>
Вам нужно поместить это в файл с именем docbook-custom.xsl
и вызовите это из вашего XSLT-движка:
xsltproc docbook-custom.xsl BOOK.xml
В пределах docbook-custom.xsl
Файл "настройки слоя", вам нужно установить href
значение xsl:import
элемент, где у вас фактически есть установленные таблицы стилей DocBook XSL.
http://www.sagehill.net/docbookxsl/CustomMethods.html содержит общие сведения.
Конечно вместо <meta name="TOC" content="This is the TOC"/>
в приведенной выше таблице стилей вы хотите изменить это на любой фактический meta
Элемент, который вы хотите добавить.
Этот слой настройки настраивает head.content.generator
шаблон, чтобы заставить его принять все, что вы на самом деле установить в качестве своего meta
элемент, и введите это непосредственно перед meta name="generator"
элемент, который выводят сами таблицы стилей DocBook.
<xsl:if test="not(parent::*)">…</xsl:if>
заставляет таблицы стилей выводить ваши пользовательские meta
элемент только в первом выходном HTML "чанке", который по умолчанию называется index.html
и который по умолчанию является тем же файлом, в который включено оглавление.