diff options
author | Olivier Hallot <ohallot@collabora.co.uk> | 2016-05-08 07:06:25 -0300 |
---|---|---|
committer | Olivier Hallot <ohallot@collabora.co.uk> | 2016-05-08 10:08:45 +0000 |
commit | 91e86eaee7102c538c432140a4ab6b44c25a9cd2 (patch) | |
tree | a63b49b2092584b99f2f79049f0430147c2a5b97 /help3xsl | |
parent | 6bf8d987d05e14c5efaf9f7ab6da79642d227307 (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>
Diffstat (limited to 'help3xsl')
-rwxr-xr-x | help3xsl/get_bookmark.sh | 65 | ||||
-rw-r--r-- | help3xsl/get_bookmark.xsl | 118 |
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>
</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> |