2839be13354f6626dde9286d26bbef76e4e96af3
[geeqie.git] / doc / wiki2docbook / html2db / html2db-utils.xsl
1 <?xml version="1.0" encoding="utf-8"?>\r
2 <!-- Copyright 2004 by Laszlo Systems, Inc.\r
3      Released under the Artistic License.\r
4      Written by Oliver Steele.\r
5      http://osteele.com/sources/xslt/htm2db/\r
6      \r
7     Utility functions\r
8   -->\r
9 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\r
10                 xmlns:exslt="http://exslt.org/common"\r
11                 xmlns:math="http://exslt.org/math"\r
12                 xmlns:xalan="http://xml.apache.org/xalan"\r
13                 xmlns:html2db="urn:html2db"\r
14                 xmlns:db="urn:docbook"\r
15                 xmlns:h="http://www.w3.org/1999/xhtml"\r
16                 exclude-result-prefixes="db exslt h html2db math xalan"\r
17                 extension-element-prefixes="html2db"\r
18                 version="1.0">\r
19   \r
20   <!-- Wrap with ", and backslash " and \ -->\r
21   <xsl:template name="quote">\r
22     <xsl:param name="str" select="string(.)"/>\r
23     <xsl:param name="lquo" select="'&quot;'"/>\r
24     <xsl:param name="rquo" select="'&quot;'"/>\r
25     <!-- first " -->\r
26     <xsl:variable name="qpos" select="string-length(substring-before($str, '&quot;'))"/>\r
27     <!-- first \ -->\r
28     <xsl:variable name="bspos" select="string-length(substring-before($str, '\\'))"/>\r
29     <!-- first " or \ -->\r
30     <xsl:variable name="pos">\r
31       <xsl:choose>\r
32         <xsl:when test="$qpos=0"><xsl:value-of select="$bspos"/></xsl:when>\r
33         <xsl:when test="$bspos=0"><xsl:value-of select="$qpos"/></xsl:when>\r
34         <xsl:when test="$qpos&lt;$bspos">\r
35           <xsl:value-of select="$qpos"/>\r
36         </xsl:when>\r
37         <xsl:when test="$bspos">\r
38           <xsl:value-of select="$bspos"/>\r
39         </xsl:when>\r
40       </xsl:choose>\r
41     </xsl:variable>\r
42     <xsl:value-of select="$lquo"/>\r
43     <xsl:choose>\r
44       <xsl:when test="$pos!=0">\r
45         <xsl:value-of select="substring($str, 1, $pos)"/>\r
46         <xsl:text>\</xsl:text>\r
47         <xsl:value-of select="substring($str, $pos + 1, 1)"/>\r
48         <xsl:call-template name="quote">\r
49           <xsl:with-param name="str" select="substring($str, $pos + 2)"/>\r
50           <xsl:with-param name="lquo" select="''"/>\r
51           <xsl:with-param name="rquo" select="''"/>\r
52         </xsl:call-template>\r
53       </xsl:when>\r
54       <xsl:otherwise>\r
55         <xsl:value-of select="$str"/>\r
56       </xsl:otherwise>\r
57     </xsl:choose>\r
58     <xsl:value-of select="$rquo"/>\r
59   </xsl:template>\r
60   \r
61 </xsl:stylesheet>\r