diff doc/wiki2docbook/html2db/html2db-utils.xsl @ 1734:b92fc3c922ac

scripts for converting wiki documentation to docbook
author nadvornik
date Sun, 22 Nov 2009 09:12:22 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/wiki2docbook/html2db/html2db-utils.xsl	Sun Nov 22 09:12:22 2009 +0000
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright 2004 by Laszlo Systems, Inc.
+     Released under the Artistic License.
+     Written by Oliver Steele.
+     http://osteele.com/sources/xslt/htm2db/
+     
+    Utility functions
+  -->
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+                xmlns:exslt="http://exslt.org/common"
+                xmlns:math="http://exslt.org/math"
+                xmlns:xalan="http://xml.apache.org/xalan"
+                xmlns:html2db="urn:html2db"
+                xmlns:db="urn:docbook"
+                xmlns:h="http://www.w3.org/1999/xhtml"
+                exclude-result-prefixes="db exslt h html2db math xalan"
+                extension-element-prefixes="html2db"
+                version="1.0">
+  
+  <!-- Wrap with ", and backslash " and \ -->
+  <xsl:template name="quote">
+    <xsl:param name="str" select="string(.)"/>
+    <xsl:param name="lquo" select="'&quot;'"/>
+    <xsl:param name="rquo" select="'&quot;'"/>
+    <!-- first " -->
+    <xsl:variable name="qpos" select="string-length(substring-before($str, '&quot;'))"/>
+    <!-- first \ -->
+    <xsl:variable name="bspos" select="string-length(substring-before($str, '\\'))"/>
+    <!-- first " or \ -->
+    <xsl:variable name="pos">
+      <xsl:choose>
+        <xsl:when test="$qpos=0"><xsl:value-of select="$bspos"/></xsl:when>
+        <xsl:when test="$bspos=0"><xsl:value-of select="$qpos"/></xsl:when>
+        <xsl:when test="$qpos&lt;$bspos">
+          <xsl:value-of select="$qpos"/>
+        </xsl:when>
+        <xsl:when test="$bspos">
+          <xsl:value-of select="$bspos"/>
+        </xsl:when>
+      </xsl:choose>
+    </xsl:variable>
+    <xsl:value-of select="$lquo"/>
+    <xsl:choose>
+      <xsl:when test="$pos!=0">
+        <xsl:value-of select="substring($str, 1, $pos)"/>
+        <xsl:text>\</xsl:text>
+        <xsl:value-of select="substring($str, $pos + 1, 1)"/>
+        <xsl:call-template name="quote">
+          <xsl:with-param name="str" select="substring($str, $pos + 2)"/>
+          <xsl:with-param name="lquo" select="''"/>
+          <xsl:with-param name="rquo" select="''"/>
+        </xsl:call-template>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$str"/>
+      </xsl:otherwise>
+    </xsl:choose>
+    <xsl:value-of select="$rquo"/>
+  </xsl:template>
+  
+</xsl:stylesheet>