[Libreoffice-commits] help.git: help3xsl/get_bookmark.sh help3xsl/get_bookmark.xsl help3xsl/get_url.xsl help3xsl/help-to-html.sh help3xsl/online_transform.xsl help3xsl/xhp2html.sh

Olivier Hallot olivier.hallot at libreoffice.org
Sun Jul 2 15:52:59 UTC 2017


 help3xsl/get_bookmark.sh      |   36 +--
 help3xsl/get_bookmark.xsl     |  130 ++++++-------
 help3xsl/get_url.xsl          |   18 -
 help3xsl/help-to-html.sh      |    2 
 help3xsl/online_transform.xsl |  401 +++++++++++++++++++++---------------------
 help3xsl/xhp2html.sh          |  111 +++++++++++
 6 files changed, 412 insertions(+), 286 deletions(-)

New commits:
commit 9eb3382fc24e5d2a4a2a1024f0b4f61f9ed4c035
Author: Olivier Hallot <olivier.hallot at libreoffice.org>
Date:   Tue Jun 27 14:28:44 2017 -0300

    Help-in-browser (vi): more improvements
    
    Improvement:
    * image search & screeshots
    * inserted TechArticle schema elements from http://schema.org
    * new script for usage of helpex in a build
    * results in https://helponline.libreoffice.org
    
    Change-Id: I62d1c46f260c8bd5e287df382e8db086112c4d2a
    Reviewed-on: https://gerrit.libreoffice.org/39452
    Reviewed-by: Olivier Hallot <olivier.hallot at edx.srv.br>
    Tested-by: Olivier Hallot <olivier.hallot at edx.srv.br>

diff --git a/help3xsl/get_bookmark.sh b/help3xsl/get_bookmark.sh
index d926787da..e4d3fee10 100755
--- a/help3xsl/get_bookmark.sh
+++ b/help3xsl/get_bookmark.sh
@@ -6,28 +6,28 @@
 # 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/.
 
-# $1 is html/productversion/
-# $2 is Language
-# $3 is productversion
+# $1 is Language
+# $2 is productversion
 
-outdir=$1$2
-mkdir -p $outdir
-sourcedir=`pwd`/
+outdir=`pwd`'/html/'$2'/'$1
+
+# mkdir -p $outdir
+sourcedir=`pwd`'/l10n/'$2'/'$1
 ffile=$outdir'/bookmarks.js'
 rm -f $ffile
-ffile2=temp.html
+ffile2=/tmp/temp.html
 stub2=\'
-xslfile=$outdir/../../../get_bookmark.xsl
+xslfile=get_bookmark.xsl
+
+param1=' --stringparam Language '$1' --stringparam productversion '$2
 
 # bookmarks for modules
 
 for i in CALC CHART WRITER DRAW IMPRESS MATH BASIC
 do
 stub1='document.getElementById("bookmark'$i'").innerHTML='\'\\
-sfind=$sourcedir`echo 'text/s'$i | tr '[:upper:]' '[:lower:]'`
-param='--stringparam app '$i
-param=$param' --stringparam Language '$2
-param=$param' --stringparam productversion '$3
+sfind=$sourcedir'/'`echo 'text/s'$i | tr '[:upper:]' '[:lower:]'`
+param=$param1' --stringparam app '$i
 rm -f $ffile2
 find $sfind -type f -name "*.xhp" -exec xsltproc $param $xslfile {} + >> $ffile2
 echo $stub1 >> $ffile
@@ -40,10 +40,8 @@ done
 
 stub1='document.getElementById("bookmarkSHARED").innerHTML='\'\\
 rm -f $ffile2
-param='--stringparam app SHARED'
-param=$param' --stringparam Language '$2
-param=$param' --stringparam productversion '$3
-find $sourcedir'text/shared' -type f -name "*.xhp" -exec xsltproc $param $xslfile {} + >> $ffile2
+param=$param1' --stringparam app SHARED'
+find $sourcedir'/text/shared' -type f -name "*.xhp" -exec xsltproc $param $xslfile {} + >> $ffile2
 echo $stub1 >> $ffile
 sort -k3b -t\> -s -o $ffile2 $ffile2
 awk 'NF' $ffile2 >> $ffile
@@ -53,10 +51,8 @@ echo $stub2 >> $ffile
 
 stub1='document.getElementById("bookmarkBASE").innerHTML='\'\\
 rm -f $ffile2
-param='--stringparam app BASE'
-param=$param' --stringparam Language '$2
-param=$param' --stringparam productversion '$3
-find $sourcedir'text/shared/explorer/database' -type f -name "*.xhp" -exec xsltproc $param $xslfile {} + >> $ffile2
+param=$param1' --stringparam app BASE'
+find $sourcedir'/text/shared/explorer/database' -type f -name "*.xhp" -exec xsltproc $param $xslfile {} + >> $ffile2
 echo $stub1 >> $ffile
 sort -k3b -t\> -s -o $ffile2 $ffile2
 awk 'NF' $ffile2 >> $ffile
diff --git a/help3xsl/get_bookmark.xsl b/help3xsl/get_bookmark.xsl
index 724fcc73c..80dfa2c02 100644
--- a/help3xsl/get_bookmark.xsl
+++ b/help3xsl/get_bookmark.xsl
@@ -51,25 +51,25 @@ xsltproc get_bookmark.xsl <file.xhp>
 
 <!-- Extract the bookmarks-->
 <xsl:template match="/">
