diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-03-28 19:43:32 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-03-28 19:44:49 (GMT) |
commit | 3afa4f741c26360245dc313bc368f508b26a6b96 (patch) | |
tree | 4fc9fedac990a099010fed8a4ee09ddc51c21cc5 /3rdParty/DocBook/XSL/common/insertfile.xsl | |
parent | 7548dabae7d10e48816142e508be651ada9f7bc3 (diff) | |
download | swift-contrib-3afa4f741c26360245dc313bc368f508b26a6b96.zip swift-contrib-3afa4f741c26360245dc313bc368f508b26a6b96.tar.bz2 |
Added DocBook infrastructure.
Imported most of "DocBook kit".
Added placeholder for Swiften developers guide.
Diffstat (limited to '3rdParty/DocBook/XSL/common/insertfile.xsl')
-rw-r--r-- | 3rdParty/DocBook/XSL/common/insertfile.xsl | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/3rdParty/DocBook/XSL/common/insertfile.xsl b/3rdParty/DocBook/XSL/common/insertfile.xsl new file mode 100644 index 0000000..66bcf41 --- /dev/null +++ b/3rdParty/DocBook/XSL/common/insertfile.xsl @@ -0,0 +1,111 @@ +<?xml version='1.0'?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:xi="http://www.w3.org/2001/XInclude" + version='1.0'> + +<!-- ******************************************************************** + $Id: insertfile.xsl 5262 2005-10-12 14:58:42Z xmldoc $ + ******************************************************************** + + This file is part of the XSL DocBook Stylesheet distribution. + See ../README or http://docbook.sf.net/release/xsl/current/ for + copyright and other information. + + ******************************************************************** --> + +<xsl:param name="textdata.default.encoding"></xsl:param> + +<!-- * This stylesheet makes a copy of a source tree, replacing all --> +<!-- * instances of the following with corresponding Xinclude instances --> +<!-- * in the result tree. --> +<!-- * --> +<!-- * <textobject><textdata fileref="foo.txt"> --> +<!-- * <imagedata format="linespecific" fileref="foo.txt"> --> +<!-- * <inlinegraphic format="linespecific" fileref="foo.txt"> --> +<!-- * --> +<!-- * Those become: --> +<!-- * --> +<!-- * <xi:include href="foo.txt" parse="text"/> --> +<!-- * --> +<!-- * It also works as expected with entityref in place of fileref, --> +<!-- * and copies over the value of the <textdata>“encoding” atrribute (if --> +<!-- * found). It is basically intended as an alternative to using the --> +<!-- * DocBook XSLT Java insertfile() extension. --> + +<!-- ==================================================================== --> + +<xsl:template name="get.external.filename"> + <xsl:choose> + <xsl:when test="@entityref"> + <xsl:value-of select="unparsed-entity-uri(@entityref)"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@fileref"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="textobject[child::textdata[@entityref|@fileref]]"> + <xsl:apply-templates select="textdata"/> +</xsl:template> + +<xsl:template match="textdata[@entityref|@fileref]"> + <xsl:variable name="filename"> + <xsl:call-template name="get.external.filename"/> + </xsl:variable> + <xsl:variable name="encoding"> + <xsl:choose> + <xsl:when test="@encoding"> + <xsl:value-of select="@encoding"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$textdata.default.encoding"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xi:include href="{$filename}" parse="text" encoding="{$encoding}"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template + match="inlinemediaobject + [child::imageobject + [child::imagedata + [@format = 'linespecific' and + (@entityref|@fileref)]]]"> + <xsl:apply-templates select="imageobject/imagedata"/> +</xsl:template> + +<xsl:template match="imagedata + [@format = 'linespecific' and + (@entityref|@fileref)]"> + <xsl:variable name="filename"> + <xsl:call-template name="get.external.filename"/> + </xsl:variable> + <xi:include href="{$filename}" parse="text" encoding="{$textdata.default.encoding}"/> +</xsl:template> + +<!-- ==================================================================== --> + +<xsl:template match="inlinegraphic + [@format = 'linespecific' and + (@entityref|@fileref)]"> + <xsl:variable name="filename"> + <xsl:call-template name="get.external.filename"/> + </xsl:variable> + <xi:include href="{$filename}" parse="text" encoding="{$textdata.default.encoding}"/> +</xsl:template> + +<!-- ==================================================================== --> + +<!-- * copy everything else into result tree as-is --> +<xsl:template match="node() | @*"> + <xsl:copy> + <xsl:apply-templates select="@* | node()"/> + </xsl:copy> +</xsl:template> + +</xsl:stylesheet> |