summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Hallot <ohallot@collabora.co.uk>2016-05-08 07:06:25 -0300
committerOlivier Hallot <ohallot@collabora.co.uk>2016-05-08 10:08:45 +0000
commit91e86eaee7102c538c432140a4ab6b44c25a9cd2 (patch)
treea63b49b2092584b99f2f79049f0430147c2a5b97
parent6bf8d987d05e14c5efaf9f7ab6da79642d227307 (diff)
HC3: XSL to extract bookmarks from XHP files
Change-Id: Idaf6e4e890a1be1a44d96a5a36786fd480dc01f9 Reviewed-on: https://gerrit.libreoffice.org/24756 Reviewed-by: Olivier Hallot <ohallot@collabora.co.uk> Tested-by: Olivier Hallot <ohallot@collabora.co.uk>
-rwxr-xr-xhelp3xsl/get_bookmark.sh65
-rw-r--r--help3xsl/get_bookmark.xsl118
2 files changed, 183 insertions, 0 deletions
diff --git a/help3xsl/get_bookmark.sh b/help3xsl/get_bookmark.sh
new file mode 100755
index 0000000000..2ae124c712
--- /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 0000000000..b3e65ebfe3
--- /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,'#',@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>