-      <xsl:for-each select="//bookmark[@branch='index']">
-           <xsl:variable name="hrefhtml" select="substring-before($filename,'xhp')"/>   
-           <xsl:variable name="href" select="concat($productversion,'/',$Language,'/',$hrefhtml,'html?DbPAR=',$app,'#', at id)"/>
-           <xsl:for-each select="bookmark_value">
-                     <xsl:variable name="here1">
-                     <xsl:text disable-output-escaping="yes"><![CDATA[<li><a target="_top" href="]]></xsl:text>
-                     <xsl:value-of select="$href"/>
-                     <xsl:text disable-output-escaping="yes"><![CDATA["</a>]]></xsl:text>
-                     <xsl:call-template name="apostrophe"><xsl:with-param name="string">
-                          <xsl:value-of select="."/>
-                     </xsl:with-param></xsl:call-template>
-                     </xsl:variable>
-
-		     <xsl:call-template name="brand"><xsl:with-param name="string">
-                          <xsl:value-of select="$here1"/>
-                     </xsl:with-param></xsl:call-template>
-                     <xsl:text disable-output-escaping="yes"><![CDATA[</li>\]]>&#xA;</xsl:text>
-           </xsl:for-each>
-      </xsl:for-each>
+    <xsl:for-each select="//bookmark[@branch='index']">
+        <xsl:variable name="hrefhtml" select="substring-before($filename,'xhp')"/>
+        <xsl:variable name="href" select="concat($productversion,'/',$Language,'/',$hrefhtml,'html?DbPAR=',$app,'#', at id)"/>
+        <xsl:for-each select="bookmark_value">
+            <xsl:variable name="here1">
+                <xsl:text disable-output-escaping="yes"><![CDATA[<li><a target="_top" href="]]></xsl:text>
+                        <xsl:value-of select="$href"/>
+                        <xsl:text disable-output-escaping="yes"><![CDATA["</a>]]></xsl:text>
+                    <xsl:call-template name="apostrophe"><xsl:with-param name="string">
+                            <xsl:value-of select="."/>
+                            </xsl:with-param></xsl:call-template>
+                </xsl:variable>
+
+                <xsl:call-template name="brand"><xsl:with-param name="string">
+                        <xsl:value-of select="$here1"/>
+                        </xsl:with-param></xsl:call-template>
+                <xsl:text disable-output-escaping="yes"><![CDATA[</li>\]]>&#xA;</xsl:text>
+        </xsl:for-each>
+    </xsl:for-each>
 </xsl:template>
 
 <!-- weird characters inside bookmarks, replace by HTML entities-->
@@ -77,86 +77,86 @@ xsltproc get_bookmark.xsl <file.xhp>
     <xsl:param name="string"/>
     <xsl:variable name="apost">'</xsl:variable><!-- apostrophe -->
     <xsl:choose>
-    <xsl:when test="contains($string,$apost)">
-         <xsl:variable name="newstr">
+        <xsl:when test="contains($string,$apost)">
+            <xsl:variable name="newstr">
                 <xsl:value-of select="substring-before($string,$apost)"/>
-		<xsl:text disable-output-escaping="yes"><![CDATA[&]]>#39;</xsl:text>
+                <xsl:text disable-output-escaping="yes"><![CDATA[&]]>#39;</xsl:text>
                 <xsl:value-of select="substring-after($string,$apost)"/>
-           </xsl:variable>
-           <xsl:call-template name="apostrophe">
+            </xsl:variable>
+            <xsl:call-template name="apostrophe">
                 <xsl:with-param name="string" select="$newstr"/>
-           </xsl:call-template>
-    </xsl:when>
-    <xsl:otherwise>
-    <xsl:value-of select="$string"/>
-    </xsl:otherwise>
+            </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+            <xsl:value-of select="$string"/>
+        </xsl:otherwise>
     </xsl:choose>
 </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:call-template name="apostrophe">
-		<xsl:with-param name="string"><xsl:value-of select="."/></xsl:with-param>
-	</xsl:call-template>	
+    <xsl:call-template name="brand">
+        <xsl:with-param name="string"><xsl:value-of select="."/></xsl:with-param>
+    </xsl:call-template>
+    <xsl:call-template name="apostrophe">
+        <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:param name="string"/>
 
     <xsl:choose>
 
         <xsl:when test="contains($string,$brand1)">
-           <xsl:variable name="newstr">
+            <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: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: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: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: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: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: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:value-of select="$string"/>
+        </xsl:otherwise>
+    </xsl:choose>
 
 </xsl:template>
 
diff --git a/help3xsl/get_url.xsl b/help3xsl/get_url.xsl
index a6beff66f..1cff5f954 100644
--- a/help3xsl/get_url.xsl
+++ b/help3xsl/get_url.xsl
@@ -46,15 +46,15 @@ xsltproc get_bookmark.xsl <file.xhp>
 
 <!-- Extract the bookmarks branches x filename-->
 <xsl:template match="/">
-      <xsl:variable name="href" select="concat(substring-before($filename,'xhp'),'html')"/>   
-      <xsl:for-each select="//bookmark[@branch!='index']">
-            <xsl:if test="not(contains(@branch,'/.uno'))">
-               <xsl:text>'</xsl:text>
-               <xsl:value-of select="substring-after(@branch,'hid/')"/>
-               <xsl:text>':'</xsl:text>
-               <xsl:value-of select="$href" /><xsl:text>',&#xA;</xsl:text>
-            </xsl:if>
-      </xsl:for-each>
+    <xsl:variable name="href" select="concat(substring-before($filename,'xhp'),'html')"/>
+    <xsl:for-each select="//bookmark[@branch!='index']">
+        <xsl:if test="not(contains(@branch,'/.uno'))">
+            <xsl:text>'</xsl:text>
+            <xsl:value-of select="substring-after(@branch,'hid/')"/>
+            <xsl:text>':'</xsl:text>
+            <xsl:value-of select="$href" /><xsl:text>',&#xA;</xsl:text>
+        </xsl:if>
+    </xsl:for-each>
 </xsl:template>
 
 
diff --git a/help3xsl/help-to-html.sh b/help3xsl/help-to-html.sh
index 62efd87d9..1298106ec 100755
--- a/help3xsl/help-to-html.sh
+++ b/help3xsl/help-to-html.sh
@@ -66,7 +66,7 @@ langDirSource=`pwd`
 
 # iterate existing languages
 for lang in `ls $langDirSource`
-# for lang in en-US
+# for lang in en-US pt-BR
 do
         echo $lang
         cd $langDirSource/$lang/helpcontent2/source
diff --git a/help3xsl/online_transform.xsl b/help3xsl/online_transform.xsl
index 3d8f1736c..81d61b61d 100644
--- a/help3xsl/online_transform.xsl
+++ b/help3xsl/online_transform.xsl
@@ -35,9 +35,6 @@
 <xsl:variable name="sl" select="'/'"/>
 <xsl:variable name="qt" select="'"'"/>
 
-<!-- generic Icon alt text -->
-<xsl:variable name="alttext" select="'text/shared/00/icon_alt.xhp'"/>
-
 <!-- For calculating pixel sizes -->
 <xsl:variable name="dpi" select="'96'"/>
 <xsl:variable name="dpcm" select="'38'"/>
@@ -57,15 +54,15 @@
 <xsl:param name="Database" select="'swriter'"/>
 <xsl:variable name="module" select="$Database"/>
 <xsl:variable name="appl">
-	<xsl:choose>
-		<xsl:when test="$module = 'swriter'"><xsl:value-of select="'WRITER'"/></xsl:when>
-		<xsl:when test="$module = 'scalc'"><xsl:value-of select="'CALC'"/></xsl:when>
-		<xsl:when test="$module = 'sdraw'"><xsl:value-of select="'DRAW'"/></xsl:when>
-		<xsl:when test="$module = 'simpress'"><xsl:value-of select="'IMPRESS'"/></xsl:when>
-		<xsl:when test="$module = 'schart'"><xsl:value-of select="'CHART'"/></xsl:when>
-		<xsl:when test="$module = 'sbasic'"><xsl:value-of select="'BASIC'"/></xsl:when>
-		<xsl:when test="$module = 'smath'"><xsl:value-of select="'MATH'"/></xsl:when>
-	</xsl:choose>
+    <xsl:choose>
+        <xsl:when test="$module = 'swriter'"><xsl:value-of select="'WRITER'"/></xsl:when>
+        <xsl:when test="$module = 'scalc'"><xsl:value-of select="'CALC'"/></xsl:when>
+        <xsl:when test="$module = 'sdraw'"><xsl:value-of select="'DRAW'"/></xsl:when>
+        <xsl:when test="$module = 'simpress'"><xsl:value-of select="'IMPRESS'"/></xsl:when>
+        <xsl:when test="$module = 'schart'"><xsl:value-of select="'CHART'"/></xsl:when>
+        <xsl:when test="$module = 'sbasic'"><xsl:value-of select="'BASIC'"/></xsl:when>
+        <xsl:when test="$module = 'smath'"><xsl:value-of select="'MATH'"/></xsl:when>
+    </xsl:choose>
 </xsl:variable>
 
   <!-- the other parameters given by the help caller -->
@@ -80,7 +77,12 @@
 <xsl:param name="imgtheme" select="''"/>
 <xsl:param name="Id" />
 <xsl:param name="Language"/>
+<xsl:param name="root"/>
 <xsl:variable name="lang" select="$Language"/>
+<xsl:variable name="urlpre" select="$root"/>
+
+<!-- generic Icon alt text -->
+<xsl:variable name="alttext" select="concat($root,'text/shared/00/icon_alt.xhp')"/>
 
 <xsl:param name="ExtensionId" select="''"/>
 <xsl:param name="ExtensionPath" select="''"/>
@@ -93,7 +95,7 @@
 <xsl:variable name="img_url_internal" select="$productversion"/>
 <xsl:variable name="img_url_prefix" select="concat($productversion,'/media',$imgtheme,'/')"/>
 <xsl:variable name="urlpost" select="concat('?Language=',$lang,$am,'System=',$System,$am,'UseDB=no')"/>
-<xsl:variable name="urlpre" select="$help_url_prefix" />
+<!-- <xsl:variable name="urlpre" select="$help_url_prefix" /> -->
 <xsl:variable name="linkprefix" select="concat($productversion,'/',$lang,'/')"/>
 <!--<xsl:variable name="linkpostfix" select="$urlpost"/>-->
 <xsl:variable name="linkpostfix" select="''"/>
@@ -104,6 +106,12 @@
 <xsl:variable name="warning_img" select="concat($img_url_prefix,'helpimg/warning.png')"/>
 
 <!--
+########################
+# Schema.org variables #
+######################## 
+//-->
+
+<!--
 #############
 # Templates #
 #############
@@ -112,19 +120,19 @@
 <!-- Create the document skeleton -->
 <xsl:template match="/">
     <xsl:variable name="htmlpage"><xsl:call-template name="filehtml"><xsl:with-param name="file" select="$filename"/></xsl:call-template></xsl:variable>
-<html>
-<head>
+    <xsl:variable name="titleL10N">
+        <xsl:call-template name="brand"><xsl:with-param name="string"><xsl:value-of select="$title"/></xsl:with-param></xsl:call-template>
+    </xsl:variable>
+    <html>
+    <head>
         <!--<base href="file:///home/tdf/git/core/helpcontent2/source/html/"/> -->
         <base href="/"/>
-        <title><xsl:call-template name="brand"><xsl:with-param name="string">
-               <xsl:value-of select="$title"/>
-               </xsl:with-param></xsl:call-template>
-        </title>
-        <link href="{$productversion}/default.css" rel="Stylesheet" type="text/css" />
-        <link href="{$productversion}/tabs.css" rel="Stylesheet" type="text/css" />
-        <link href="{$productversion}/tree.css" rel="Stylesheet" type="text/css" />
+        <title><xsl:value-of select="$titleL10N"/></title>
+        <link href="{$productversion}/{$lang}/default.css" rel="Stylesheet" type="text/css" />
+        <link href="{$productversion}/{$lang}/tabs.css" rel="Stylesheet" type="text/css" />
+        <link href="{$productversion}/{$lang}/tree.css" rel="Stylesheet" type="text/css" />
         <script type="text/javascript" src="{$productversion}/jquery-3.1.1.min.js"></script>
-        <script type="text/javascript" src="{$productversion}/help.js"></script>        
+        <script type="text/javascript" src="{$productversion}/help.js"></script>
         <!-- Piwik -->
         <script type="text/javascript">
             <![CDATA[
@@ -143,144 +151,146 @@
         </script>
         <!-- End Piwik Code -->
         <meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
-</head>
-<body lang="{$lang}">
-    <div id="BottomLeft">
-        <div id="container"> <!-- Tabs -->
-            <input id="tab-1" type="radio" name="tab-group" checked="checked" />
-            <label for="tab-1">Index</label>
-            <input id="tab-2" type="radio" name="tab-group" />
-            <label for="tab-2">Contents</label>
-            <input id="tab-3" type="radio" name="tab-group" />
-            <label for="tab-3">Search</label>
-            <div id="content">
-                <div id="content-1">
-                    <div id="SearchBox"><p> &#x1f50e; <input type="text" id="search-bar"/></p></div>
-                    <div id="Bookmarks">
-                        <ul id="bookmarkCALC" hidden="true"></ul>
-                        <ul id="bookmarkCHART" hidden="true"></ul>
-                        <ul id="bookmarkWRITER" hidden="true"></ul>
-                        <ul id="bookmarkDRAW" hidden="true"></ul>
-                        <ul id="bookmarkIMPRESS" hidden="true"></ul>
-                        <ul id="bookmarkMATH" hidden="true"></ul>
-                        <ul id="bookmarkBASE" hidden="true"></ul>
-                        <ul id="bookmarkSHARED"></ul>
-                        <ul id="bookmarkBASIC" hidden="true"></ul>
+    </head>
+    <body lang="{$lang}">
+    <div itemscope="true" itemtype="http://schema.org/TechArticle">
+        <meta itemprop="version" content="{$productversion}"/>
+        <meta itemprop="inLanguage" content="{$lang}"/>
+        <meta itemprop="datePublished" content="2017"/>"
+        <div id="BottomLeft">
+            <div id="container"> <!-- Tabs -->
+                <input id="tab-1" type="radio" name="tab-group" checked="checked" />
+                <label for="tab-1">Index</label>
+                <input id="tab-2" type="radio" name="tab-group" />
+                <label for="tab-2">Contents</label>
+                <input id="tab-3" type="radio" name="tab-group" />
+                <label for="tab-3">Search</label>
+                <div id="content">
+                    <div id="content-1">
+                        <div id="SearchBox"><p> &#x1f50e; <input type="text" id="search-bar"/></p></div>
+                        <div id="Bookmarks">
+                            <ul id="bookmarkCALC" hidden="true"></ul>
+                            <ul id="bookmarkCHART" hidden="true"></ul>
+                            <ul id="bookmarkWRITER" hidden="true"></ul>
+                            <ul id="bookmarkDRAW" hidden="true"></ul>
+                            <ul id="bookmarkIMPRESS" hidden="true"></ul>
+                            <ul id="bookmarkMATH" hidden="true"></ul>
+                            <ul id="bookmarkBASE" hidden="true"></ul>
+                            <ul id="bookmarkSHARED"></ul>
+                            <ul id="bookmarkBASIC" hidden="true"></ul>
+                        </div>
+                    </div>
+                    <div id="content-2">
+                        <p>Lorem ipsum dolor sit amet</p>
+                    </div>
+                    <div id="content-3">
+                        <p>Lorem ipsum dolor sit amet</p>
                     </div>
-                </div>
-                <div id="content-2">
-                    <p>Lorem ipsum dolor sit amet</p>
-                </div>
-                <div id="content-3">
-                    <p>Lorem ipsum dolor sit amet</p>
                 </div>
             </div>
         </div>
-    </div>
-    <div id="DisplayArea">
-        <xsl:apply-templates select="/helpdocument/body"/>
-        <div class="debug">
-            <h3 class="bug">Help content debug info:</h3>
-            <p>This page is: <xsl:value-of select="$filename"/></p>
-            <p>Title is: <xsl:value-of select="$title"/></p>
-            <p id="bm_module"></p>
-            <p id="bm_system"></p>
+        <div id="DisplayArea" itemprop="articleBody">
+            <xsl:apply-templates select="/helpdocument/body"/>
+            <div class="debug">
+                <h3 class="bug">Help content debug info:</h3>
+                <p>This page is: <xsl:value-of select="$filename"/></p>
+                <p>Title is: <xsl:value-of select="$title"/></p>
+                <p id="bm_module"></p>
+                <p id="bm_system"></p>
+            </div>
+        </div>
+        <div id="TopLang">
+            <nav>
+                <ul>
+                    <li><a href="{$productversion}/en-US{$htmlpage}">EN</a></li>
+                    <li><a href="{$productversion}/ast{$htmlpage}">AST</a></li>
+                    <li><a href="{$productversion}/bg{$htmlpage}">BG</a></li>
+                    <li><a href="{$productversion}/bn{$htmlpage}">BN</a></li>
+                    <li><a href="{$productversion}/bn-IN{$htmlpage}">BN-IN</a></li>
+                    <li><a href="{$productversion}/ca{$htmlpage}">CA</a></li>
+                    <li><a href="{$productversion}/cs{$htmlpage}">CS</a></li>
+                    <li><a href="{$productversion}/da{$htmlpage}">DA</a></li>
+                    <li><a href="{$productversion}/de{$htmlpage}">DE</a></li>
+                    <li><a href="{$productversion}/el{$htmlpage}">EL</a></li>
+                    <li><a href="{$productversion}/es{$htmlpage}">ES</a></li>
+                    <li><a href="{$productversion}/eu{$htmlpage}">EU</a></li>
+                    <li><a href="{$productversion}/fi{$htmlpage}">FI</a></li>
+                    <li><a href="{$productversion}/fr{$htmlpage}">FR</a></li>
+                    <li><a href="{$productversion}/hu{$htmlpage}">HU</a></li>
+                    <li><a href="{$productversion}/it{$htmlpage}">IT</a></li>
+                    <li><a href="{$productversion}/ja{$htmlpage}">JA</a></li>
+                    <li><a href="{$productversion}/km{$htmlpage}">KM</a></li>
+                    <li><a href="{$productversion}/ko{$htmlpage}">KO</a></li>
+                    <li><a href="{$productversion}/nb{$htmlpage}">NB</a></li>
+                    <li><a href="{$productversion}/nl{$htmlpage}">NL</a></li>
+                    <li><a href="{$productversion}/om{$htmlpage}">OM</a></li>
+                    <li><a href="{$productversion}/pl{$htmlpage}">PL</a></li>
+                    <li><a href="{$productversion}/pt{$htmlpage}">PT</a></li>
+                    <li><a href="{$productversion}/pt-BR{$htmlpage}">PT-BR</a></li>
+                    <li><a href="{$productversion}/ru{$htmlpage}">RU</a></li>
+                    <li><a href="{$productversion}/sl{$htmlpage}">SL</a></li>
+                    <li><a href="{$productversion}/sv{$htmlpage}">SV</a></li>
+                    <li><a href="{$productversion}/tr{$htmlpage}">TR</a></li>
+                    <li><a href="{$productversion}/vi{$htmlpage}">VI</a></li>
+                    <li><a href="{$productversion}/zh-CN{$htmlpage}">ZH-CN</a></li>
+                    <li><a href="{$productversion}/zh-TW{$htmlpage}">ZH-TW</a></li>
+                </ul>
+            </nav>
+        </div>
+        <div id="TopRight">
+            <script type="text/javascript">
+                <![CDATA[
+                (function() {
+                var cx = '010161382024564278136:oejldkqc20o';
+                var gcse = document.createElement('script');
+                gcse.type = 'text/javascript';
+                gcse.async = true;
+                gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
+                var s = document.getElementsByTagName('script')[0];
+                s.parentNode.insertBefore(gcse, s);
+                })();
+                ]]>
+            </script>
+            <xsl:text disable-output-escaping="yes"><gcse:search></gcse:search></xsl:text>
+        </div>
+        <div id="TopLeft">
+            <nav id="SelectModules">
+                <ul>
+                    <li><a href="{$productversion}/{$lang}/text/scalc/main0000.html?DbPAR=CALC">Calc</a></li>
+                    <li><a href="{$productversion}/{$lang}/text/swriter/main0000.html?DbPAR=WRITER">Writer</a></li>
+                    <li><a href="{$productversion}/{$lang}/text/simpress/main0000.html?DbPAR=IMPRESS">Impress</a></li>
+                    <li><a href="{$productversion}/{$lang}/text/sdraw/main0000.html?DbPAR=DRAW">Draw</a></li>
+                    <li><a href="{$productversion}/{$lang}/text/schart/main0000.html?DbPAR=CHART">Chart</a></li>
+                    <li><a href="{$productversion}/{$lang}/text/sbasic/shared/main0601.html?DbPAR=BASIC">Basic</a></li>
+                    <li><a href="{$productversion}/{$lang}/text/smath/main0000.html?DbPAR=MATH">Math</a></li>
+                    <li><a href="{$productversion}/{$lang}/text/shared/explorer/database/main.html?DbPAR=BASE">Base</a></li>
+                    <!--<li><a href="{$productversion}/{$lang}/text/shared/guide/main.html?DbPAR=SHARED">Guide</a></li>-->
+                </ul>
+            </nav>
+        </div>
+        <div id="TopSystem">
+            <nav id="SelectSystem">
+                <ul>
+                    <li id="win"><a href="{$productversion}/{$lang}{$htmlpage}">Wndows</a></li>
+                    <li id="lin"><a href="{$productversion}/{$lang}{$htmlpage}">Linux</a></li>
+                    <li id="mac"><a href="{$productversion}/{$lang}{$htmlpage}">Mac</a></li>
+                </ul>
+            </nav>
         </div>
-    </div>
-    <div id="TopLang">
-        <nav>
-            <ul>
-                <li><a href="{$productversion}/en-US{$htmlpage}">EN</a></li>
-                <li><a href="{$productversion}/ast{$htmlpage}">AST</a></li>
-                <li><a href="{$productversion}/bg{$htmlpage}">BG</a></li>
-                <li><a href="{$productversion}/bn{$htmlpage}">BN</a></li>
-                <li><a href="{$productversion}/bn-IN{$htmlpage}">BN-IN</a></li>
-                <li><a href="{$productversion}/ca{$htmlpage}">CA</a></li>
-                <li><a href="{$productversion}/cs{$htmlpage}">CS</a></li>
-                <li><a href="{$productversion}/da{$htmlpage}">DA</a></li>
-                <li><a href="{$productversion}/de{$htmlpage}">DE</a></li>
-                <li><a href="{$productversion}/el{$htmlpage}">EL</a></li>
-                <li><a href="{$productversion}/es{$htmlpage}">ES</a></li>
-                <li><a href="{$productversion}/eu{$htmlpage}">EU</a></li>
-                <li><a href="{$productversion}/fi{$htmlpage}">FI</a></li>
-                <li><a href="{$productversion}/fr{$htmlpage}">FR</a></li>
-                <li><a href="{$productversion}/hu{$htmlpage}">HU</a></li>
-                <li><a href="{$productversion}/it{$htmlpage}">IT</a></li>
-                <li><a href="{$productversion}/ja{$htmlpage}">JA</a></li>
-                <li><a href="{$productversion}/km{$htmlpage}">KM</a></li>
-                <li><a href="{$productversion}/ko{$htmlpage}">KO</a></li>
-                <li><a href="{$productversion}/nb{$htmlpage}">NB</a></li>
-                <li><a href="{$productversion}/nl{$htmlpage}">NL</a></li>
-                <li><a href="{$productversion}/om{$htmlpage}">OM</a></li>
-                <li><a href="{$productversion}/pl{$htmlpage}">PL</a></li>
-                <li><a href="{$productversion}/pt{$htmlpage}">PT</a></li>
-                <li><a href="{$productversion}/pt-BR{$htmlpage}">PT-BR</a></li>
-                <li><a href="{$productversion}/ru{$htmlpage}">RU</a></li>
-                <li><a href="{$productversion}/sl{$htmlpage}">SL</a></li>
-                <li><a href="{$productversion}/sv{$htmlpage}">SV</a></li>
-                <li><a href="{$productversion}/tr{$htmlpage}">TR</a></li>
-                <li><a href="{$productversion}/vi{$htmlpage}">VI</a></li>
-                <li><a href="{$productversion}/zh-CN{$htmlpage}">ZH-CN</a></li>
-                <li><a href="{$productversion}/zh-TW{$htmlpage}">ZH-TW</a></li>
-            </ul>
-        </nav>
-    </div>
-    <div id="TopRight">
         <script type="text/javascript">
             <![CDATA[
-            (function() {
-            var cx = '010161382024564278136:oejldkqc20o';
-            var gcse = document.createElement('script');
-            gcse.type = 'text/javascript';
-            gcse.async = true;
-            gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
-            var s = document.getElementsByTagName('script')[0];
-            s.parentNode.insertBefore(gcse, s);
-            })();
+            var module = getParameterByName("DbPAR");
+            setModule(module);
+            var system = getParameterByName("System");
+            setSystem(system);
+            fixURL(module,system);
+            setSystemURLButton(module);
+            document.getElementById("bm_module").innerHTML ="Module is: "+module;
+            document.getElementById("bm_system").innerHTML ="System is: "+system;
             ]]>
         </script>
-        <xsl:text disable-output-escaping="yes"><gcse:search></gcse:search></xsl:text>
+        <script type="text/javascript" src="{$productversion}/{$lang}/bookmarks.js"/>
     </div>
-    <div id="TopLeft">
-        <nav id="SelectModules">
-            <ul>
-                <li><a href="{$productversion}/{$lang}/text/scalc/main0000.html?DbPAR=CALC">Calc</a></li>
-                <li><a href="{$productversion}/{$lang}/text/swriter/main0000.html?DbPAR=WRITER">Writer</a></li>
-                <li><a href="{$productversion}/{$lang}/text/simpress/main0000.html?DbPAR=IMPRESS">Impress</a></li>
-                <li><a href="{$productversion}/{$lang}/text/sdraw/main0000.html?DbPAR=DRAW">Draw</a></li>
-                <li><a href="{$productversion}/{$lang}/text/schart/main0000.html?DbPAR=CHART">Chart</a></li>
-                <li><a href="{$productversion}/{$lang}/text/sbasic/shared/main0601.html?DbPAR=BASIC">Basic</a></li>
-                <li><a href="{$productversion}/{$lang}/text/smath/main0000.html?DbPAR=MATH">Math</a></li>
-                <li><a href="{$productversion}/{$lang}/text/shared/explorer/database/main.html?DbPAR=BASE">Base</a></li>
-                <!--<li><a href="{$productversion}/{$lang}/text/shared/guide/main.html?DbPAR=SHARED">Guide</a></li>-->
-            </ul>
-        </nav>
-    </div>
-    <div id="TopSystem">
-        <nav id="SelectSystem">
-            <ul>
-                <li id="win"><a href="{$productversion}/{$lang}{$htmlpage}">Wndows</a></li>
-                <li id="lin"><a href="{$productversion}/{$lang}{$htmlpage}">Linux</a></li>
-                <li id="mac"><a href="{$productversion}/{$lang}{$htmlpage}">Mac</a></li>
-            </ul>
-        </nav>
-    </div>
-    <script type="text/javascript">
-        <![CDATA[
-        //if (window.location.href.indexOf('?') == -1) {
-        //window.open('text/shared/main0108.html?System=DEFSYS&DbPAR=WRITER&System=WIN','_self');
-        //}
-        var module = getParameterByName("DbPAR");
-        setModule(module);
-        var system = getParameterByName("System");
-        setSystem(system);
-        fixURL(module,system);
-        setSystemURLButton(module);
-        document.getElementById("bm_module").innerHTML ="Module is: "+module;
-        document.getElementById("bm_system").innerHTML ="System is: "+system;
-        ]]>
-    </script>
-    <script type="text/javascript" src="{$productversion}/{$lang}/bookmarks.js"/>
 </body>
 </html>
 </xsl:template>
@@ -309,7 +319,12 @@
 <xsl:template match="bookmark" mode="embedded" />
 
 <!-- BOOKMARK_VALUE -->
-<xsl:template match="bookmark_value" />
+<xsl:template match="bookmark_value">
+    <xsl:element name="meta">
+        <xsl:attribute name="itemprop">keywords</xsl:attribute>
+        <xsl:attribute name="content"><xsl:value-of select="translate(.,';',',')"/></xsl:attribute>
+    </xsl:element>
+</xsl:template>
 
 <!-- BR -->
 <xsl:template match="br"><br /></xsl:template>
@@ -737,9 +752,6 @@
 						<xsl:apply-templates/>
 					</xsl:when>
 					<xsl:otherwise> <!-- old style -->
-						<xsl:variable name="archive1"><xsl:value-of select="concat(substring-before(substring-after($linkhref,'text/'),'/'),'/')"/></xsl:variable>
-						<!--<xsl:variable name="href"><xsl:value-of select="concat($urlpre,$archive1,substring-before($linkhref,'#'),$urlpost)"/></xsl:variable>-->
-						<!--<xsl:variable name="href"><xsl:value-of select="concat($urlpre,substring-before($linkhref,'#'),$urlpost)"/></xsl:variable>-->
 						<xsl:variable name="href"><xsl:value-of select="concat($urlpre,substring-before($linkhref,'#'))"/></xsl:variable>
 						<xsl:variable name="anc"><xsl:value-of select="substring-after($linkhref,'#')"/></xsl:variable>
 						<xsl:variable name="docum" select="document($href)"/>
@@ -807,18 +819,24 @@
 
 <!-- Insert a heading -->
 <xsl:template name="insertheading">
-	<xsl:param name="level" />
-	<xsl:param name="embedded" />
+        <xsl:param name="level" />
+        <xsl:param name="embedded" />
         <xsl:element name="{concat('h',$level)}">
-        <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
-		<xsl:choose>
-			<xsl:when test="$embedded = 'yes'">
-				<xsl:apply-templates mode="embedded"/>
-			</xsl:when>
-			<xsl:otherwise>
-				<xsl:apply-templates />
-			</xsl:otherwise>
-		</xsl:choose>
+                <xsl:choose>
+                    <xsl:when test="$level = '1'">
+                        <xsl:attribute name="itemprop"><xsl:text>headline</xsl:text></xsl:attribute>
+                    </xsl:when>
+                    <xsl:otherwise></xsl:otherwise>
+                </xsl:choose>
+                <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
+                <xsl:choose>
+                    <xsl:when test="$embedded = 'yes'">
+                        <xsl:apply-templates mode="embedded"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <xsl:apply-templates />
+                    </xsl:otherwise>
+                </xsl:choose>
         </xsl:element>
 </xsl:template>
 
@@ -931,29 +949,32 @@
 <xsl:template name="insertimage">
   <xsl:variable name="src">
     <xsl:choose>
-     <xsl:when test="starts-with(@src,'media/')">
-          <xsl:value-of select="concat($img_url_internal,'/', at src)"/>
-     </xsl:when>
-     <xsl:when test="not(starts-with(@src,'media/'))">
-         <xsl:value-of select="concat($img_url_internal,'/media/icon-themes/', at src)"/>
-     </xsl:when>
-    <xsl:when test="not($ExtensionId='') and starts-with(@src,$ExtensionId)">
-        <xsl:value-of select="concat($ExtensionPath,'/', at src)"/>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:choose>
-          <xsl:when test="@localize='true'">
-            <xsl:value-of select="concat($img_url_prefix, at src,'?lang=',$lang)"/>
-          </xsl:when>
-          <xsl:otherwise>
-            <xsl:value-of select="concat($img_url_prefix, at src)"/>
-          </xsl:otherwise>
-        </xsl:choose>
-      </xsl:otherwise>
+         <xsl:when test="starts-with(@src,'media/screenshots/')">
+            <xsl:choose>
+                <xsl:when test="@localize='true'">
+                    <xsl:variable name="tmp0" select="substring-before(@src, '/ui')"/>
+                    <xsl:variable name="tmp1" select="substring-after(@src, '/ui/')"/>
+                    <xsl:variable name="tmp2" select="substring-before($tmp1,'/')"/>
+                    <xsl:variable name="tmp3" select="substring-after($tmp1,'/')"/>
+                    <xsl:value-of select="concat('/',$productversion,'/', $tmp0,'/ui/', $tmp2, '/',$lang,'/',$tmp3)"/>
+                </xsl:when>
+                <xsl:otherwise>
+                    <xsl:value-of select="concat('/',$productversion,'/', at src)"/>
+                </xsl:otherwise>
+            </xsl:choose>
+         </xsl:when>
+         <xsl:when test="starts-with(@src,'media/')">
+             <xsl:value-of select="concat('/',$productversion,'/', at src)"/>
+         </xsl:when>
+         <xsl:when test="not(starts-with(@src,'media/'))">
+             <xsl:value-of select="concat('/',$productversion,'/media/icon-themes/', at src)"/>
+         </xsl:when>
+         <xsl:otherwise>
+             <xsl:value-of select="concat('/',$productversion, at src)"/>
+         </xsl:otherwise>
     </xsl:choose>
   </xsl:variable>
-<!--  <p class="debug">Image: <xsl:value-of select="$src"/></p>-->
-	<!--<xsl:variable name="src"><xsl:value-of select="concat($img_url_prefix, at src)"/></xsl:variable>-->
+<!-- <p class="debug">Image: <xsl:value-of select="$src"/></p>-->
   <xsl:variable name="alt"><xsl:value-of select="./alt"/></xsl:variable>
   <xsl:variable name="width">
         <xsl:call-template name="convert2px"><xsl:with-param name="value" select="@width"/></xsl:call-template>
@@ -1012,8 +1033,8 @@
                      <xsl:value-of select="$value"/>
                 </xsl:when>
                 <xsl:otherwise>
-                     <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'px'!</xsl:message>
-                     <xsl:value-of select="$value"/>
+<!--                      <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'px'!</xsl:message> -->
+                     <xsl:value-of select="concat($value, 'px')"/>
                 </xsl:otherwise>
        </xsl:choose>
 </xsl:template>
@@ -1060,8 +1081,6 @@
 
 <xsl:template name="resolveembed">
 	<div class="embedded">
-		<xsl:variable name="archive"><xsl:value-of select="concat(substring-before(substring-after(@href,'text/'),'/'),'/')"/></xsl:variable>
-		<xsl:variable name="dbpostfix"><xsl:call-template name="createDBpostfix"><xsl:with-param name="archive" select="$archive"/></xsl:call-template></xsl:variable>
 		<xsl:variable name="href"><xsl:value-of select="concat($urlpre,substring-before(@href,'#'))"/></xsl:variable>
 		<xsl:variable name="anc"><xsl:value-of select="substring-after(@href,'#')"/></xsl:variable>
 		<xsl:variable name="docum" select="document($href)"/>
diff --git a/help3xsl/xhp2html.sh b/help3xsl/xhp2html.sh
new file mode 100755
index 000000000..580674651
--- /dev/null
+++ b/help3xsl/xhp2html.sh
@@ -0,0 +1,111 @@
+#/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/.
+#
+# This script builds translated XHP file with helpex excutable
+# and thes transform it to html pages
+# 1) generates redirection from LibreOffice Help URL to right html page
+# in index.html with bookmark2file.js
+# 2) generates bookmark_<APP>.js for indes search
+# 3) generates HTML pahes with online_transform.xs
+# 4) copy service files (css, js, media) to right place.
+#
+# Note: change root variable to your local git build
+#
+
+productversion='6.0'
+root=/home/tdf/git/core
+
+ALL_LANGS='en-US af am ar as ast be bg bn bn-IN bo br brx bs ca ca-valencia cs cy da de dgo dz el en-GB en-ZA eo es et eu fa fi fr ga gd gl gu gug he hsb hi hr hu id is it ja ka kk km kmr-Latn kn ko kok ks lb lo lt lv mai mk ml mn mni mr my nb ne nl nn nr nso oc om or pa-IN pl pt pt-BR ro ru rw sa-IN sat sd sr-Latn si sid sk sl sq sr ss st sv sw-TZ ta te tg th tn tr ts tt ug uk uz ve vec vi xh zh-CN zh-TW zu'
+
+here=`pwd`
+rm -rf $here/l10n
+rm -rf $here/html
+
+helpfiles=$root/helpcontent2/source/text
+
+pofiles=/tmp/pofiles.txt
+xhpfiles=/tmp/xhpfiles.txt
+mkdir -p $here/ html
+
+# Create the bookmark2file map
+stub1='var map={'
+stub2='};'
+ffile='html/bookmark2file.js'
+ffile2=/tmp/tmpbkm.txt
+rm -f $ffile2 $ffile
+find $helpfiles -type f -name "*.xhp" -exec xsltproc get_url.xsl {} + > $ffile2
+echo $stub1 >> $ffile
+awk 'NF' $ffile2 >> $ffile
+echo $stub2 >> $ffile
+
+ALL_LANGS="pt-BR fr en-US"
+for lang in $ALL_LANGS
+do
+
+echo 'lang = '$lang
+
+mkdir -p $here'/l10n/'$productversion'/'$lang
+outDirLang=$here'/l10n/'$productversion'/'$lang
+
+mkdir -p $here'/html/'$productversion'/'$lang
+outDirHTML=$here'/html/'$productversion'/'$lang
+
+xsltparm='--stringparam Language '$lang' --stringparam productversion '$productversion' --stringparam root '$outDirLang'/'
+
+if [ "$lang" == en-US ];
+then
+cp -rap $helpfiles $outDirLang
+else
+# Create first all translations of xhp
+translations=$root/translations/source/$lang/helpcontent2/source/text/
+
+rm -f $pofiles
+touch $pofiles
+rm -f $xhpfiles
+touch $xhpfiles
+
+find $translations -type f >$pofiles
+
+for ff in `cat $pofiles`
+do
+    echo 'Processing po file: '$ff
+    potemp=`mktemp`
+    echo $ff>$potemp
+    name=${ff:0:-3}
+    stub=${name##*text/}
+    hlpFileDir=$helpfiles'/'$stub
+    outDir=$outDirLang'/text/'$stub
+    mkdir -p $outDir
+    ls $hlpFileDir/*.xhp >$xhpfiles
+    $root/bin/run helpex -l $lang -mi $xhpfiles -m $potemp -o $outDir
+    rm $potemp
+done
+fi
+#extracting bookmarks
+echo 'Extracting bookmarks'
+./get_bookmark.sh $lang $productversion
+
+echo 'Converting to HTML'
+for filep in `find $outDirLang/text -name "*.xhp"`
+        do
+               DIR=${filep##*text/}
+               name=${DIR:0:-3}
+               outFile=$outDirHTML'/text/'$name'html'
+               xsltproc $xsltparm -o $outFile online_transform.xsl $filep
+        done
+echo 'copy some service files'
+cp default.css tabs.css tree.css $outDirHTML
+
+done
+echo 'copy global service files'
+cp index.html html/
+cp help.js jquery-3.1.1.min.js $here'/html/'$productversion'/'
+cp -rap ../source/media $here'/html/'$productversion'/'
+mkdir -p $here'/html/'$productversion'/media/icon-themes'
+cp -rap ../../icon-themes/galaxy/* $here'/html/'$productversion'/media/icon-themes/'
+ln -s $productversion html/latest


More information about the Libreoffice-commits mailing list