c96e2c238f
so we can get rid of the confusing 1^st help text suggestion Change-Id: I38fea2c15f6764bd64aaebe2a41935149f62b9c5
981 lines
34 KiB
XML
981 lines
34 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
|
|
<!--***********************************************************************
|
|
This is the main transformation style sheet for transforming.
|
|
Only use with OOo 2.0
|
|
=========================================================================
|
|
Changes Log
|
|
May 24 2004 Created
|
|
Aug 24 2004 Fixed for help2 CWS
|
|
Aug 27 2004 Added css link, fixed missing embed-mode for variable
|
|
Removed width/height for images
|
|
Sep 03 2004 Modularized xsl, added some embedded modes
|
|
Oct 08 2004 Fixed bug wrong mode "embedded" for links
|
|
Added embedded modes for embed and embedvar (for cascaded embeds)
|
|
Added <p> tags around falsely embedded pars and vars
|
|
Dec 08 2004 #i38483#, fixed wrong handling of web links
|
|
#i37377#, fixed missing usage of Database parameter for switching
|
|
Jan 04 2005 #i38905#, fixed buggy branding replacement template
|
|
Mar 17 2005 #i43972#, added language info to image URL, evaluate Language parameter
|
|
evaluate new localize attribute in images
|
|
May 10 2005 #i48785#, fixed wrong setting of distrib variable
|
|
Aug 16 2005 workaround for #i53365#
|
|
Aug 19 2005 fixed missing list processing in embedded sections
|
|
Aug 19 2005 #i53535#, fixed wrong handling of Database parameter
|
|
Oct 17 2006 #i70462#, disabled sorting to avoid output of error messages to console
|
|
Jun 15 2009 #i101799#, fixed wrong handling of http URLs with anchors
|
|
***********************************************************************//-->
|
|
|
|
<!--
|
|
|
|
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
|
|
Copyright 2000, 2010 Oracle and/or its affiliates.
|
|
|
|
OpenOffice.org - a multi-platform office productivity suite
|
|
|
|
This file is part of OpenOffice.org.
|
|
|
|
OpenOffice.org is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU Lesser General Public License version 3
|
|
only, as published by the Free Software Foundation.
|
|
|
|
OpenOffice.org is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU Lesser General Public License version 3 for more details
|
|
(a copy is included in the LICENSE file that accompanied this code).
|
|
|
|
You should have received a copy of the GNU Lesser General Public License
|
|
version 3 along with OpenOffice.org. If not, see
|
|
<http://www.openoffice.org/license.html>
|
|
for a copy of the LGPLv3 License.
|
|
|
|
-->
|
|
|
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
|
|
<xsl:output indent="yes" method="html"/>
|
|
|
|
<!--
|
|
############################
|
|
# Variables and Parameters #
|
|
############################
|
|
//-->
|
|
|
|
<!-- General Usage -->
|
|
<xsl:variable name="am" select="'&'"/>
|
|
<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'"/>
|
|
|
|
<!-- 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'"/>
|
|
|
|
<!-- meta data variables from the help file -->
|
|
<xsl:variable name="filename" select="/helpdocument/meta/topic/filename"/>
|
|
<xsl:variable name="topic_id" select="/helpdocument/meta/topic/@id"/>
|
|
<xsl:variable name="topic_status" select="/helpdocument/meta/topic/@status"/>
|
|
<xsl:variable name="title" select="/helpdocument/meta/topic/title"/>
|
|
<xsl:variable name="doclang" select="/helpdocument/meta/topic/title/@xml-lang"/>
|
|
|
|
<!-- Module and the corresponding switching values-->
|
|
<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:variable>
|
|
|
|
<!-- the other parameters given by the help caller -->
|
|
<xsl:param name="System" select="'WIN'"/>
|
|
<xsl:param name="productname" select="'Office'"/>
|
|
<xsl:param name="productversion" select="''"/>
|
|
<xsl:variable name="pversion">
|
|
<xsl:value-of select="translate($productversion,' ','')"/>
|
|
</xsl:variable>
|
|
<!-- this is were the images are -->
|
|
<xsl:param name="imgrepos" select="''"/>
|
|
<xsl:param name="Id" />
|
|
<!-- (lame) distinction between OS and Commercial -->
|
|
<xsl:param name="distrib">
|
|
<xsl:choose>
|
|
<xsl:when test="starts-with($productname,'OpenOffice')">
|
|
<xsl:value-of select="'OpenSource'"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="'COMMERCIAL'"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:param>
|
|
<xsl:param name="Language" select="'en-US'"/>
|
|
<xsl:variable name="lang" select="$Language"/>
|
|
|
|
<xsl:param name="ExtensionId" select="''"/>
|
|
<xsl:param name="ExtensionPath" select="''"/>
|
|
|
|
|
|
<!-- parts of help and image urls -->
|
|
<xsl:variable name="help_url_prefix" select="'vnd.sun.star.help://'"/>
|
|
<xsl:variable name="img_url_prefix" select="concat('vnd.sun.star.zip://',$imgrepos,'/')"/>
|
|
<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="linkprefix" select="$urlpre"/>
|
|
<xsl:variable name="linkpostfix" select="$urlpost"/>
|
|
|
|
<xsl:variable name="css" select="'default.css'"/>
|
|
|
|
<!-- images for notes, tips and warnings -->
|
|
<xsl:variable name="note_img" select="concat($img_url_prefix,'res/helpimg/note.png')"/>
|
|
<xsl:variable name="tip_img" select="concat($img_url_prefix,'res/helpimg/tip.png')"/>
|
|
<xsl:variable name="warning_img" select="concat($img_url_prefix,'res/helpimg/warning.png')"/>
|
|
|
|
<!--
|
|
#############
|
|
# Templates #
|
|
#############
|
|
//-->
|
|
|
|
<!-- Create the document skeleton -->
|
|
<xsl:template match="/">
|
|
<xsl:variable name="csslink" select="concat($urlpre,'/',$urlpost)"/>
|
|
<html>
|
|
<head>
|
|
<title><xsl:value-of select="$title"/></title>
|
|
<link href="{$csslink}" rel="Stylesheet" type="text/css" /> <!-- stylesheet link -->
|
|
<meta http-equiv="Content-type" content="text/html; charset=utf-8"/>
|
|
</head>
|
|
<body lang="{$lang}">
|
|
<xsl:apply-templates select="/helpdocument/body"/>
|
|
</body>
|
|
</html>
|
|
</xsl:template>
|
|
|
|
<!-- AHELP -->
|
|
<xsl:template match="ahelp">
|
|
<xsl:if test="not(@visibility='hidden')"><span class="avis"><xsl:apply-templates /></span></xsl:if>
|
|
</xsl:template>
|
|
|
|
<!-- ALT -->
|
|
<xsl:template match="alt"/>
|
|
|
|
<!-- BOOKMARK -->
|
|
<xsl:template match="bookmark">
|
|
<a name="{@id}"></a>
|
|
<xsl:choose>
|
|
<xsl:when test="starts-with(@branch,'hid')" />
|
|
<xsl:otherwise><xsl:apply-templates /></xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
<xsl:template match="bookmark" mode="embedded" />
|
|
|
|
<!-- BOOKMARK_VALUE -->
|
|
<xsl:template match="bookmark_value" />
|
|
|
|
<!-- BR -->
|
|
<xsl:template match="br"><br /></xsl:template>
|
|
|
|
<!-- CAPTION -->
|
|
<xsl:template match="caption" />
|
|
|
|
<!-- CASE -->
|
|
<xsl:template match="case"><xsl:call-template name="insertcase" /></xsl:template>
|
|
<xsl:template match="case" mode="embedded">
|
|
<xsl:call-template name="insertcase">
|
|
<xsl:with-param name="embedded" select="'yes'"/>
|
|
</xsl:call-template>
|
|
</xsl:template>
|
|
|
|
<!-- CASEINLINE -->
|
|
<xsl:template match="caseinline"><xsl:call-template name="insertcase" /></xsl:template>
|
|
<xsl:template match="caseinline" mode="embedded">
|
|
<xsl:call-template name="insertcase">
|
|
<xsl:with-param name="embedded" select="'yes'"/>
|
|
</xsl:call-template>
|
|
</xsl:template>
|
|
|
|
<!-- COMMENT -->
|
|
<xsl:template match="comment" />
|
|
<xsl:template match="comment" mode="embedded"/>
|
|
|
|
<!-- CREATED -->
|
|
<xsl:template match="created" />
|
|
|
|
<!-- DEFAULT -->
|
|
<xsl:template match="default"><xsl:call-template name="insertdefault" /></xsl:template>
|
|
<xsl:template match="default" mode="embedded">
|
|
<xsl:call-template name="insertdefault">
|
|
<xsl:with-param name="embedded" select="'yes'"/>
|
|
</xsl:call-template>
|
|
</xsl:template>
|
|
|
|
<!-- DEFAULTINLINE -->
|
|
<xsl:template match="defaultinline"><xsl:call-template name="insertdefault" /></xsl:template>
|
|
<xsl:template match="defaultinline" mode="embedded">
|
|
<xsl:call-template name="insertdefault">
|
|
<xsl:with-param name="embedded" select="'yes'"/>
|
|
</xsl:call-template>
|
|
</xsl:template>
|
|
|
|
<!-- EMBED -->
|
|
<xsl:template match="embed"><xsl:call-template name="resolveembed"/></xsl:template>
|
|
<xsl:template match="embed" mode="embedded"><xsl:call-template name="resolveembed"/></xsl:template>
|
|
|
|
<!-- EMBEDVAR -->
|
|
<xsl:template match="embedvar"><xsl:call-template name="resolveembedvar"/></xsl:template>
|
|
<xsl:template match="embedvar" mode="embedded"><xsl:call-template name="resolveembedvar"/></xsl:template>
|
|
|
|
<!-- EMPH -->
|
|
<xsl:template match="emph">
|
|
<span class="emph"><xsl:apply-templates /></span>
|
|
</xsl:template>
|
|
<xsl:template match="emph" mode="embedded">
|
|
<span class="emph"><xsl:apply-templates /></span>
|
|
</xsl:template>
|
|
|
|
<!-- SUB -->
|
|
<xsl:template match="sub">
|
|
<sub><xsl:apply-templates /></sub>
|
|
</xsl:template>
|
|
<xsl:template match="sub" mode="embedded">
|
|
<sub><xsl:apply-templates /></sub>
|
|
</xsl:template>
|
|
|
|
<!-- SUP -->
|
|
<xsl:template match="sup">
|
|
<sup><xsl:apply-templates /></sup>
|
|
</xsl:template>
|
|
<xsl:template match="sup" mode="embedded">
|
|
<sup><xsl:apply-templates /></sup>
|
|
</xsl:template>
|
|
|
|
<!-- FILENAME -->
|
|
<xsl:template match="filename" />
|
|
|
|
<!-- HISTORY -->
|
|
<xsl:template match="history" />
|
|
|
|
<!-- IMAGE -->
|
|
<xsl:template match="image"><xsl:call-template name="insertimage"/></xsl:template>
|
|
<xsl:template match="image" mode="embedded"><xsl:call-template name="insertimage"/></xsl:template>
|
|
|
|
<!-- ITEM -->
|
|
<xsl:template match="item"><span class="{@type}"><xsl:apply-templates /></span></xsl:template>
|
|
<xsl:template match="item" mode="embedded"><span class="{@type}"><xsl:apply-templates /></span></xsl:template>
|
|
|
|
<!-- LASTEDITED -->
|
|
<xsl:template match="lastedited" />
|
|
|
|
<!-- LINK -->
|
|
<xsl:template match="link">
|
|
<xsl:choose> <!-- don't insert the heading link to itself -->
|
|
<xsl:when test="(concat('/',@href) = /helpdocument/meta/topic/filename) or (@href = /helpdocument/meta/topic/filename)">
|
|
<xsl:apply-templates />
|
|
</xsl:when>
|
|
<xsl:when test="contains(child::embedvar/@href,'/00/00000004.xhp#wie')"> <!-- special treatment of howtoget links -->
|
|
<xsl:call-template name="insert_howtoget">
|
|
<xsl:with-param name="linkhref" select="@href"/>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:call-template name="createlink" />
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
<xsl:template match="link" mode="embedded">
|
|
<xsl:call-template name="createlink"/>
|
|
</xsl:template>
|
|
|
|
<!-- LIST -->
|
|
<xsl:template match="list">
|
|
<xsl:choose>
|
|
<xsl:when test="@type='ordered'">
|
|
<ol>
|
|
<xsl:if test="@startwith">
|
|
<xsl:attribute name="start"><xsl:value-of select="@startwith"/></xsl:attribute>
|
|
</xsl:if>
|
|
<xsl:apply-templates />
|
|
</ol>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<ul><xsl:apply-templates /></ul>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="list" mode="embedded">
|
|
<xsl:choose>
|
|
<xsl:when test="@type='ordered'">
|
|
<ol>
|
|
<xsl:if test="@startwith">
|
|
<xsl:attribute name="start"><xsl:value-of select="@startwith"/></xsl:attribute>
|
|
</xsl:if>
|
|
<xsl:apply-templates mode="embedded"/>
|
|
</ol>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<ul><xsl:apply-templates mode="embedded"/></ul>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<!-- LISTITEM -->
|
|
<xsl:template match="listitem">
|
|
<li><xsl:apply-templates /></li>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="listitem" mode="embedded">
|
|
<li><xsl:apply-templates mode="embedded"/></li>
|
|
</xsl:template>
|
|
|
|
<!-- META, SEE HEADER -->
|
|
<xsl:template match="meta" />
|
|
|
|
<!-- OBJECT (UNUSED) -->
|
|
<xsl:template match="object" />
|
|
|
|
<!-- PARAGRAPH -->
|
|
<xsl:template match="paragraph">
|
|
<xsl:choose>
|
|
|
|
<xsl:when test="@role='heading'">
|
|
<xsl:call-template name="insertheading">
|
|
<xsl:with-param name="level" select="@level"/>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
|
|
<xsl:when test="contains(' note warning tip ',@role)">
|
|
<xsl:call-template name="insertnote">
|
|
<xsl:with-param name="type" select="@role" />
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
|
|
<xsl:when test="contains(descendant::embedvar/@href,'/00/00000004.xhp#wie')"> <!-- special treatment of howtoget links -->
|
|
<xsl:apply-templates />
|
|
</xsl:when>
|
|
|
|
<xsl:otherwise>
|
|
<xsl:call-template name="insertpara" />
|
|
</xsl:otherwise>
|
|
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template match="paragraph" mode="embedded">
|
|
<xsl:choose>
|
|
|
|
<xsl:when test="@role='heading'"> <!-- increase the level of headings that are embedded -->
|
|
<!--
|
|
The internal sablotron processor does not seem to support the number function.
|
|
Therefore, we need a workaround for
|
|
<xsl:variable name="level"><xsl:value-of select="number(@level)+1"/></xsl:variable>
|
|
-->
|
|
<xsl:variable name="newlevel">
|
|
<xsl:choose>
|
|
<xsl:when test="@level='1'"><xsl:value-of select="'2'"/></xsl:when>
|
|
<xsl:when test="@level='2'"><xsl:value-of select="'2'"/></xsl:when>
|
|
<xsl:when test="@level='3'"><xsl:value-of select="'3'"/></xsl:when>
|
|
<xsl:when test="@level='4'"><xsl:value-of select="'4'"/></xsl:when>
|
|
<xsl:when test="@level='5'"><xsl:value-of select="'5'"/></xsl:when>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
|
|
<xsl:call-template name="insertheading">
|
|
<xsl:with-param name="level" select="$newlevel"/>
|
|
<xsl:with-param name="embedded" select="'yes'"/>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
|
|
<xsl:when test="contains(' note warning tip ',@role)">
|
|
<xsl:call-template name="insertnote">
|
|
<xsl:with-param name="type" select="@role" />
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
|
|
<xsl:when test="contains(descendant::embedvar/@href,'/00/00000004.xhp#wie')"> <!-- special treatment of howtoget links -->
|
|
<xsl:apply-templates />
|
|
</xsl:when>
|
|
|
|
<xsl:otherwise>
|
|
<xsl:call-template name="insertpara" />
|
|
</xsl:otherwise>
|
|
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
|
|
<!-- SECTION -->
|
|
<xsl:template match="section">
|
|
<a name="{@id}"></a>
|
|
|
|
<xsl:choose>
|
|
|
|
<xsl:when test="@id='relatedtopics'">
|
|
<div class="relatedtopics">
|
|
<xsl:variable name="href"><xsl:value-of select="concat($urlpre,'shared/text/shared/00/00000004.xhp',$urlpost)"/></xsl:variable>
|
|
<xsl:variable name="anchor"><xsl:value-of select="'related'"/></xsl:variable>
|
|
<xsl:variable name="doc" select="document($href)"/>
|
|
<p class="related">
|
|
<xsl:apply-templates select="$doc//variable[@id=$anchor]"/>
|
|
</p>
|
|
<div class="relatedbody">
|
|
<xsl:apply-templates />
|
|
</div>
|
|
</div>
|
|
</xsl:when>
|
|
|
|
<xsl:when test="@id='howtoget'">
|
|
<xsl:call-template name="insert_howtoget" />
|
|
</xsl:when>
|
|
|
|
<xsl:otherwise>
|
|
<xsl:apply-templates/>
|
|
</xsl:otherwise>
|
|
|
|
</xsl:choose>
|
|
|
|
</xsl:template>
|
|
|
|
|
|
<!-- SECTION -->
|
|
<xsl:template match="section" mode="embedded">
|
|
<a name="{@id}"></a>
|
|
<xsl:apply-templates mode="embedded"/>
|
|
</xsl:template>
|
|
|
|
<!-- SORT -->
|
|
<xsl:template match="sort" >
|
|
<xsl:apply-templates><xsl:sort select="descendant::paragraph"/></xsl:apply-templates>
|
|
</xsl:template>
|
|
<xsl:template match="sort" mode="embedded">
|
|
<xsl:apply-templates><xsl:sort select="descendant::paragraph"/></xsl:apply-templates>
|
|
</xsl:template>
|
|
|
|
<!-- SWITCH -->
|
|
<xsl:template match="switch"><xsl:apply-templates /></xsl:template>
|
|
<xsl:template match="switch" mode="embedded"><xsl:apply-templates /></xsl:template>
|
|
|
|
<!-- SWITCHINLINE -->
|
|
<xsl:template match="switchinline"><xsl:apply-templates /></xsl:template>
|
|
<xsl:template match="switchinline" mode="embedded"><xsl:apply-templates mode="embedded"/></xsl:template>
|
|
|
|
<!-- TABLE -->
|
|
<xsl:template match="table"><xsl:call-template name="inserttable"/></xsl:template>
|
|
<xsl:template match="table" mode="embedded"><xsl:call-template name="inserttable"/></xsl:template>
|
|
|
|
<!-- TABLECELL -->
|
|
<xsl:template match="tablecell"><td valign="top"><xsl:apply-templates /></td></xsl:template>
|
|
<xsl:template match="tablecell" mode="icontable"><td valign="top"><xsl:apply-templates/></td></xsl:template>
|
|
<xsl:template match="tablecell" mode="embedded"><td valign="top"><xsl:apply-templates mode="embedded"/></td></xsl:template>
|
|
|
|
<!-- TABLEROW -->
|
|
<xsl:template match="tablerow"><tr><xsl:apply-templates /></tr></xsl:template>
|
|
<xsl:template match="tablerow" mode="icontable"><tr><xsl:apply-templates mode="icontable"/></tr></xsl:template>
|
|
<xsl:template match="tablerow" mode="embedded"><tr><xsl:apply-templates mode="embedded"/></tr></xsl:template>
|
|
|
|
<!-- TITLE -->
|
|
<xsl:template match="title"/>
|
|
|
|
<!-- TOPIC -->
|
|
<xsl:template match="topic"/>
|
|
|
|
<!-- VARIABLE -->
|
|
<xsl:template match="variable"><a name="{@id}"></a><xsl:apply-templates /></xsl:template>
|
|
<xsl:template match="variable" mode="embedded"><a name="{@id}"></a><xsl:apply-templates mode="embedded"/></xsl:template>
|
|
|
|
<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 match="text()" mode="embedded">
|
|
<xsl:call-template name="brand">
|
|
<xsl:with-param name="string"><xsl:value-of select="."/></xsl:with-param>
|
|
</xsl:call-template>
|
|
</xsl:template>
|
|
|
|
<!-- In case of missing help files -->
|
|
<xsl:template match="help-id-missing"><xsl:value-of select="$Id"/></xsl:template>
|
|
|
|
<!--
|
|
###################
|
|
# NAMED TEMPLATES #
|
|
###################
|
|
//-->
|
|
|
|
<!-- Branding -->
|
|
<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>
|
|
|
|
|
|
<!-- Insert Paragraph -->
|
|
<xsl:template name="insertpara">
|
|
<xsl:variable name="role">
|
|
<xsl:choose>
|
|
<xsl:when test="ancestor::table">
|
|
<xsl:value-of select="concat(@role,'intable')"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="@role"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<p class="{$role}"><xsl:apply-templates /></p>
|
|
</xsl:template>
|
|
|
|
<!-- Insert "How to get Link" -->
|
|
<xsl:template name="insert_howtoget">
|
|
<xsl:param name="linkhref" />
|
|
<xsl:variable name="archive" select="'shared'"/>
|
|
<xsl:variable name="tmp_href"><xsl:value-of select="concat($urlpre,'shared/text/shared/00/00000004.xhp',$urlpost)"/></xsl:variable>
|
|
<xsl:variable name="tmp_doc" select="document($tmp_href)"/>
|
|
<table class="howtoget" width="100%" border="1" cellpadding="3" cellspacing="0">
|
|
<tr>
|
|
<td>
|
|
<p class="howtogetheader"><xsl:apply-templates select="$tmp_doc//variable[@id='wie']"/></p>
|
|
<div class="howtogetbody">
|
|
<xsl:choose>
|
|
<xsl:when test="$linkhref = ''"> <!-- new style -->
|
|
<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="anc"><xsl:value-of select="substring-after($linkhref,'#')"/></xsl:variable>
|
|
<xsl:variable name="docum" select="document($href)"/>
|
|
|
|
<xsl:call-template name="insertembed">
|
|
<xsl:with-param name="doc" select="$docum" />
|
|
<xsl:with-param name="anchor" select="$anc" />
|
|
</xsl:call-template>
|
|
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<br/>
|
|
</xsl:template>
|
|
|
|
<!-- Create a link -->
|
|
<xsl:template name="createlink">
|
|
<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:choose>
|
|
<xsl:when test="starts-with(@href,'http://')"> <!-- web links -->
|
|
<a href="{@href}"><xsl:apply-templates /></a>
|
|
</xsl:when>
|
|
<xsl:when test="contains(@href,'#')">
|
|
<xsl:variable name="anchor"><xsl:value-of select="concat('#',substring-after(@href,'#'))"/></xsl:variable>
|
|
<xsl:variable name="href"><xsl:value-of select="concat($linkprefix,$archive,substring-before(@href,'#'),$linkpostfix,$dbpostfix,$anchor)"/></xsl:variable>
|
|
<a href="{$href}"><xsl:apply-templates /></a>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:variable name="href"><xsl:value-of select="concat($linkprefix,$archive,@href,$linkpostfix,$dbpostfix)"/></xsl:variable>
|
|
<a href="{$href}"><xsl:apply-templates /></a>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<!-- Insert Note, Warning, or Tip -->
|
|
<xsl:template name="insertnote">
|
|
<xsl:param name="type" /> <!-- note, tip, or warning -->
|
|
<xsl:variable name="imgsrc">
|
|
<xsl:choose>
|
|
<xsl:when test="$type='note'"><xsl:value-of select="$note_img"/></xsl:when>
|
|
<xsl:when test="$type='tip'"><xsl:value-of select="$tip_img"/></xsl:when>
|
|
<xsl:when test="$type='warning'"><xsl:value-of select="$warning_img"/></xsl:when>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<xsl:variable name="dbpostfix"><xsl:call-template name="createDBpostfix"><xsl:with-param name="archive" select="'shared'"/></xsl:call-template></xsl:variable>
|
|
<xsl:variable name="alt">
|
|
<xsl:variable name="href"><xsl:value-of select="concat($urlpre,'shared/',$alttext,$urlpost,$dbpostfix)"/></xsl:variable>
|
|
<xsl:variable name="anchor"><xsl:value-of select="concat('alt_',$type)"/></xsl:variable>
|
|
<xsl:variable name="doc" select="document($href)"/>
|
|
<xsl:apply-templates select="$doc//variable[@id=$anchor]" mode="embedded"/>
|
|
</xsl:variable>
|
|
<div class="{$type}">
|
|
<table border="0" class="{$type}" cellspacing="0" cellpadding="5">
|
|
<tr>
|
|
<td><img src="{$imgsrc}" alt="{$alt}" title="{$alt}"/></td>
|
|
<td><xsl:apply-templates /></td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<br/>
|
|
</xsl:template>
|
|
|
|
<!-- Insert a heading -->
|
|
<xsl:template name="insertheading">
|
|
<xsl:param name="level" />
|
|
<xsl:param name="embedded" />
|
|
<xsl:text disable-output-escaping="yes"><h</xsl:text><xsl:value-of select="$level"/><xsl:text disable-output-escaping="yes">></xsl:text>
|
|
<xsl:choose>
|
|
<xsl:when test="$embedded = 'yes'">
|
|
<xsl:apply-templates mode="embedded"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:apply-templates />
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
<xsl:text disable-output-escaping="yes"></h</xsl:text><xsl:value-of select="$level"/><xsl:text disable-output-escaping="yes">></xsl:text>
|
|
</xsl:template>
|
|
|
|
<!-- Evaluate a case or caseinline switch -->
|
|
<xsl:template name="insertcase">
|
|
<xsl:param name="embedded" />
|
|
<xsl:choose>
|
|
<xsl:when test="parent::switch[@select='sys'] or parent::switchinline[@select='sys']">
|
|
<xsl:if test="@select = $System">
|
|
<xsl:choose>
|
|
<xsl:when test="$embedded = 'yes'">
|
|
<xsl:apply-templates mode="embedded"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:apply-templates />
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:if>
|
|
</xsl:when>
|
|
<xsl:when test="parent::switch[@select='appl'] or parent::switchinline[@select='appl']">
|
|
<xsl:if test="@select = $appl">
|
|
<xsl:choose>
|
|
<xsl:when test="$embedded = 'yes'">
|
|
<xsl:apply-templates mode="embedded"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:apply-templates />
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:if>
|
|
</xsl:when>
|
|
<xsl:when test="parent::switch[@select='distrib'] or parent::switchinline[@select='distrib']">
|
|
<xsl:if test="@select = $distrib">
|
|
<xsl:choose>
|
|
<xsl:when test="$embedded = 'yes'">
|
|
<xsl:apply-templates mode="embedded"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:apply-templates />
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:if>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<!-- Evaluate a default or defaultinline switch -->
|
|
<xsl:template name="insertdefault">
|
|
<xsl:param name="embedded" />
|
|
|
|
<xsl:choose>
|
|
<xsl:when test="parent::switch[@select='sys'] or parent::switchinline[@select='sys']">
|
|
<xsl:if test="not(../child::case[@select=$System]) and not(../child::caseinline[@select=$System])">
|
|
<xsl:choose>
|
|
<xsl:when test="$embedded = 'yes'">
|
|
<xsl:apply-templates mode="embedded"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:apply-templates />
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:if>
|
|
</xsl:when>
|
|
<xsl:when test="parent::switch[@select='appl'] or parent::switchinline[@select='appl']">
|
|
<xsl:if test="not(../child::case[@select=$appl]) and not(../child::caseinline[@select=$appl])">
|
|
<xsl:choose>
|
|
<xsl:when test="$embedded = 'yes'">
|
|
<xsl:apply-templates mode="embedded"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:apply-templates />
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:if>
|
|
</xsl:when>
|
|
<xsl:when test="parent::switch[@select='distrib'] or parent::switchinline[@select='distrib']">
|
|
<xsl:if test="not(../child::case[@select=$distrib]) and not(../child::caseinline[@select=$distrib])">
|
|
<xsl:choose>
|
|
<xsl:when test="$embedded = 'yes'">
|
|
<xsl:apply-templates mode="embedded"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:apply-templates />
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:if>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<!-- evaluate embeds -->
|
|
<xsl:template name="insertembed">
|
|
<xsl:param name="doc" />
|
|
<xsl:param name="anchor" />
|
|
<!-- different embed targets (also falsely used embed instead embedvar) -->
|
|
<xsl:choose>
|
|
<xsl:when test="$doc//section[@id=$anchor]"> <!-- first test for a section of that name -->
|
|
<xsl:apply-templates select="$doc//section[@id=$anchor]" mode="embedded"/>
|
|
</xsl:when>
|
|
<xsl:when test="$doc//paragraph[@id=$anchor]"> <!-- then test for a para of that name -->
|
|
<p class="embedded">
|
|
<xsl:apply-templates select="$doc//paragraph[@id=$anchor]" mode="embedded"/>
|
|
</p>
|
|
</xsl:when>
|
|
<xsl:when test="$doc//variable[@id=$anchor]"> <!-- then test for a variable of that name -->
|
|
<p class="embedded">
|
|
<xsl:apply-templates select="$doc//variable[@id=$anchor]" mode="embedded"/>
|
|
</p>
|
|
</xsl:when>
|
|
<xsl:otherwise> <!-- then give up -->
|
|
<p class="bug">D'oh! You found a bug (<xsl:value-of select="@href"/> not found).</p>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<!-- Insert an image -->
|
|
<xsl:template name="insertimage">
|
|
|
|
<xsl:variable name="fpath">
|
|
<xsl:call-template name="getfpath">
|
|
<xsl:with-param name="s"><xsl:value-of select="@src"/></xsl:with-param>
|
|
</xsl:call-template>
|
|
</xsl:variable>
|
|
|
|
<xsl:variable name="fname">
|
|
<xsl:call-template name="getfname">
|
|
<xsl:with-param name="s"><xsl:value-of select="@src"/></xsl:with-param>
|
|
</xsl:call-template>
|
|
</xsl:variable>
|
|
|
|
<xsl:variable name="src">
|
|
<xsl:choose>
|
|
<xsl:when test="not($ExtensionId='') and starts-with(@src,$ExtensionId)">
|
|
<xsl:value-of select="concat($ExtensionPath,'/',@src)"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:choose>
|
|
<xsl:when test="(@localize='true') and not($lang='en-US')">
|
|
<xsl:value-of select="concat($img_url_prefix,$fpath,$lang,'/',$fname)"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="concat($img_url_prefix,$fpath,$fname)"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
|
|
<!--<xsl:variable name="src"><xsl:value-of select="concat($img_url_prefix,@src)"/></xsl:variable>-->
|
|
<xsl:variable name="alt"><xsl:value-of select="./alt"/></xsl:variable>
|
|
<xsl:variable name="width" select="''"/> <!-- Images don't all have the correct size -->
|
|
<xsl:variable name="height" select="''"/><!-- Image don't all have the correct size -->
|
|
<img src="{$src}" alt="{$alt}" title="{$alt}">
|
|
<xsl:if test="not($width='')"><xsl:attribute name="width"><xsl:value-of select="$width"/></xsl:attribute></xsl:if>
|
|
<xsl:if test="not($height='')"><xsl:attribute name="height"><xsl:value-of select="$height"/></xsl:attribute></xsl:if>
|
|
</img>
|
|
</xsl:template>
|
|
|
|
<!-- Insert a Table -->
|
|
<xsl:template name="inserttable">
|
|
<xsl:variable name="imgsrc"> <!-- see if we are in an image table -->
|
|
<xsl:value-of select="tablerow/tablecell[1]/paragraph[1]/image/@src"/>
|
|
</xsl:variable>
|
|
|
|
<xsl:choose>
|
|
|
|
<xsl:when test="count(descendant::tablecell)=1">
|
|
<table border="0" class="onecell" cellpadding="0" cellspacing="0">
|
|
<xsl:apply-templates />
|
|
</table>
|
|
</xsl:when>
|
|
|
|
<xsl:when test="descendant::tablecell[1]/descendant::image">
|
|
<table border="0" class="icontable" cellpadding="5" cellspacing="0">
|
|
<xsl:apply-templates mode="icontable"/>
|
|
</table>
|
|
</xsl:when>
|
|
|
|
<xsl:when test="@class='wide'">
|
|
<table border="1" class="{@class}" cellpadding="0" cellspacing="0" width="100%" >
|
|
<xsl:apply-templates />
|
|
</table>
|
|
</xsl:when>
|
|
|
|
<xsl:when test="not(@class='')">
|
|
<table border="1" class="{@class}" cellpadding="0" cellspacing="0" >
|
|
<xsl:apply-templates />
|
|
</table>
|
|
</xsl:when>
|
|
|
|
<xsl:otherwise>
|
|
<table border="1" class="border" cellpadding="0" cellspacing="0" >
|
|
<xsl:apply-templates />
|
|
</table>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
|
|
<br/>
|
|
</xsl:template>
|
|
|
|
<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,$archive,substring-before(@href,'#'),$urlpost,$dbpostfix)"/></xsl:variable>
|
|
<xsl:variable name="anc"><xsl:value-of select="substring-after(@href,'#')"/></xsl:variable>
|
|
<xsl:variable name="docum" select="document($href)"/>
|
|
|
|
<xsl:call-template name="insertembed">
|
|
<xsl:with-param name="doc" select="$docum" />
|
|
<xsl:with-param name="anchor" select="$anc" />
|
|
</xsl:call-template>
|
|
|
|
</div>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="resolveembedvar">
|
|
<xsl:if test="not(@href='text/shared/00/00000004.xhp#wie')"> <!-- special treatment if howtoget links -->
|
|
<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,$archive,substring-before(@href,'#'),$urlpost,$dbpostfix)"/></xsl:variable>
|
|
<xsl:variable name="anchor"><xsl:value-of select="substring-after(@href,'#')"/></xsl:variable>
|
|
<xsl:variable name="doc" select="document($href)"/>
|
|
<xsl:choose>
|
|
<xsl:when test="$doc//variable[@id=$anchor]"> <!-- test for a variable of that name -->
|
|
<xsl:apply-templates select="$doc//variable[@id=$anchor]" mode="embedded"/>
|
|
</xsl:when>
|
|
<xsl:otherwise> <!-- or give up -->
|
|
<span class="bug">[<xsl:value-of select="@href"/> not found].</span>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:if>
|
|
</xsl:template>
|
|
|
|
<!-- Apply -->
|
|
<xsl:template name="apply">
|
|
<xsl:param name="embedded" />
|
|
<xsl:choose>
|
|
<xsl:when test="$embedded = 'yes'">
|
|
<xsl:apply-templates mode="embedded"/>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:apply-templates />
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="getfpath">
|
|
<xsl:param name="s"/>
|
|
<xsl:param name="p"/>
|
|
<xsl:choose>
|
|
<xsl:when test="contains($s,'/')">
|
|
<xsl:call-template name="getfpath">
|
|
<xsl:with-param name="p"><xsl:value-of select="concat($p,substring-before($s,'/'),'/')"/></xsl:with-param>
|
|
<xsl:with-param name="s"><xsl:value-of select="substring-after($s,'/')"/></xsl:with-param>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$p"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="getfname">
|
|
<xsl:param name="s"/>
|
|
<xsl:choose>
|
|
<xsl:when test="contains($s,'/')">
|
|
<xsl:call-template name="getfname">
|
|
<xsl:with-param name="s"><xsl:value-of select="substring-after($s,'/')"/></xsl:with-param>
|
|
</xsl:call-template>
|
|
</xsl:when>
|
|
<xsl:otherwise>
|
|
<xsl:value-of select="$s"/>
|
|
</xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:template>
|
|
|
|
<xsl:template name="createDBpostfix">
|
|
<xsl:param name="archive"/>
|
|
<xsl:variable name="newDB">
|
|
<xsl:choose>
|
|
<xsl:when test="(substring($archive,1,6) = 'shared')"><xsl:value-of select="$Database"/></xsl:when>
|
|
<xsl:otherwise><xsl:value-of select="substring-before($archive,'/')"/></xsl:otherwise>
|
|
</xsl:choose>
|
|
</xsl:variable>
|
|
<xsl:value-of select="concat($am,'DbPAR=',$newDB)"/>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|