<xsl:call-template name="dbhtml-dir"/>
</xsl:if>
+ <xsl:value-of select="$chunked.filename.prefix"/>
+
<xsl:value-of select="$fn"/>
<!-- You can't add the html.ext here because dbhtml filename= may already -->
<!-- have added it. It really does have to be handled in the recursive template -->
<xsl:call-template name="make-relative-filename">
<xsl:with-param name="base.dir">
<xsl:if test="$manifest.in.base.dir = 0">
- <xsl:value-of select="$base.dir"/>
+ <xsl:value-of select="$chunk.base.dir"/>
</xsl:if>
</xsl:with-param>
<xsl:with-param name="base.name">
<xsl:call-template name="make-relative-filename">
<xsl:with-param name="base.dir">
<xsl:if test="$manifest.in.base.dir = 0">
- <xsl:value-of select="$base.dir"/>
+ <xsl:value-of select="$chunk.base.dir"/>
</xsl:if>
</xsl:with-param>
<xsl:with-param name="base.name">
<xsl:call-template name="make-relative-filename">
<xsl:with-param name="base.dir">
<xsl:if test="$manifest.in.base.dir = 0">
- <xsl:value-of select="$base.dir"/>
+ <xsl:value-of select="$chunk.base.dir"/>
</xsl:if>
</xsl:with-param>
<xsl:with-param name="base.name">
<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.dir" select="$chunk.base.dir"/>
<xsl:with-param name="base.name" select="$chunkfn"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="write.chunk">
<xsl:with-param name="filename">
<xsl:call-template name="make-relative-filename">
- <xsl:with-param name="base.dir" select="$base.dir"/>
+ <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
<xsl:with-param name="base.name">
<xsl:call-template name="dbhtml-dir"/>
+ <xsl:value-of select="$chunked.filename.prefix"/>
<xsl:apply-templates select="." mode="recursive-chunk-filename">
<xsl:with-param name="recursive" select="true()"/>
</xsl:apply-templates>
<xsl:if test="string($lot) != ''">
<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.dir" select="$chunk.base.dir"/>
<xsl:with-param name="base.name">
<xsl:call-template name="dbhtml-dir"/>
<xsl:value-of select="$type"/>
<xsl:if test="$chunk.tocs.and.lots != 0 and $nav.context != 'toc'">
<a accesskey="t">
<xsl:attribute name="href">
+ <xsl:value-of select="$chunked.filename.prefix"/>
<xsl:apply-templates select="/*[1]"
mode="recursive-chunk-filename">
<xsl:with-param name="recursive" select="true()"/>
<xsl:call-template name="write.text.chunk">
<xsl:with-param name="filename">
<xsl:if test="$manifest.in.base.dir != 0">
- <xsl:value-of select="$base.dir"/>
+ <xsl:value-of select="$chunk.base.dir"/>
</xsl:if>
<xsl:value-of select="$manifest"/>
</xsl:with-param>
<xsl:param name="chunker.output.media-type" select="''"/>
<xsl:param name="chunker.output.cdata-section-elements" select="''"/>
+<!-- Make sure base.dir has a trailing slash now -->
+<xsl:param name="chunk.base.dir">
+ <xsl:choose>
+ <xsl:when test="string-length($base.dir) = 0"></xsl:when>
+ <!-- make sure to add trailing slash if omitted by user -->
+ <xsl:when test="substring($base.dir, string-length($base.dir), 1) = '/'">
+ <xsl:value-of select="$base.dir"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="concat($base.dir, '/')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:param>
+
<xsl:param name="saxon.character.representation" select="'entity;decimal'"/>
<!-- ==================================================================== -->
<!-- put Saxon first to work around a bug in libxslt -->
<xsl:when test="element-available('saxon:output')">
<!-- Saxon doesn't make the chunks relative -->
- <xsl:value-of select="concat($base.dir,$base.name)"/>
+ <xsl:value-of select="concat($chunk.base.dir,$base.name)"/>
</xsl:when>
<xsl:when test="element-available('exsl:document')">
<!-- EXSL document does make the chunks relative, I think -->
<xsl:choose>
<xsl:when test="count(parent::*) = 0">
- <xsl:value-of select="concat($base.dir,$base.name)"/>
+ <xsl:value-of select="concat($chunk.base.dir,$base.name)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$base.name"/>
</xsl:when>
<xsl:when test="element-available('redirect:write')">
<!-- Xalan doesn't make the chunks relative -->
- <xsl:value-of select="concat($base.dir,$base.name)"/>
+ <xsl:value-of select="concat($chunk.base.dir,$base.name)"/>
</xsl:when>
<xsl:otherwise>
<xsl:message terminate="yes">
<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.dir" select="$chunk.base.dir"/>
<xsl:with-param name="base.name" select="$chunkfn"/>
</xsl:call-template>
</xsl:variable>
<xsl:call-template name="write.chunk">
<xsl:with-param name="filename">
<xsl:call-template name="make-relative-filename">
- <xsl:with-param name="base.dir" select="$base.dir"/>
+ <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
<xsl:with-param name="base.name">
<xsl:call-template name="dbhtml-dir"/>
<xsl:apply-templates select="." mode="recursive-chunk-filename">
<xsl:if test="string($lot) != ''">
<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.dir" select="$chunk.base.dir"/>
<xsl:with-param name="base.name">
<xsl:call-template name="dbhtml-dir"/>
<xsl:value-of select="$type"/>
<xsl:variable name="href">
<xsl:call-template name="make-relative-filename">
+ <xsl:with-param name="base.dir" select="''"/>
<xsl:with-param name="base.name">
<xsl:call-template name="dbhtml-dir"/>
<xsl:value-of select="$type"/>
<xsl:value-of select="$dbhtml.dir"/>
</xsl:when>
<xsl:otherwise>
- <xsl:value-of select="$base.dir"/>
+ <xsl:value-of select="$chunk.base.dir"/>
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
<xsl:variable name="this.uri">
<xsl:call-template name="make-relative-filename">
- <xsl:with-param name="base.dir" select="$base.dir"/>
+ <xsl:with-param name="base.dir" select="$chunk.base.dir"/>
<xsl:with-param name="base.name">
<xsl:call-template name="href.target.uri"/>
</xsl:with-param>
<xsl:param name="context" select="."/>
<xsl:param name="object" select="."/>
<xsl:if test="$manifest.in.base.dir = 0">
- <xsl:value-of select="$base.dir"/>
+ <xsl:value-of select="$chunk.base.dir"/>
</xsl:if>
<xsl:call-template name="href.target">
<xsl:with-param name="context" select="$context"/>
</xsl:call-template>
</xsl:variable>
- <xsl:variable name="path" select="concat($base.dir, $file)"/>
+ <xsl:variable name="path" select="concat($chunk.base.dir, $file)"/>
<xsl:value-of select="$path"/>
</xsl:template>
<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.dir" select="$chunk.base.dir"/>
<xsl:with-param name="base.name" select="$file"/>
</xsl:call-template>
</xsl:variable>
<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.dir" select="$chunk.base.dir"/>
<xsl:with-param name="base.name" select="$file"/>
</xsl:call-template>
</xsl:variable>