Am Donnerstag, 16. Januar 2003 10:56 schrieb Roel Vanhout: > Thank you, this looked promising, but after playing with it (and > with all other methods suggested) I think it's not quite what I'm > looking for. It does however give me a nice starting point to try > to make my own implementation. What I'm trying to do is to put all > <sectx> content that has no <sectx + 1> children on one page, and > pass all <sectx + 1> child elements to the chunk template again to > have the same applied again. Wording it that, I'm going to try to > implement it. That is not to say that advice would not be welcome > ;)
Isnt this the same as "chunk all sections"?? this is easier to achieve by setting parameters chunk look at the parameters for chunking: http://docbook.sourceforge.net/release/xsl/snapshot/doc/html/rn18.html <xsl:param name="chunk.section.depth" select="1000"> <xsl:param name="chunk.first.sections" select="1"/> these parameters should chunk every sectx or section in your doc kind regards janning > cheers, > > roel > > Janning Vygen wrote: > > Am Montag, 13. Januar 2003 23:09 schrieb Bob Stayton: > >>On Mon, Jan 13, 2003 at 02:13:24PM -0500, Jeff Beal wrote: > >>>Customizing the chunking to the extent you appear to want is > >>>quite difficult, especially if you want to maintain reasonable > >>>previous/next/up links in the output. > > > > [...] > > > >>There was another message that suggested the use of PIs > >>in the document, but I don't think it was ever implemented. > >> > >>http://lists.oasis-open.org/archives/docbook-apps/200209/msg00007 > >>.h tml > > > > It was implemented. > > > > The file is attached to this mail. It was quite easy but it is > > not very well tested because the need for manual chunking via PI > > didn't arrise in the project it was made for. > > > > It just overrides the template name="chunk" > > > > you can use PIs like this to chunk a section. Just put it inside > > the section as a child of the section element. > > > > <?dbhtml chunk-childs="1" chunk-first-sections="0"?> > > > > I dont know if this file works with the newest docbook-xsl > > release. and it works only with chunkfast.xsl i think. > > > > I just hope it gives you a hint how easy it is to implement > > chunking with PIs. I hope this file can be of any help. > > > > kind regards > > janning > > > > > > > > ----------------------------------------------------------------- > >------- > > > > <?xml version="1.0"?> > > <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > version="1.0"> > > > > <!-- > > 2002, written by [EMAIL PROTECTED], > > 1) you can decide via Processing Instruction > > if you want to chunk the childs of the parent node of the > > PI 2) you can override the value of chunk.first.sections via PI > > > > Put PIs like this into your chapter or sections > > > > <?dbhtml chunk-childs="1" chunk-first-sections="0"?> > > > > chunk-first-sections is inherited by all subsequent childs > > if not changed again by another PI > > > > chunk-childs affects only the childs of the parnet node of > > the PI (put your PI _into_ a chapter to chunk the sections inside > > this chapter > > > > you can only decide to > > - chunk all childs but not the first > > - chunk all child including the first > > - chunk no childs > > > > NO WARRENTY, most of the code is copyright by xsl guru norm > > walsh --> > > > > <xsl:include href="chunkfast.xsl"/> > > > > <xsl:template name="dbhtml-chunk-childs"> > > <xsl:param name="pis" > > select="./processing-instruction('dbhtml')"/> <xsl:call-template > > name="dbhtml-attribute"> > > <xsl:with-param name="pis" select="$pis"/> > > <xsl:with-param > > name="attribute">chunk-childs</xsl:with-param> > > </xsl:call-template> > > </xsl:template> > > > > <xsl:template name="dbhtml-chunk-first-sections"> > > <xsl:param name="pis" > > select="./processing-instruction('dbhtml')"/> <xsl:call-template > > name="dbhtml-attribute"> > > <xsl:with-param name="pis" select="$pis"/> > > <xsl:with-param > > name="attribute">chunk-first-sections</xsl:with-param> > > </xsl:call-template> > > </xsl:template> > > > > <xsl:template name="chunk"> > > <xsl:param name="node" select="."/> > > <!-- returns 1 if $node is a chunk --> > > > > <xsl:variable name="dbhtml-chunk-childs"> > > <xsl:call-template name="dbhtml-chunk-childs"> > > <xsl:with-param name="pis" > > select="$node/parent::*/processing-instruction('dbhtml')"/> > > </xsl:call-template> > > </xsl:variable> > > > > <xsl:variable name="dbhtml-chunk-first-sections"> > > <xsl:call-template name="dbhtml-chunk-first-sections"> > > <xsl:with-param name="pis" > > select="$node/ancestor::*[contains(./processing-instruction('dbht > >ml'),'chunk-first-sections=')][1]/processing-instruction('dbhtml') > >"/> </xsl:call-template> > > </xsl:variable> > > > > <xsl:choose> > > <xsl:when test="not($node/parent::*)">1</xsl:when> > > > > <xsl:when test="local-name($node) = 'sect1' > > and ( $dbhtml-chunk-childs = 1 or > > ($chunk.section.depth >= 1 and $dbhtml-chunk-childs = '') ) > > and ( ($dbhtml-chunk-first-sections = 1 or ($chunk.first.sections > > != 0 and $dbhtml-chunk-first-sections = '') ) or > > count($node/preceding-sibling::sect1) > 0)"> > > <xsl:text>1</xsl:text> > > </xsl:when> > > <xsl:when test="local-name($node) = 'sect2' > > and ( $dbhtml-chunk-childs = 1 or > > ($chunk.section.depth >= 2 and $dbhtml-chunk-childs = '') ) > > and ( ($dbhtml-chunk-first-sections = 1 or ($chunk.first.sections > > != 0 and $dbhtml-chunk-first-sections = '') ) or > > count($node/preceding-sibling::sect2) > 0)"> > > <xsl:call-template name="chunk"> > > <xsl:with-param name="node" select="$node/parent::*"/> > > </xsl:call-template> > > </xsl:when> > > <xsl:when test="local-name($node) = 'sect3' > > and ( $dbhtml-chunk-childs = 1 or > > ($chunk.section.depth >= 3 and $dbhtml-chunk-childs = '') ) > > and ( ($dbhtml-chunk-first-sections = 1 or ($chunk.first.sections > > != 0 and $dbhtml-chunk-first-sections = '') ) or > > count($node/preceding-sibling::sect3) > 0)"> > > <xsl:call-template name="chunk"> > > <xsl:with-param name="node" select="$node/parent::*"/> > > </xsl:call-template> > > </xsl:when> > > <xsl:when test="local-name($node) = 'sect4' > > and ( $dbhtml-chunk-childs = 1 or > > ($chunk.section.depth >= 4 and $dbhtml-chunk-childs = '') ) > > and ( ($dbhtml-chunk-first-sections = 1 or ($chunk.first.sections > > != 0 and $dbhtml-chunk-first-sections = '') ) or > > count($node/preceding-sibling::sect4) > 0)"> > > <xsl:call-template name="chunk"> > > <xsl:with-param name="node" select="$node/parent::*"/> > > </xsl:call-template> > > </xsl:when> > > <xsl:when test="local-name($node) = 'sect5' > > and ( $dbhtml-chunk-childs = 1 or > > ($chunk.section.depth >= 5 and $dbhtml-chunk-childs = '') ) > > and ( ($dbhtml-chunk-first-sections = 1 or ($chunk.first.sections > > != 0 and $dbhtml-chunk-first-sections = '') ) or > > count($node/preceding-sibling::sect5) > 0)"> > > <xsl:call-template name="chunk"> > > <xsl:with-param name="node" select="$node/parent::*"/> > > </xsl:call-template> > > </xsl:when> > > <xsl:when test="local-name($node) = 'section' > > and ( $dbhtml-chunk-childs = 1 or > > ($chunk.section.depth >= count($node/ancestor::section)+1 and > > $dbhtml-chunk-childs = '') ) and ( ($dbhtml-chunk-first-sections > > = 1 or ($chunk.first.sections != 0 and > > $dbhtml-chunk-first-sections = '') ) or > > count($node/preceding-sibling::section) > 0)"> > > <xsl:call-template name="chunk"> > > <xsl:with-param name="node" select="$node/parent::*"/> > > </xsl:call-template> > > </xsl:when> > > > > <xsl:when test="name($node)='preface'">1</xsl:when> > > <xsl:when test="name($node)='chapter'">1</xsl:when> > > <xsl:when test="name($node)='appendix'">1</xsl:when> > > <xsl:when test="name($node)='article'">1</xsl:when> > > <xsl:when test="name($node)='part'">1</xsl:when> > > <xsl:when test="name($node)='reference'">1</xsl:when> > > <xsl:when test="name($node)='refentry'">1</xsl:when> > > <xsl:when test="name($node)='index' > > and (name($node/parent::*) = 'article' > > or name($node/parent::*) = > > 'book')">1</xsl:when> <xsl:when test="name($node)='bibliography' > > and (name($node/parent::*) = 'article' > > or name($node/parent::*) = > > 'book')">1</xsl:when> <xsl:when test="name($node)='glossary' > > and (name($node/parent::*) = 'article' > > or name($node/parent::*) = > > 'book')">1</xsl:when> <xsl:when > > test="name($node)='colophon'">1</xsl:when> <xsl:when > > test="name($node)='book'">1</xsl:when> > > <xsl:when test="name($node)='set'">1</xsl:when> > > <xsl:when test="name($node)='setindex'">1</xsl:when> > > <xsl:otherwise>0</xsl:otherwise> > > </xsl:choose> > > </xsl:template> > > > > </xsl:stylesheet> -- ----------------------- PLANWERK 6 websolutions Herzogstraße 85 40215 Düsseldorf fon 0211 - 601 606 93 fax 0211 - 601 591 7 [EMAIL PROTECTED] http://www.planwerk6.de -----------------------