[Libreoffice-commits] help.git: help3xsl/get_bookmark.sh help3xsl/get_bookmark.xsl

Olivier Hallot ohallot at collabora.co.uk
Sun May 8 10:09:10 UTC 2016


 help3xsl/get_bookmark.sh  |   65 +++++++++++++++++++++++++
 help3xsl/get_bookmark.xsl |  118 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 183 insertions(+)

New commits:
commit 91e86eaee7102c538c432140a4ab6b44c25a9cd2
Author: Olivier Hallot <ohallot at collabora.co.uk>
Date:   Sun May 8 07:06:25 2016 -0300

    HC3: XSL to extract bookmarks from XHP files
    
    Change-Id: Idaf6e4e890a1be1a44d96a5a36786fd480dc01f9
    Reviewed-on: https://gerrit.libreoffice.org/24756
    Reviewed-by: Olivier Hallot <ohallot at collabora.co.uk>
    Tested-by: Olivier Hallot <ohallot at collabora.co.uk>

diff --git a/help3xsl/get_bookmark.sh b/help3xsl/get_bookmark.sh
new file mode 100755
index 0000000..2ae124c
--- /dev/null
+++ b/help3xsl/get_bookmark.sh
@@ -0,0 +1,65 @@
+#/bin/bash
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+
+stub1='<html><head><link rel="stylesheet" type="text/css" href="/default.css"/></head><body><ul class="indexlink">'
+stub2='</ul></body></html>'
+ffile=bookmark_calc.html
+rm -f $ffile
+echo $stub1 > $ffile
+find ../source/text/scalc -type f -name "*.xhp" -exec xsltproc get_bookmark.xsl {} + >> $ffile
+echo $stub2 >> $ffile
+
+ffile=bookmark_writer.html
+rm -f $ffile
+echo $stub1 > $ffile
+find ../source/text/swriter -type f -name "*.xhp" -exec xsltproc get_bookmark.xsl {} + >> $ffile
+echo $stub2 >> $ffile
+
+ffile=bookmark_draw.html
+rm -f $ffile
+echo $stub1 > $ffile
+find ../source/text/sdraw -type f -name "*.xhp" -exec xsltproc get_bookmark.xsl {} + >> $ffile
+echo $stub2 >> $ffile
+
+ffile=bookmark_impress.html
+rm -f $ffile
+echo $stub1 > $ffile
+find ../source/text/simpress -type f -name "*.xhp" -exec xsltproc get_bookmark.xsl {} + >> $ffile
+echo $stub2 >> $ffile
+
+ffile=bookmark_shared.html
+rm -f $ffile
+echo $stub1 > $ffile
+find ../source/text/shared -type f -name "*.xhp" -exec xsltproc get_bookmark.xsl {} + >> $ffile
+echo $stub2 >> $ffile
+
+ffile=bookmark_chart.html
+rm -f $ffile
+echo $stub1 > $ffile
+find ../source/text/schart -type f -name "*.xhp" -exec xsltproc get_bookmark.xsl {} + >> $ffile
+echo $stub2 >> $ffile
+
+ffile=bookmark_math.html
+rm -f $ffile
+echo $stub1 > $ffile
+find ../source/text/smath -type f -name "*.xhp" -exec xsltproc get_bookmark.xsl {} + >> $ffile
+echo $stub2 >> $ffile
+
+ffile=bookmark_basic.html
+rm -f $ffile
+echo $stub1 > $ffile
+find ../source/text/sbasic -type f -name "*.xhp" -exec xsltproc get_bookmark.xsl {} + >> $ffile
+echo $stub2 >> $ffile
+
+ffile=bookmark_base.html
+rm -f $ffile
+echo $stub1 > $ffile
+find ../source/text/shared/explorer/database -type f -name "*.xhp" -exec xsltproc get_bookmark.xsl {} + >> $ffile
+echo $stub2 >> $ffile
+
diff --git a/help3xsl/get_bookmark.xsl b/help3xsl/get_bookmark.xsl
new file mode 100644
index 0000000..b3e65eb
--- /dev/null
+++ b/help3xsl/get_bookmark.xsl
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+-->
+<!--
+Stylesheet to extract index bookmarks from xhp files and output a link to
+the xhp file.
+Usage:
+xsltproc get_bookmark.xsl file.xhp
+-->
+<xsl:stylesheet version="1.0"
+xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output indent="yes" method="html"/>
+
+<!--
+############################
+# Variables and Parameters #
+############################
+//-->
+<xsl:variable name="filename" select="/helpdocument/meta/topic/filename"/>
+<!-- Product brand variables used in the help files -->
+<xsl:variable name="brand1" select="'$[officename]'"/>
+<xsl:variable name="brand2" select="'$[officeversion]'"/>
+<xsl:variable name="brand3" select="'%PRODUCTNAME'"/>
+<xsl:variable name="brand4" select="'%PRODUCTVERSION'"/>
+<xsl:param name="productname" select="'LibreOffice'"/>
+<xsl:param name="productversion" select="'5.2'"/>
+<!--
+#############
+# Templates #
+#############
+//-->
+
+<!-- Extract the bookmarks-->
+<xsl:template match="/">
+      <xsl:for-each select="//bookmark[@branch='index']">
+           <xsl:variable name="href" select="concat($filename,'#', at id)"/>
+           <xsl:for-each select="bookmark_value">
+		     <li><a href="{$href}" target="_top">
+                     <xsl:apply-templates>
+                           <xsl:value-of select="."/>
+                     </xsl:apply-templates>
+                     </a></li><xsl:text>&#xA;</xsl:text>
+           </xsl:for-each>
+      </xsl:for-each>
+</xsl:template>
+
+<!-- Branding -->
+<xsl:template match="text()">
+	<xsl:call-template name="brand">
+		<xsl:with-param name="string"><xsl:value-of select="."/></xsl:with-param>
+	</xsl:call-template>
+</xsl:template>
+
+
+<xsl:template name="brand" >
+	<xsl:param name="string"/>
+
+    <xsl:choose>
+
+        <xsl:when test="contains($string,$brand1)">
+           <xsl:variable name="newstr">
+                <xsl:value-of select="substring-before($string,$brand1)"/>
+                <xsl:value-of select="$productname"/>
+                <xsl:value-of select="substring-after($string,$brand1)"/>
+           </xsl:variable>
+			<xsl:call-template name="brand">
+				<xsl:with-param name="string" select="$newstr"/>
+			</xsl:call-template>
+		</xsl:when>
+
+		<xsl:when test="contains($string,$brand2)">
+		    <xsl:variable name="newstr">
+                <xsl:value-of select="substring-before($string,$brand2)"/>
+                <xsl:value-of select="$pversion"/>
+                <xsl:value-of select="substring-after($string,$brand2)"/>
+           </xsl:variable>
+			<xsl:call-template name="brand">
+				<xsl:with-param name="string" select="$newstr"/>
+			</xsl:call-template>
+		</xsl:when>
+
+		<xsl:when test="contains($string,$brand3)">
+			<xsl:variable name="newstr">
+                <xsl:value-of select="substring-before($string,$brand3)"/>
+                <xsl:value-of select="$productname"/>
+                <xsl:value-of select="substring-after($string,$brand3)"/>
+           </xsl:variable>
+			<xsl:call-template name="brand">
+				<xsl:with-param name="string" select="$newstr"/>
+			</xsl:call-template>
+		</xsl:when>
+
+        <xsl:when test="contains($string,$brand4)">
+			    <xsl:variable name="newstr">
+                <xsl:value-of select="substring-before($string,$brand4)"/>
+                <xsl:value-of select="$pversion"/>
+                <xsl:value-of select="substring-after($string,$brand4)"/>
+           </xsl:variable>
+			<xsl:call-template name="brand">
+				<xsl:with-param name="string" select="$newstr"/>
+			</xsl:call-template>
+		</xsl:when>
+
+        <xsl:otherwise>
+			<xsl:value-of select="$string"/>
+		</xsl:otherwise>
+	</xsl:choose>
+
+</xsl:template>
+
+</xsl:stylesheet>


More information about the Libreoffice-commits mailing list