123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--***********************************************************************
- This is the main transformation style sheet for transforming.
- For use with LibreOffice 4.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
- ***********************************************************************//-->
- <!--
- * 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 file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- -->
- <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="title" select="/helpdocument/meta/topic/title"/>
- <!-- 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="imgtheme" select="''"/>
- <xsl:param name="Id" />
- <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.libreoffice.image://',$imgtheme,'/')"/>
- <xsl:variable name="img_url_internal" select="'vnd.libreoffice.image://helpimg/'"/>
- <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_internal,'media/helpimg/note.png')"/>
- <xsl:variable name="tip_img" select="concat($img_url_internal,'media/helpimg/tip.png')"/>
- <xsl:variable name="warning_img" select="concat($img_url_internal,'media/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>
- <!-- 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:when test="@role='bascode'">
- <xsl:call-template name="insertbascode" />
- </xsl:when>
- <xsl:when test="@role='logocode'">
- <xsl:call-template name="insertlogocode" />
- </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 Basic code snippet -->
- <xsl:template name="insertbascode">
- <pre><xsl:apply-templates /></pre>
- </xsl:template>
- <!-- Insert Logo code snippet -->
- <xsl:template name="insertlogocode">
- <pre><xsl:apply-templates /></pre>
- </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://') or starts-with(@href,'https://')"> <!-- 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="src">
- <xsl:choose>
- <xsl:when test="starts-with(@src,'media/')">
- <xsl:value-of select="concat($img_url_internal,@src)"/>
- </xsl:when>
- <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'">
- <xsl:value-of select="concat($img_url_prefix,@src,'?lang=',$lang)"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="concat($img_url_prefix,@src)"/>
- </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="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>
|