[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: DOCBOOK-APPS: Chunk wish
Hi, I've customized the following templates, so that it chunks chapter by chapter. However this patch is specific to my need... BG
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'> <xsl:import href="/path-to-docbook-1.34/html/xtchunk.xsl"/> <xsl:output method="html" encoding="ISO-8859-1"/> <xsl:param name="base.dir">/the-base-dir/</xsl:param> <xsl:param name="tablecolumns.extension">0</xsl:param> <xsl:template name="process-chunk-element"> <xsl:variable name="root" select="count(parent::*) > 0"/> <xsl:variable name="prev" select="(preceding::book[1] |preceding::preface[1] |preceding::chapter[1] |preceding::appendix[1] |preceding::part[1] |preceding::reference[1] |preceding::refentry[1] |preceding::colophon[1] |preceding::article[1] |preceding::bibliography[1] |preceding::glossary[1] |preceding::index[1] |preceding::setindex[1] |ancestor::set |ancestor::book[1] |ancestor::preface[1] |ancestor::chapter[1] |ancestor::appendix[1] |ancestor::part[1] |ancestor::reference[1] |ancestor::article[1])[last()]"/> <xsl:variable name="next" select="(following::book[1] |following::preface[1] |following::chapter[1] |following::appendix[1] |following::part[1] |following::reference[1] |following::refentry[1] |following::colophon[1] |following::bibliography[1] |following::glossary[1] |following::index[1] |following::article[1] |following::setindex[1] |descendant::book[1] |descendant::preface[1] |descendant::chapter[1] |descendant::appendix[1] |descendant::article[1] |descendant::bibliography[1] |descendant::glossary[1] |descendant::index[1] |descendant::colophon[1] |descendant::setindex[1] |descendant::part[1] |descendant::reference[1] |descendant::refentry[1])[1]"/> <xsl:variable name="ischunk"> <xsl:call-template name="chunk"/> </xsl:variable> <xsl:variable name="chunkfn"> <xsl:if test="$ischunk='1'"> <xsl:apply-templates mode="chunk-filename" select="."/> </xsl:if> </xsl:variable> <xsl:if test="$ischunk='0'"> <xsl:message> <xsl:text>Error </xsl:text> <xsl:value-of select="name(.)"/> <xsl:text> is not a chunk!</xsl:text> </xsl:message> </xsl:if> <xsl:variable name="filename"> <xsl:call-template name="make-relative-filename"> <xsl:with-param name="base.dir" select="$base.dir"/> <xsl:with-param name="base.name" select="$chunkfn"/> </xsl:call-template> </xsl:variable> <xsl:message> <xsl:text>Writing </xsl:text> <xsl:value-of select="$filename"/> <xsl:text> for </xsl:text> <xsl:value-of select="name(.)"/> </xsl:message> <xsl:call-template name="write.chunk"> <xsl:with-param name="filename" select="$filename"/> <xsl:with-param name="content"> <xsl:call-template name="chunk-element-content"> <xsl:with-param name="prev" select="$prev"/> <xsl:with-param name="next" select="$next"/> </xsl:call-template> </xsl:with-param> </xsl:call-template> </xsl:template> <xsl:template match="sect1"> <xsl:variable name="id"> <xsl:call-template name="object.id"/> </xsl:variable> <div class="{name(.)}"> <a name="{$id}"/> <xsl:call-template name="sect1.titlepage"/> <xsl:if test="$generate.section.toc != '0' or refentry"> <xsl:call-template name="section.toc"/> </xsl:if> <xsl:apply-templates/> </div> </xsl:template> </xsl:stylesheet>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC