| <xsl:stylesheet |
| xmlns:xsl="http://www.w3.org/1999/XSL/Transform" |
| xmlns:exsl="http://exslt.org/common" |
| xmlns:ng="http://docbook.org/docbook-ng" |
| xmlns:db="http://docbook.org/ns/docbook" |
| version="1.0" xmlns="http://www.w3.org/1999/xhtml" |
| exclude-result-prefixes="exsl ng db"> |
| |
| <!-- ******************************************************************** |
| $Id$ |
| ******************************************************************** |
| |
| This file is part customization layer on top of the XSL DocBook |
| Stylesheet distribution that generates webhelp output. |
| |
| ******************************************************************** --> |
| |
| <xsl:param name="chunker.output.method"> |
| <xsl:choose> |
| <xsl:when test="contains(system-property('xsl:vendor'), 'SAXON 6')">saxon:xhtml</xsl:when> |
| <xsl:otherwise>html</xsl:otherwise> |
| </xsl:choose> |
| </xsl:param> |
| |
| <xsl:param name="doc.title"> |
| <xsl:call-template name="get.doc.title"/> |
| </xsl:param> |
| |
| <!-- Set some reasonable defaults for webhelp output --> |
| <xsl:param name="chunker.output.indent">yes</xsl:param> |
| <xsl:param name="navig.showtitles">0</xsl:param> |
| <xsl:param name="manifest.in.base.dir" select="0"/> |
| <xsl:param name="base.dir" select="concat($webhelp.base.dir,'/content/')"/> |
| <xsl:param name="suppress.navigation">0</xsl:param> |
| <!-- Generate the end-of-the-book index --> |
| <xsl:param name="generate.index" select="1"/> |
| <xsl:param name="inherit.keywords" select="'0'"/> |
| <xsl:param name="para.propagates.style" select="1"/> |
| <xsl:param name="phrase.propagates.style" select="1"/> |
| <xsl:param name="chunk.first.sections" select="1"/> |
| <xsl:param name="chunk.section.depth" select="3"/> |
| <xsl:param name="use.id.as.filename" select="1"/> |
| <xsl:param name="branding">not set</xsl:param> |
| <xsl:param name="brandname"> </xsl:param> |
| |
| <xsl:param name="section.autolabel" select="0"/> |
| <xsl:param name="chapter.autolabel" select="0"/> |
| <xsl:param name="appendix.autolabel" select="0"/> |
| <xsl:param name="qandadiv.autolabel" select="0"/> |
| <xsl:param name="reference.autolabel" select="0"/> |
| <xsl:param name="part.autolabel" select="0"/> |
| <xsl:param name="section.label.includes.component.label" select="1"/> |
| |
| <xsl:param name="generate.section.toc.level" select="5"/> |
| <xsl:param name="component.label.includes.part.label" select="1"/> |
| <xsl:param name="suppress.footer.navigation">0</xsl:param> |
| <xsl:param name="callout.graphics.path"><xsl:value-of select="$webhelp.common.dir"/>images/callouts/</xsl:param> |
| <xsl:param name="callouts.extension">1</xsl:param> |
| <xsl:param name="admon.graphics.path"><xsl:value-of select="$webhelp.common.dir"/>images/admon/</xsl:param> |
| <xsl:param name="admon.graphics" select="0"/> |
| <!--xsl:param name="generate.toc">book toc</xsl:param--> |
| |
| <xsl:param name="generate.toc"> |
| appendix toc,title |
| article/appendix nop |
| article toc,title |
| book title,figure,table,example,equation |
| chapter toc,title |
| part toc,title |
| preface toc,title |
| qandadiv toc |
| qandaset toc |
| reference toc,title |
| sect1 toc |
| sect2 toc |
| sect3 toc |
| sect4 toc |
| sect5 toc |
| section toc |
| set toc,title |
| </xsl:param> |
| |
| <!-- Localizations of webhelp specific words. Your contributions for other languages are appreciated. |
| Currently, only around 10 translations needed. --> |
| <!-- Moved to files under 'gentext/locale/', search for WebHelp --> |
| |
| |
| <xsl:template name="system.head.content"> |
| <xsl:param name="node" select="."/> |
| <xsl:text> |
| </xsl:text> |
| <!-- |
| This avoids two problems in IE 8. We should someday figure out why this is happening and tweak the JavaScript so this <meta/> tag is not necessary: |
| 1. When you perform a search and click the Toggle Highlight button, IE 8 adds a line break before the highlighted word. |
| 2. If you click the show/hide toc button, the tab crashes. |
| These problems go away when you add this IE=7 mode meta tag. |
| --> |
| <meta http-equiv="X-UA-Compatible" content="IE=7" /> |
| <xsl:text> |
| </xsl:text> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
| <xsl:text> |
| </xsl:text> |
| </xsl:template> |
| |
| <!-- HTML <head> section customizations --> |
| <xsl:template name="user.head.content"> |
| <!-- <xsl:message> |
| webhelp.tree.cookie.id = <xsl:value-of select="$webhelp.tree.cookie.id"/> +++ <xsl:value-of select="count(//node())"/> |
| $webhelp.indexer.language = <xsl:value-of select="$webhelp.indexer.language"/> +++ <xsl:value-of select="count(//node())"/> |
| </xsl:message>--> |
| <script type="text/javascript"> |
| //The id for tree cookie |
| var treeCookieId = "<xsl:value-of select="$webhelp.tree.cookie.id"/>"; |
| var language = "<xsl:value-of select="$webhelp.indexer.language"/>"; |
| var w = new Object(); |
| //Localization |
| txt_filesfound = '<xsl:call-template name="gentext.template"> |
| <xsl:with-param name="name" select="'txt_filesfound'"/> |
| <xsl:with-param name="context" select="'webhelp'"/> |
| </xsl:call-template>'; |
| txt_enter_at_least_1_char = "<xsl:call-template name="gentext.template"> |
| <xsl:with-param name="name" select="'txt_enter_at_least_1_char'"/> |
| <xsl:with-param name="context" select="'webhelp'"/> |
| </xsl:call-template>"; |
| txt_browser_not_supported = "<xsl:call-template name="gentext.template"> |
| <xsl:with-param name="name" select="'txt_browser_not_supported'"/> |
| <xsl:with-param name="context" select="'webhelp'"/> |
| </xsl:call-template>"; |
| txt_please_wait = "<xsl:call-template name="gentext.template"> |
| <xsl:with-param name="name" select="'txt_please_wait'"/> |
| <xsl:with-param name="context" select="'webhelp'"/> |
| </xsl:call-template>"; |
| txt_results_for = "<xsl:call-template name="gentext.template"> |
| <xsl:with-param name="name" select="'txt_results_for'"/> |
| <xsl:with-param name="context" select="'webhelp'"/> |
| </xsl:call-template>"; |
| </script> |
| |
| <!-- kasunbg: Order is important between the in-html-file css and the linked css files. Some css declarations in jquery-ui-1.8.2.custom.css are over-ridden. |
| If that's a concern, just remove the additional css contents inside these default jquery css files. I thought of keeping them intact for easier maintenance! --> |
| <link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"/> |
| <link rel="stylesheet" type="text/css" href="{$webhelp.common.dir}css/positioning.css"/> |
| <link rel="stylesheet" type="text/css" href="{$webhelp.common.dir}jquery/theme-redmond/jquery-ui-1.8.2.custom.css"/> |
| <link rel="stylesheet" type="text/css" href="{$webhelp.common.dir}jquery/treeview/jquery.treeview.css"/> |
| |
| <style type="text/css"> |
| noscript{ |
| font-weight:bold; |
| } |
| input { |
| margin-bottom: 5px; |
| margin-top: 2px; |
| } |
| .folder { |
| display: block; |
| height: 22px; |
| padding-left: 20px; |
| background: transparent url(<xsl:value-of select="$webhelp.common.dir"/>jquery/treeview/images/folder.gif) 0 0px no-repeat; |
| } |
| span.contentsTab { |
| padding-left: 20px; |
| background: url(<xsl:value-of select="$webhelp.common.dir"/>images/toc-icon.png) no-repeat 0 center; |
| } |
| span.searchTab { |
| padding-left: 20px; |
| background: url(<xsl:value-of select="$webhelp.common.dir"/>images/search-icon.png) no-repeat 0 center; |
| } |
| |
| /* Overide jquery treeview's defaults for ul. */ |
| .treeview ul { |
| background-color: transparent; |
| margin-top: 4px; |
| } |
| #webhelp-currentid { |
| background-color: #D8D8D8 !important; |
| } |
| .treeview .hover { color: black; } |
| .filetree li span a { text-decoration: none; font-size: 12px; color: #517291; } |
| |
| /* Override jquery-ui's default css customizations. These are supposed to take precedence over those.*/ |
| .ui-widget-content { |
| border: 0px; |
| background: none; |
| color: none; |
| } |
| .ui-widget-header { |
| color: #e9e8e9; |
| border-left: 1px solid #e5e5e5; |
| border-right: 1px solid #e5e5e5; |
| border-bottom: 1px solid #bbc4c5; |
| border-top: 4px solid #e5e5e5; |
| border: medium none; |
| background: #F4F4F4; /* old browsers */ |
| background: -moz-linear-gradient(top, #F4F4F4 0%, #E6E4E5 100%); /* firefox */ |
| background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#F4F4F4), color-stop(100%,#E6E4E5)); /* webkit */ |
| font-weight: none; |
| } |
| .ui-widget-header a { color: none; } |
| .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { |
| border: none; background: none; font-weight: none; color: none; } |
| .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: black; text-decoration: none; } |
| .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: none; background: none; font-weight: none; color: none; } |
| |
| .ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: none; background: none; font-weight: none; color: none; } |
| .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { |
| color: black; text-decoration: none; |
| background: #C6C6C6; /* old browsers */ |
| background: -moz-linear-gradient(top, #C6C6C6 0%, #D8D8D8 100%); /* firefox */ |
| background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#C6C6C6), color-stop(100%,#D8D8D8)); /* webkit */ |
| -webkit-border-radius:15px; -moz-border-radius:10px; |
| border: 1px solid #f1f1f1; |
| } |
| .ui-corner-all { border-radius: 0 0 0 0; } |
| |
| .ui-tabs { padding: .2em;} |
| .ui-tabs .ui-tabs-nav li { top: 0px; margin: -2px 0 1px; text-transform: uppercase; font-size: 10.5px;} |
| .ui-tabs .ui-tabs-nav li a { padding: .25em 2em .25em 1em; margin: .5em; text-shadow: 0 1px 0 rgba(255,255,255,.5); } |
| </style> |
| |
| <!-- |
| browserDetect is an Oxygen addition to warn the user if they're using chrome from the file system. |
| This breaks the Oxygen search highlighting. |
| --> |
| <script type="text/javascript" src="{$webhelp.common.dir}browserDetect.js"> |
| <xsl:comment> </xsl:comment> |
| </script> |
| <script type="text/javascript" src="{$webhelp.common.dir}jquery/jquery-1.4.2.min.js"> |
| <xsl:comment> </xsl:comment> |
| </script> |
| <script type="text/javascript" src="{$webhelp.common.dir}jquery/jquery-ui-1.8.2.custom.min.js"> |
| <xsl:comment> </xsl:comment> |
| </script> |
| <script type="text/javascript" src="{$webhelp.common.dir}jquery/jquery.cookie.js"> |
| <xsl:comment> </xsl:comment> |
| </script> |
| <script type="text/javascript" src="{$webhelp.common.dir}jquery/treeview/jquery.treeview.min.js"> |
| <xsl:comment> </xsl:comment> |
| </script> |
| |
| <xsl:if test="$webhelp.include.search.tab = 'true'"> |
| <!--Scripts/css stylesheets for Search--> |
| <!-- TODO: Why THREE files? There's absolutely no need for having separate files. |
| These should have been identified at the optimization phase! --> |
| <script type="text/javascript" src="search/l10n.js"> |
| <xsl:comment></xsl:comment> |
| </script> |
| <script type="text/javascript" src="search/htmlFileInfoList.js"> |
| <xsl:comment> </xsl:comment> |
| </script> |
| <script type="text/javascript" src="search/nwSearchFnt.js"> |
| <xsl:comment> </xsl:comment> |
| </script> |
| |
| <!-- |
| NOTE: Stemmer javascript files should be in format <language>_stemmer.js. |
| For example, for English(en), source should be: "search/stemmers/en_stemmer.js" |
| For country codes, see: http://www.uspto.gov/patft/help/helpctry.htm |
| --> |
| <!--<xsl:message><xsl:value-of select="concat('search/stemmers/',$webhelp.indexer.language,'_stemmer.js')"/></xsl:message>--> |
| <script type="text/javascript" src="{concat('search/stemmers/',$webhelp.indexer.language,'_stemmer.js')}"> |
| <xsl:comment>//make this scalable to other languages as well.</xsl:comment> |
| </script> |
| |
| <!--Index Files: |
| Index is broken in to three equal sized(number of index items) files. This is to help parallel downloading |
| of files to make it faster. |
| TODO: Generate webhelp index for largest docbook document that can be find, and analyze the file sizes. |
| IF the file size is still around ~50KB for a given file, we should consider merging these files together. again. |
| --> |
| <script type="text/javascript" src="search/index-1.js"> |
| <xsl:comment> </xsl:comment> |
| </script> |
| <script type="text/javascript" src="search/index-2.js"> |
| <xsl:comment> </xsl:comment> |
| </script> |
| <script type="text/javascript" src="search/index-3.js"> |
| <xsl:comment> </xsl:comment> |
| </script> |
| <!--End of index files --> |
| </xsl:if> |
| <xsl:call-template name="user.webhelp.head.content"/> |
| </xsl:template> |
| |
| <!-- This is for the USERS. Users who want to customize webhelp may over-ride this template to add content to <head>. --> |
| <xsl:template name="user.webhelp.head.content"/> |
| |
| <xsl:template name="user.header.navigation"> |
| <xsl:param name="prev"/> |
| <xsl:param name="next"/> |
| <xsl:param name="nav.context"/> |
| <xsl:call-template name="webhelpheader"> |
| <xsl:with-param name="prev" select="$prev"/> |
| <xsl:with-param name="next" select="$next"/> |
| <xsl:with-param name="nav.context" select="$nav.context"/> |
| </xsl:call-template> |
| <!--xsl:call-template name="webhelptoc"/--> |
| |
| <!--testing toc in the content page> |
| <xsl:call-template name="webhelptoctoc"/> |
| <xsl:if test="$webhelp.include.search.tab != 'false'"> |
| <xsl:call-template name="search"/> |
| </xsl:if--> |
| </xsl:template> |
| |
| <xsl:template name="user.header.content"> |
| <xsl:comment> <!-- KEEP this code. --> </xsl:comment> |
| </xsl:template> |
| |
| <xsl:template name="user.footer.navigation"> |
| <xsl:call-template name="webhelptoc"> |
| <xsl:with-param name="currentid" select="generate-id(.)"/> |
| </xsl:call-template> |
| </xsl:template> |
| |
| <xsl:template match="/"> |
| <xsl:message>language: <xsl:value-of select="$webhelp.indexer.language"/> </xsl:message> |
| <!-- * Get a title for current doc so that we let the user --> |
| <!-- * know what document we are processing at this point. --> |
| <xsl:choose> |
| <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document, |
| toss the namespace and continue. Use the docbook5 namespaced |
| stylesheets for DocBook5 if you don't want to use this feature.--> |
| <!-- include extra test for Xalan quirk --> |
| <xsl:when test="$exsl.node.set.available != 0 and (*/self::ng:* or */self::db:*)"> |
| <xsl:call-template name="log.message"> |
| <xsl:with-param name="level">Note</xsl:with-param> |
| <xsl:with-param name="source" select="$doc.title"/> |
| <xsl:with-param name="context-desc"> |
| <xsl:text>namesp. cut</xsl:text> |
| </xsl:with-param> |
| <xsl:with-param name="message"> |
| <xsl:text>stripped namespace before processing</xsl:text> |
| </xsl:with-param> |
| </xsl:call-template> |
| <xsl:variable name="nons"> |
| <xsl:apply-templates mode="stripNS"/> |
| </xsl:variable> |
| <!-- |
| <xsl:message>Saving stripped document.</xsl:message> |
| <xsl:call-template name="write.chunk"> |
| <xsl:with-param name="filename" select="'/tmp/stripped.xml'"/> |
| <xsl:with-param name="method" select="'xml'"/> |
| <xsl:with-param name="content"> |
| <xsl:copy-of select="exsl:node-set($nons)"/> |
| </xsl:with-param> |
| </xsl:call-template> |
| --> |
| <xsl:call-template name="log.message"> |
| <xsl:with-param name="level">Note</xsl:with-param> |
| <xsl:with-param name="source" select="$doc.title"/> |
| <xsl:with-param name="context-desc"> |
| <xsl:text>namesp. cut</xsl:text> |
| </xsl:with-param> |
| <xsl:with-param name="message"> |
| <xsl:text>processing stripped document</xsl:text> |
| </xsl:with-param> |
| </xsl:call-template> |
| <xsl:apply-templates select="exsl:node-set($nons)"/> |
| </xsl:when> |
| <!-- Can't process unless namespace removed --> |
| <xsl:when test="*/self::ng:* or */self::db:*"> |
| <xsl:message terminate="yes"> |
| <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text> |
| <xsl:text> cannot proceed.</xsl:text> |
| </xsl:message> |
| </xsl:when> |
| <xsl:otherwise> |
| <xsl:choose> |
| <xsl:when test="$rootid != ''"> |
| <xsl:choose> |
| <xsl:when test="count(key('id',$rootid)) = 0"> |
| <xsl:message terminate="yes"> |
| <xsl:text>ID '</xsl:text> |
| <xsl:value-of select="$rootid"/> |
| <xsl:text>' not found in document.</xsl:text> |
| </xsl:message> |
| </xsl:when> |
| <xsl:otherwise> |
| <xsl:if test="$collect.xref.targets = 'yes' or $collect.xref.targets = 'only'"> |
| <xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/> |
| </xsl:if> |
| <xsl:if test="$collect.xref.targets != 'only'"> |
| <xsl:apply-templates select="key('id',$rootid)" mode="process.root"/> |
| <xsl:if test="$tex.math.in.alt != ''"> |
| <xsl:apply-templates select="key('id',$rootid)" mode="collect.tex.math"/> |
| </xsl:if> |
| </xsl:if> |
| </xsl:otherwise> |
| </xsl:choose> |
| </xsl:when> |
| <xsl:otherwise> |
| <xsl:if test="$collect.xref.targets = 'yes' or $collect.xref.targets = 'only'"> |
| <xsl:apply-templates select="/" mode="collect.targets"/> |
| </xsl:if> |
| <xsl:if test="$collect.xref.targets != 'only'"> |
| <xsl:apply-templates select="/" mode="process.root"/> |
| <xsl:if test="$tex.math.in.alt != ''"> |
| <xsl:apply-templates select="/" mode="collect.tex.math"/> |
| </xsl:if> |
| </xsl:if> |
| </xsl:otherwise> |
| </xsl:choose> |
| </xsl:otherwise> |
| </xsl:choose> |
| |
| <xsl:call-template name="index.html"/> |
| |
| <xsl:call-template name="l10n.js"/> |
| </xsl:template> |
| |
| |
| <!-- The WebHelp output structure. similar to main() method. |
| basic format: |
| <html> |
| <head> calls-appropriate-template </head> |
| <body> |
| some-generic-content |
| <div id="content"> |
| All your docbook document content goes here |
| .... |
| </div> |
| some-other-generic-content-at-footer |
| </body> |
| </html> |
| --> |
| <xsl:template name="chunk-element-content"> |
| <xsl:param name="prev"/> |
| <xsl:param name="next"/> |
| <xsl:param name="nav.context"/> |
| <xsl:param name="content"> |
| <xsl:apply-imports/> |
| </xsl:param> |
| |
| <xsl:call-template name="user.preroot"/> |
| |
| <html> |
| <xsl:call-template name="html.head"> |
| <xsl:with-param name="prev" select="$prev"/> |
| <xsl:with-param name="next" select="$next"/> |
| </xsl:call-template> |
| |
| <body> |
| <xsl:call-template name="body.attributes"/> |
| |
| <xsl:call-template name="user.header.navigation"> |
| <xsl:with-param name="prev" select="$prev"/> |
| <xsl:with-param name="next" select="$next"/> |
| <xsl:with-param name="nav.context" select="$nav.context"/> |
| </xsl:call-template> |
| |
| <div id="content"> |
| <noscript> |
| <xsl:call-template name="gentext.template"> |
| <xsl:with-param name="name" select="'txt_browser_not_supported'"/> |
| <xsl:with-param name="context" select="'webhelp'"/> |
| </xsl:call-template> |
| </noscript> |
| <xsl:call-template name="user.header.content"/> |
| |
| <xsl:copy-of select="$content"/> |
| |
| <xsl:call-template name="user.footer.content"/> |
| |
| <!-- Redundant since the upper navigation bar always visible --> |
| <xsl:call-template name="footer.navigation"> |
| <xsl:with-param name="prev" select="$prev"/> |
| <xsl:with-param name="next" select="$next"/> |
| <xsl:with-param name="nav.context" select="$nav.context"/> |
| </xsl:call-template> |
| |
| <xsl:call-template name="user.webhelp.content.footer"/> |
| </div> |
| |
| <xsl:call-template name="user.footer.navigation"/> |
| </body> |
| </html> |
| <xsl:value-of select="$chunk.append"/> |
| </xsl:template> |
| |
| <!-- This is for the USERS. Users who want to customize webhelp may over-ride this template to add content to the footer of the content DIV. |
| i.e. within <div id="content"> ... </div> --> |
| <xsl:template name="user.webhelp.content.footer"/> |
| |
| <!-- The Header with the company logo --> |
| <xsl:template name="webhelpheader"> |
| <xsl:param name="prev"/> |
| <xsl:param name="next"/> |
| <xsl:param name="nav.context"/> |
| |
| <xsl:variable name="home" select="/*[1]"/> |
| <xsl:variable name="up" select="parent::*"/> |
| |
| <div id="header"> |
| <xsl:call-template name="webhelpheader.logo"/> |
| <!-- Display the page title and the main heading(parent) of it--> |
| <h1> |
| <xsl:apply-templates select="/*[1]" mode="title.markup"/> |
| <br/> |
| <xsl:choose> |
| <xsl:when |
| test="count($up) > 0 and generate-id($up) != generate-id($home)"> |
| <xsl:apply-templates select="$up" mode="object.title.markup"/> |
| </xsl:when> |
| <xsl:when test="not(generate-id(.) = generate-id(/*))"> |
| <xsl:apply-templates select="." mode="object.title.markup"/> |
| </xsl:when> |
| <xsl:otherwise> </xsl:otherwise> |
| </xsl:choose> |
| </h1> |
| <!-- Prev and Next links generation--> |
| <div id="navheader"> |
| <xsl:call-template name="user.webhelp.navheader.content"/> |
| <xsl:comment> |
| <!-- KEEP this code. In case of neither prev nor next links are available, this will help to |
| keep the integrity of the DOM tree--> |
| </xsl:comment> |
| <!--xsl:with-param name="prev" select="$prev"/> |
| <xsl:with-param name="next" select="$next"/> |
| <xsl:with-param name="nav.context" select="$nav.context"/--> |
| <table class="navLinks"> |
| <tr> |
| <td> |
| <a id="showHideButton" href="javascript:showHideToc();" |
| class="pointLeft" tabindex="5" title="Hide TOC tree">Sidebar |
| </a> |
| </td> |
| <xsl:if test="count($prev) > 0 |
| or (count($up) > 0 |
| and generate-id($up) != generate-id($home) |
| and $navig.showtitles != 0) |
| or count($next) > 0"> |
| <td> |
| <xsl:if test="count($prev)>0"> |
| <a accesskey="p" class="navLinkPrevious" tabindex="5"> |
| <xsl:attribute name="href"> |
| <xsl:call-template name="href.target"> |
| <xsl:with-param name="object" select="$prev"/> |
| </xsl:call-template> |
| </xsl:attribute> |
| <xsl:call-template name="navig.content"> |
| <xsl:with-param name="direction" select="'prev'"/> |
| </xsl:call-template> |
| </a> |
| </xsl:if> |
| |
| <!-- "Up" link--> |
| <xsl:choose> |
| <xsl:when test="count($up)>0 |
| and generate-id($up) != generate-id($home)"> |
| | |
| <a accesskey="u" class="navLinkUp" tabindex="5"> |
| <xsl:attribute name="href"> |
| <xsl:call-template name="href.target"> |
| <xsl:with-param name="object" select="$up"/> |
| </xsl:call-template> |
| </xsl:attribute> |
| <xsl:call-template name="navig.content"> |
| <xsl:with-param name="direction" select="'up'"/> |
| </xsl:call-template> |
| </a> |
| </xsl:when> |
| <xsl:otherwise> </xsl:otherwise> |
| </xsl:choose> |
| |
| <xsl:if test="count($next)>0"> |
| | |
| <a accesskey="n" class="navLinkNext" tabindex="5"> |
| <xsl:attribute name="href"> |
| <xsl:call-template name="href.target"> |
| <xsl:with-param name="object" select="$next"/> |
| </xsl:call-template> |
| </xsl:attribute> |
| <xsl:call-template name="navig.content"> |
| <xsl:with-param name="direction" select="'next'"/> |
| </xsl:call-template> |
| </a> |
| </xsl:if> |
| </td> |
| </xsl:if> |
| </tr> |
| </table> |
| </div> |
| </div> |
| </xsl:template> |
| |
| <xsl:template name="webhelpheader.logo"> |
| <a target="_blank"> |
| <xsl:attribute name="href"> |
| <xsl:choose> |
| <xsl:when test="$branding = 'docbook'">http://docbook.org/</xsl:when> |
| <xsl:otherwise>#</xsl:otherwise> |
| </xsl:choose> |
| </xsl:attribute> |
| <img style='margin-right: 2px; height: 59px; padding-right: 25px; padding-top: 8px' align="right" |
| src='{$webhelp.common.dir}images/logo.png' alt="{$brandname} Documentation"/> |
| </a> |
| </xsl:template> |
| |
| <xsl:template name="user.webhelp.navheader.content"/> |
| |
| <xsl:template name="webhelptoc"> |
| <xsl:param name="currentid"/> |
| <xsl:choose> |
| <xsl:when test="$rootid != ''"> |
| <xsl:variable name="title"> |
| <xsl:if test="$webhelp.autolabel=1"> |
| <xsl:variable name="label.markup"> |
| <xsl:apply-templates select="key('id',$rootid)" mode="label.markup"/> |
| </xsl:variable> |
| <xsl:if test="normalize-space($label.markup)"> |
| <xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/> |
| </xsl:if> |
| </xsl:if> |
| <xsl:apply-templates select="key('id',$rootid)" mode="titleabbrev.markup"/> |
| </xsl:variable> |
| <xsl:variable name="href"> |
| <xsl:choose> |
| <xsl:when test="$manifest.in.base.dir != 0"> |
| <xsl:call-template name="href.target"> |
| <xsl:with-param name="object" select="key('id',$rootid)"/> |
| </xsl:call-template> |
| </xsl:when> |
| <xsl:otherwise> |
| <xsl:call-template name="href.target.with.base.dir"> |
| <xsl:with-param name="object" select="key('id',$rootid)"/> |
| </xsl:call-template> |
| </xsl:otherwise> |
| </xsl:choose> |
| </xsl:variable> |
| </xsl:when> |
| |
| <xsl:otherwise> |
| <xsl:variable name="title"> |
| <xsl:if test="$webhelp.autolabel=1"> |
| <xsl:variable name="label.markup"> |
| <xsl:apply-templates select="/*" mode="label.markup"/> |
| </xsl:variable> |
| <xsl:if test="normalize-space($label.markup)"> |
| <xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/> |
| </xsl:if> |
| </xsl:if> |
| <xsl:apply-templates select="/*" mode="titleabbrev.markup"/> |
| </xsl:variable> |
| <xsl:variable name="href"> |
| <xsl:choose> |
| <xsl:when test="$manifest.in.base.dir != 0"> |
| <xsl:call-template name="href.target"> |
| <xsl:with-param name="object" select="/"/> |
| </xsl:call-template> |
| </xsl:when> |
| <xsl:otherwise> |
| <xsl:call-template name="href.target.with.base.dir"> |
| <xsl:with-param name="object" select="/"/> |
| </xsl:call-template> |
| </xsl:otherwise> |
| </xsl:choose> |
| </xsl:variable> |
| |
| <div id="sidebar"> <!--#sidebar id is used for showing and hiding the side bar --> |
| <div id="leftnavigation" style="padding-top:3px;"> |
| <div id="tabs"> |
| <ul> |
| <li> |
| <a href="#treeDiv" style="outline:0;" tabindex="1"> |
| <span class="contentsTab"> |
| <xsl:call-template name="gentext.template"> |
| <xsl:with-param name="name" select="'TableofContents'"/> |
| <xsl:with-param name="context" select="'webhelp'"/> |
| </xsl:call-template> |
| </span> |
| </a> |
| </li> |
| <xsl:if test="$webhelp.include.search.tab != 'false'"> |
| <li> |
| <a href="#searchDiv" style="outline:0;" tabindex="1" onclick="doSearch()"> |
| <span class="searchTab"> |
| <xsl:call-template name="gentext.template"> |
| <xsl:with-param name="name" select="'Search'"/> |
| <xsl:with-param name="context" select="'webhelp'"/> |
| </xsl:call-template> |
| </span> |
| </a> |
| </li> |
| </xsl:if> |
| <xsl:call-template name="user.webhelp.tabs.title"/> |
| </ul> |
| <div id="treeDiv"> |
| <img src="{$webhelp.common.dir}images/loading.gif" alt="loading table of contents..." |
| id="tocLoading" style="display:block;"/> |
| <div id="ulTreeDiv" style="display:none"> |
| <ul id="tree" class="filetree"> |
| <xsl:apply-templates select="/*/*" mode="webhelptoc"> |
| <xsl:with-param name="currentid" select="$currentid"/> |
| </xsl:apply-templates> |
| </ul> |
| </div> |
| |
| </div> |
| <xsl:if test="$webhelp.include.search.tab != 'false'"> |
| <div id="searchDiv"> |
| <div id="search"> |
| <form onsubmit="Verifie(searchForm);return false" |
| name="searchForm" |
| class="searchForm"> |
| <fieldset class="searchFieldSet"> |
| <legend> |
| <xsl:call-template name="gentext.template"> |
| <xsl:with-param name="name" select="'Search'"/> |
| <xsl:with-param name="context" select="'webhelp'"/> |
| </xsl:call-template> |
| </legend> |
| <center> |
| <input id="textToSearch" name="textToSearch" type="search" |
| class="searchText" tabindex="1"/> |
| <xsl:text disable-output-escaping="yes"> <![CDATA[ ]]> </xsl:text> |
| <input onclick="Verifie(searchForm)" type="button" |
| class="searchButton" |
| value="Go" id="doSearch" tabindex="1"/> |
| </center> |
| </fieldset> |
| </form> |
| </div> |
| <div id="searchResults"> |
| <center> </center> |
| </div> |
| <p class="searchHighlight"><a href="#" onclick="toggleHighlight()">Search Highlighter (On/Off)</a></p> |
| </div> |
| </xsl:if> |
| <xsl:call-template name="user.webhelp.tabs.content"/> |
| </div> |
| </div> |
| </div> |
| </xsl:otherwise> |
| </xsl:choose> |
| </xsl:template> |
| |
| <!-- Hooks for adding customs tabs --> |
| <xsl:template name="user.webhelp.tabs.title"/> |
| <xsl:template name="user.webhelp.tabs.content"/> |
| |
| <!-- Generates the webhelp table-of-contents (TOC). --> |
| <xsl:template |
| match="book|part|reference|preface|chapter|bibliography|appendix|article|topic|glossary|section|simplesect|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv|index|setindex" |
| mode="webhelptoc"> |
| <xsl:param name="currentid"/> |
| <xsl:variable name="title"> |
| <xsl:if test="$webhelp.autolabel=1"> |
| <xsl:variable name="label.markup"> |
| <xsl:apply-templates select="." mode="label.markup"/> |
| </xsl:variable> |
| <xsl:if test="normalize-space($label.markup)"> |
| <xsl:value-of select="concat($label.markup,$autotoc.label.separator)"/> |
| </xsl:if> |
| </xsl:if> |
| <xsl:apply-templates select="." mode="titleabbrev.markup"/> |
| </xsl:variable> |
| |
| <xsl:variable name="href"> |
| <xsl:choose> |
| <xsl:when test="$manifest.in.base.dir != 0"> |
| <xsl:call-template name="href.target"/> |
| </xsl:when> |
| <xsl:otherwise> |
| <xsl:call-template name="href.target.with.base.dir"/> |
| </xsl:otherwise> |
| </xsl:choose> |
| </xsl:variable> |
| |
| <xsl:variable name="id" select="generate-id(.)"/> |
| |
| <xsl:if test="not(self::index) or (self::index and not($generate.index = 0))"> |
| <!--li style="white-space: pre; line-height: 0em;"--> |
| <li> |
| <xsl:if test="$id = $currentid"> |
| <xsl:attribute name="id">webhelp-currentid</xsl:attribute> |
| </xsl:if> |
| <span class="file"> |
| <a href="{substring-after($href, $base.dir)}" tabindex="1"> |
| <xsl:value-of select="$title"/> |
| </a> |
| </span> |
| <xsl:if test="part|reference|preface|chapter|bibliography|appendix|article|topic|glossary|section|simplesect|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv"> |
| <ul> |
| <xsl:apply-templates |
| select="part|reference|preface|chapter|bibliography|appendix|article|topic|glossary|section|simplesect|sect1|sect2|sect3|sect4|sect5|refentry|colophon|bibliodiv" |
| mode="webhelptoc"> |
| <xsl:with-param name="currentid" select="$currentid"/> |
| </xsl:apply-templates> |
| </ul> |
| </xsl:if> |
| </li> |
| </xsl:if> |
| </xsl:template> |
| |
| <xsl:template match="text()" mode="webhelptoc"/> |
| |
| <xsl:template name="user.footer.content"> |
| <script type="text/javascript" src="{$webhelp.common.dir}main.js"> |
| <xsl:comment> </xsl:comment> |
| </script> |
| </xsl:template> |
| |
| <!-- Generates index.html file at docs/. This is simply a redirection to content/$default.topic --> |
| <xsl:template name="index.html"> |
| <xsl:variable name="default.topic"> |
| <xsl:choose> |
| <xsl:when test="$webhelp.default.topic != ''"> |
| <xsl:value-of select="$webhelp.default.topic"/> |
| </xsl:when> |
| <xsl:when test="$htmlhelp.default.topic != ''"> |
| <xsl:value-of select="$htmlhelp.default.topic"/> |
| </xsl:when> |
| <xsl:otherwise> |
| <xsl:call-template name="make-relative-filename"> |
| <xsl:with-param name="base.dir"/> |
| <xsl:with-param name="base.name"> |
| <xsl:choose> |
| <xsl:when test="$rootid != ''"> |
| <xsl:apply-templates select="key('id',$rootid)" mode="chunk-filename"/> |
| </xsl:when> |
| <xsl:otherwise> |
| <xsl:apply-templates |
| select="*/*[self::preface|self::chapter|self::appendix|self::part][1]" |
| mode="chunk-filename"/> |
| </xsl:otherwise> |
| </xsl:choose> |
| </xsl:with-param> |
| </xsl:call-template> |
| </xsl:otherwise> |
| </xsl:choose> |
| </xsl:variable> |
| <xsl:call-template name="write.chunk"> |
| <xsl:with-param name="filename"> |
| <!-- <xsl:if test="$manifest.in.base.dir != 0"> --> |
| <!-- <xsl:value-of select="$base.dir"/> --> |
| <!-- </xsl:if> --> |
| <xsl:choose> |
| <xsl:when test="$webhelp.start.filename"> |
| <xsl:value-of select="concat($webhelp.base.dir,'/',$webhelp.start.filename)"/> |
| </xsl:when> |
| <xsl:otherwise> |
| <xsl:value-of select="'index.html'"/> |
| </xsl:otherwise> |
| </xsl:choose> |
| </xsl:with-param> |
| <xsl:with-param name="method" select="'xml'"/> |
| <xsl:with-param name="encoding" select="'utf-8'"/> |
| <xsl:with-param name="indent" select="'yes'"/> |
| <xsl:with-param name="content"> |
| <html> |
| <head> |
| <link rel="shortcut icon" href="favicon.ico"/> |
| <meta http-equiv="Refresh" content="1; URL=content/{$default.topic}"/> |
| <title><xsl:value-of select="//title[1]"/> </title> |
| </head> |
| <body> |
| If not automatically redirected, click <a href="content/{$default.topic}">content/<xsl:value-of select="$default.topic"/></a> |
| </body> |
| </html> |
| </xsl:with-param> |
| </xsl:call-template> |
| </xsl:template> |
| |
| <xsl:template name="l10n.js"> |
| <xsl:call-template name="write.chunk"> |
| <xsl:with-param name="filename"> |
| <xsl:value-of select="concat($base.dir,'search/l10n.js')"/> |
| </xsl:with-param> |
| <xsl:with-param name="method" select="'text'"/> |
| <xsl:with-param name="encoding" select="'utf-8'"/> |
| <xsl:with-param name="indent" select="'no'"/> |
| <xsl:with-param name="content"> |
| //Resource strings for localization |
| var localeresource = new Object; |
| localeresource["search_no_results"]="<xsl:call-template name="gentext.template"> |
| <xsl:with-param name="name" select="'Your_search_returned_no_results'"/> |
| <xsl:with-param name="context" select="'webhelp'"/> |
| </xsl:call-template>"; |
| </xsl:with-param> |
| </xsl:call-template> |
| </xsl:template> |
| |
| </xsl:stylesheet> |
| |