OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

docbook-apps message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [docbook-apps] choice of xsl modes in customization layer


Hi,
This can be accomplished using a customization similar to the html/onechunk.xsl 
variant, which is described here:

http://www.sagehill.net/docbookxsl/OneChunk.html

onechunk.xsl employs the chunking mechanism, but creates a single chunk.  The 
customization just makes everything in onechunk.xsl conditional on the name of the 
root element.   So you are not switching between chunking and non-chunking, just how 
big the chunks are.  Here is the customization, which you can tweak as needed:

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                version="1.0">

<xsl:import href="../docbook-xsl-1.76.1/html/chunk.xsl"/>

<xsl:param name="base.dir">htmlout/</xsl:param>

<xsl:param name="use.id.as.filename" select="1"/>

<xsl:param name="onechunk">
  <xsl:choose>
    <xsl:when test="local-name(/*[1]) = 'book'">0</xsl:when>
    <xsl:otherwise>1</xsl:otherwise>
  </xsl:choose>
</xsl:param>

<xsl:param name="root.filename">
  <xsl:choose>
    <xsl:when test="$onechunk != 0"></xsl:when>
    <xsl:otherwise>index</xsl:otherwise>
  </xsl:choose>
</xsl:param>

<xsl:param name="suppress.navigation">
  <xsl:choose>
    <xsl:when test="$onechunk != 0">1</xsl:when>
    <xsl:otherwise>0</xsl:otherwise>
  </xsl:choose>
</xsl:param>

<xsl:template name="href.target.uri">
  <xsl:param name="object" select="."/>

  <xsl:choose>
    <xsl:when test="$onechunk != 0">
      <xsl:text>#</xsl:text>
      <xsl:call-template name="object.id">
        <xsl:with-param name="object" select="$object"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="ischunk">
        <xsl:call-template name="chunk">
          <xsl:with-param name="node" select="$object"/>
        </xsl:call-template>
      </xsl:variable>

      <xsl:apply-templates mode="chunk-filename" select="$object"/>

      <xsl:if test="$ischunk='0'">
        <xsl:text>#</xsl:text>
        <xsl:call-template name="object.id">
          <xsl:with-param name="object" select="$object"/>
        </xsl:call-template>
      </xsl:if>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

</xsl:stylesheet>

Bob Stayton
Sagehill Enterprises
bobs@sagehill.net


----- Original Message ----- 
From: "Nathalie Sequeira" <n@n-faktor.net>
To: <docbook-apps@lists.oasis-open.org>
Sent: Wednesday, December 15, 2010 2:17 AM
Subject: [docbook-apps] choice of xsl modes in customization layer


> Hello,
>
> I have a docBook base that contains books and articles that are to be presented as 
> HTML.
>
> Seeing that there are docBook <article> and <book>, it would be desirable to make 
> use of both, and to use chunking for the books (e.g. Table of contents, and single 
> chapters each on another page), while articles do better displayed unchunked.
>
> In the customization layer, I would think I'd have to build something like
>
> if the dB starts with <article> --> use (i.e. import!) html/docbook.xsl
> if the dB starts with <book> -->  use docbook-chunk
>
> But I can't do that, since imports need to be top level, right?
> So, is there a provision in docbook to get this done?
>
> Thank you!
> Nathalie
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: docbook-apps-unsubscribe@lists.oasis-open.org
> For additional commands, e-mail: docbook-apps-help@lists.oasis-open.org
>
>
> 



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]