Hi,
I think you are running into the problem of too many import levels when 
customizing chunked HTML output.  Chunking relies on xsl:import to separate the 
actions of chunking from the actions of formatting each chunk element.  Because 
the epub/docbook.xsl stylesheet is already a customization layer, importing it 
and changing things adds another level of import precedence that can mess 
things up.  This section in my book describes the contraints on customizing 
chunked HTML:

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

The easiest way to avoid adding another level of import precedence to the epub 
stylesheet is to replace it, not import it.  That is, copy epub/docbook.xsl as 
your customization layer and add your templates there.  Because 
epub/docbook.xsl imports or includes the xhtml-1_1 stylesheet files, you'll 
probably need to adjust those paths to make it work unless you put your 
customization file in with the distribution files. If you are customizing both 
chunking behavior and formats, you may need to further divide your 
customization into two parts as described in my book.

The epub3 stylesheet under development will separate the templates into modules 
to make it easier to customize.

Bob Stayton
Sagehill Enterprises
[email protected]


  ----- Original Message ----- 
  From: Xmplar 
  To: [email protected] 
  Sent: Monday, November 14, 2011 3:25 AM
  Subject: [docbook-apps] Chunking dedication element for epub


  I have a report with dedication elements used for acknowledgments and 
executive summary. Currently, the acknowledgments and executive summary appear 
in the index.html chunk (following the titlepage recto and verso content). I 
want to create a separate chunk for each of the acknowledgments and executive 
summary, and have added to a customised stylesheet the templates <xsl:template 
name="chunk"> (to define dedication as a chunk), the template <xsl:template 
match="*" mode="recursive-chunk-filename" priority="1"> (to define a filename 
prefix for dedication) and the template match: 

    <xsl:template match="d:set|
      d:book|
      d:part|
      d:dedication|
      d:preface|
      d:chapter|
      d:appendix|
      d:article|
      d:reference|
      d:refentry|
      d:book/d:glossary|
      d:article/d:glossary|
      d:part/d:glossary|
      d:bibliography|
      d:colophon"
      priority="1">       

      <xsl:choose>
        <xsl:when test="$onechunk != 0 and parent::*">
          <xsl:apply-imports/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:call-template name="process-chunk-element"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:template> 

  While the customisation creates chunks for both acknowledgments and executive 
summary, this last template has the effect of:

  <!--[if !supportLists]-->1.       <!--[endif]-->Not including titles for both 
new chunks (although the content is there)

  <!--[if !supportLists]-->2.       <!--[endif]-->Not generating any tocs and 
lots chunks (I have set the book toc with separate lots for figures, tables, 
etc)

  <!--[if !supportLists]-->3.       <!--[endif]-->Removing all content from 
index.html.

  . and I haven't even looked at what's happening with the OPF and NCX files 
yet.

  I've tried to trace the chunking template logic starting with the template 
match coding above to see where I need to add the dedication element to the 
relevant coding - I've added it to <xsl:template 
name="chunk-first-section-with-parent" priority="1"> and <xsl:template 
name="chunk-all-sections" priority="1"> . 

  I hope there is a straightforward solution, otherwise can someone help to 
debug my customisations - my other option is to try manual chunking using the 
maketoc.xsl procedure in TCG. I'm using 1.76.1-ns. 

  Thanks,

  -- 
  Dave Gardiner

Reply via email to