[Libreoffice-commits] dev-tools.git: help3/html

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Fri Dec 21 17:37:49 UTC 2018


 help3/html/default.css      |  830 +++++++++++++++++++++++++
 help3/html/ed_transform.xsl | 1369 ++++++++++++++++++++++++++++++++++++++++++
 help3/html/index.html       |    6 
 help3/html/index.php        |  107 +++
 help3/html/links.txt.xsl    | 1427 ++++++++++++++++++++++++++++++++++++++++++++
 help3/html/localized.xsl    |   45 +
 help3/html/test.xhp         |   57 +
 help3/html/xhp2html.js      |   72 ++
 help3/html/xhpeditor.css    |   11 
 9 files changed, 3917 insertions(+), 7 deletions(-)

New commits:
commit 99924eb64bac6d96385d2301d98129a3cda943de
Author:     Olivier Hallot <olivier.hallot at libreoffice.org>
AuthorDate: Fri Dec 21 13:49:15 2018 -0200
Commit:     Olivier Hallot <olivier.hallot at libreoffice.org>
CommitDate: Fri Dec 21 18:37:31 2018 +0100

    XHP editor (ii) (WIP)
    
    * Split screen in left (editor) and right (rendered page)
    * tweak XSLT  to get only the #DisplaysArea to render
    * add test file test.xhp
    * add companion XSLTs from new Help (localized and list)
    * added javascript for file load and page render (xhp2html.js)
    * css for the editor screen xhpeditor.css
    * add default.css, which is the same as the online help
    * added index.php, which will be used to send edited file to server
    
    * How to display editor:
    + add a folder /ed/ in your localhost
    + copy editor into /ed/
    + point browser to localhost/ed/index.php
    
    Usage:
    1) type location of xhp file,
    2) click Load file. The file shows in the textarea
    3) click Render page to display page on the right.
    
    Note:
    + Page may display errors and missing icons. This is due to
    the location of <embed>s and <image>s not good.
    + fancy colors will disapear later
    
    Change-Id: Id2bd9476afc3d1ae18e39390619ce81d711d11ca
    Reviewed-on: https://gerrit.libreoffice.org/65550
    Reviewed-by: Olivier Hallot <olivier.hallot at libreoffice.org>
    Tested-by: Olivier Hallot <olivier.hallot at libreoffice.org>

diff --git a/help3/html/default.css b/help3/html/default.css
new file mode 100644
index 0000000..6cb76ce
--- /dev/null
+++ b/help3/html/default.css
@@ -0,0 +1,830 @@
+/*
+ * 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 .
+ */
+/*
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++                     LIBREOFFICE HELP IN BROWSER                   +
++                          DEFAULT STYLESHEET                       +
++                           WESTERN LANGUAGES                       +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+We use px as the unit for navigation elements and fonts because we do
+not want them to scale with browser-set font size.
+We use rem as the unit for article and footer contents because they
+do not break anything related to layout by scaling.
+
+*/
+
+body,
+p,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.listitem,
+.listitemintable,
+.tablecontent,
+.input {
+    font-family: -apple-system, system-ui, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", "DejaVu Sans", "Lucida Grande", "Helvetica Neue", Helvetica, Arial, sans-serif, FreeSerif, NanumGothic, "Noto Sans Tibetan", Taprom;
+}
+.input {
+    transition-property: background-color;
+    transition-duration: 150ms;
+    border-bottom: 1px dashed rgba(0,0,0,0.1);
+}
+[data-tooltip]{
+  position:relative;
+}
+[data-tooltip]::before {
+    content: "";
+    position: absolute;
+    top:-6px;
+    left:50%;
+    transform: translateX(-50%);
+    border-width: 4px 6px 0 6px;
+    border-style: solid;
+    border-color: rgba(0,0,0,0.7) transparent transparent transparent;
+    z-index: 100;
+    opacity: 0;
+    pointer-events: none;
+}
+[data-tooltip]::after {
+    content: attr(data-tooltip);
+    position: absolute;
+    left:50%;
+    top:-6px;
+    transform: translateX(-50%)   translateY(-100%);
+    background: rgba(0,0,0,0.7);
+    text-align: center;
+    color: #fff;
+    padding:4px 2px;
+    font-size: 12px;
+    min-width: 80px;
+    border-radius: 5px;
+    opacity: 0;
+    pointer-events: none;
+}
+[data-tooltip]:hover:before, [data-tooltip]:hover:after {
+    opacity: 1;
+    pointer-events: auto;
+}
+body {
+    background-color: #F4F7F7;
+    margin: 0;
+    line-height: normal;
+}
+::selection {
+    background: #BFFFB7;
+}
+a {
+    text-decoration: none;
+    color: #0369AE;
+}
+a:hover {
+    text-decoration: underline;
+    color: #1C99E0;
+}
+pre,
+.code,
+.codeintable,
+.example,
+.exampleintable,
+.literal,
+.literalintable,
+.path,
+.pathintable {
+    background-color: rgba(0,0,0,0.04);
+    border-radius: 2px;
+    display: inline;
+    padding: 1px 3px;
+    font-family: Menlo, Consolas, "DejaVu Sans Mono", "Nimbus Mono L", "Lucida Sans Typewriter", "Courier New", Courier, Monaco, monospace;
+}
+.acronym {
+    font-weight: bold;
+}
+.related {
+    font-weight: bold;
+    margin-top: 1.67rem;
+    border-top: 1px solid black;
+}
+.emph,
+.menuitem {
+    font-weight: bold;
+}
+.keycode {
+    /*font-weight: bold;*/
+    font-family: Menlo, Consolas, "DejaVu Sans Mono", "Nimbus Mono L", "Lucida Sans Typewriter", "Courier New", Courier, Monaco, monospace;
+}
+.widget{
+    padding: 1px 10px;
+    background: #f0f0f0;
+    background: linear-gradient(to bottom,#f0f0f0,#fcfcfc);
+    border-radius: 3px;
+    color: #303030;
+    border: 1px solid #a0a0a0;
+    border-bottom-width: 2px;
+    white-space: nowrap;
+}
+/* div's for warning, tip and note */
+.note,
+.tip,
+.warning {
+    display:flex;
+    align-items: center;
+    border-radius: 0 4px 4px 0;
+    box-shadow: 0 2px 2px -2px rgba(0,0,0,0.2);
+    padding: 0.2em;
+    margin-top: 15px;
+}
+.note {
+    border-left: 4px solid #FFDE09;
+    background-color: #FFF4D0;
+}
+.tip {
+    border-left: 4px solid #38618C;
+    background-color: #DAE2EA;
+}
+.warning {
+    border-left: 4px solid #FF5964;
+    background-color: #FFE0E2;
+}
+.noteicon {
+    padding:0.3em;
+    transition: transform .2s; /* Animation */
+}
+.noteicon:hover {
+    transform: scale(2.0); /* (200% zoom - Note: if the zoom is too large, it will go outside of the viewport) */
+}
+.notetext {
+    padding:0.3em;
+}
+
+/* Table related classes */
+
+/* Special case of table with one cell*/
+.onecell{
+    box-shadow: rgba(0,0,0,0.1) 0px 1px 3px 0px;
+    border-bottom: 1px solid #E8E8E8;
+}
+/* Special case of icon table*/
+.icontable {
+    display:flex;
+    align-items:center;
+}
+.iconcell {
+    padding:0.3em;
+}
+.imageicon {
+    transition: transform .2s; /* Animation */
+}
+.imageicon:hover{
+    transform: scale(2.0); /* (200% zoom - Note: if the zoom is too large, it will go outside of the viewport) */
+}
+
+table {
+    box-shadow: rgba(0,0,0,0.1) 0px 1px 3px 0px;
+    border-collapse: collapse;
+    background: #fefefe;
+}
+table, th, td {
+    border-top: 0;
+    border-bottom: 1px solid #E8E8E8;
+    border-left: 0;
+    border-right: 0;
+    padding: 0.3em;
+}
+.tablehead,
+.tableheadintable {
+    font-weight: bold;
+    margin-top: 0px;
+}
+.tableheadcell {
+    background: #148603;
+    color: white;
+    vertical-align:top;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+    margin-bottom: 0.67rem;
+    color: #148603;
+}
+p,
+ol,
+td {
+    font-size: 1.17rem;
+    margin: 2px 2px 2px 2px;
+}
+h1 {
+    font-size: 1.83rem;
+    font-weight: 300;
+    border-bottom: 2px solid #148603;
+    padding-bottom: 6px;
+}
+h1 a {
+    text-decoration: none;
+}
+h2 {
+    font-size: 1.55rem;
+}
+h3 {
+    font-size: 1.33rem;
+}
+h4,
+h5,
+h6 {
+    font-size: 1.17rem;
+}
+.avis {
+    /*    background-color: #EEEEEE;*/
+}
+.relatedtopics {
+    font-weight: normal;
+}
+.relatedbody {
+    margin-top: 2px;
+    margin-bottom: 2px;
+    margin-left: 5px;
+}
+.howtoget {
+    background: #CCF4C6;
+    border-left: 4px solid #148603;
+    border-radius: 0 4px 4px 0;
+    box-shadow: 0 2px 2px -2px rgba(0,0,0,0.2);
+    padding: 0.3em;
+    display: flex;
+    flex-direction: column;
+}
+.howtogetheader {
+    background: #FFF;
+    border-radius: 2px;
+    box-shadow: 0 2px 2px -2px rgba(0,0,0,0.2);
+    display: inline-block;
+    font-weight: bold;
+    padding: 0.3em;
+}
+.howtogetbody {
+}
+.samplefilesection{
+}
+.wide {
+    width: 100%;
+}
+.topalign {
+    vertical-align: top;
+    border: 1px;
+}
+.bug {
+    color: red;
+}
+.debug {
+    border: 1px solid black;
+    padding: 3px;
+    display: none;
+    background-color: #222;
+    color: red;
+    text-align: left;
+}
+.donation {
+    padding: 0 0 10px 0;
+    margin-bottom: 1em;
+    border-bottom: 1px dashed rgba(0,0,0,0.1);
+}
+.donation p{
+    font-size:1.2rem;
+}
+.bascode {
+    margin-top:15px;
+    margin-bottom: 15px;
+}
+
+.infopage {
+    color: green;
+    font-size: 1.33rem;
+    font-weight: bold;
+}
+.topmenu {
+    font-size: 1rem;
+    font-weight: bold;
+    padding: 1px;
+    border: solid 1px #148603;
+}
+#DisplayArea {
+    background-color: #FCFCFC;
+    overflow: auto;
+    padding: 10px;
+    grid-area: main;
+}
+#DisplayArea > p {
+    margin-bottom: 10px;
+}
+.mediabutton {
+    background-color: cyan;
+}
+.mediadiv{
+    padding-bottom:5%;
+    height:0;
+    display:inline-block;
+    border:none;
+}
+.switch,
+.switchinline {}
+
+.tintro {
+    color: white;
+    background-color: green;
+    font-family: Arial;
+    font-weight: bold;
+    font-size: 2rem;
+    border: 1px solid black;
+    padding-bottom: 6px;
+    margin-bottom: 6px;
+}
+.embedded {}
+.header-extrawurst {
+    grid-area: header;
+}
+header {
+    background-color: #18A303;
+    color: #fff;
+    height: 64px;
+    padding: 8px 8px 8px 16px;
+}
+.logo-container {
+    display: flex;
+    justify-content: space-between;
+}
+.logo {
+    color: #fff;
+    text-decoration: none;
+    display: flex;
+}
+.logo p {
+    font-size: 24px;
+}
+.logo .symbol {
+    background-image: url(media/navigation/libo-symbol-white.svg);
+    background-repeat: no-repeat;
+    background-size: contain;
+    width: 52px;
+    height: 60px;
+    margin-right: 10px;
+}
+.lang nav, .modules nav {
+    z-index: 100;
+    /* line them up horizontally */
+    display: flex;
+    flex-direction: row;
+    /* allow for scrolling */
+    overflow-x: auto;
+    overflow-y: hidden;
+    /* make it smooth on iOS */
+    -webkit-overflow-scrolling: touch;
+    text-align: center;
+}
+.lang nav a, .modules nav a {
+    color: #fff;
+    background-color: #233336;
+    display: block;
+    line-height: 1.5;
+    padding: 3px 6px;
+    text-decoration: none;
+    font-size: 24px;
+    flex-shrink: 0;
+    z-index: 100;
+    white-space: nowrap;
+}
+footer {
+    border-top: 2px solid #148603;
+    padding: 15px 10px 0 10px;
+    margin: 40px 0;
+}
+footer p {
+    font-size: 0.98rem;
+}
+.gsc-control-cse {
+    border-color: transparent !important;
+    background-color: transparent !important;
+    padding: 3px 0 0 0 !important;
+}
+.modules input[type=checkbox], .lang input[type=checkbox],
+.contents-treeview input[type=checkbox], aside input[type=checkbox] {
+    position: absolute;
+    opacity: 0;
+}
+label[for=accordion-1] {
+    color: #148603;
+    display: block;
+    padding: 10px 0 10px 20px;
+    font-size: 22px;
+    line-height: .6;
+}
+label[for=accordion-1]:after {
+    font-size: 44px;
+    content:"⌄";
+}
+aside input[type=checkbox] ~ .contents-treeview {
+    display: none;
+}
+aside input[type=checkbox]:checked ~ .contents-treeview {
+    color: #333;
+    z-index: 6;
+    display: block;
+    margin: 0 20px 0 20px;
+}
+.index-label {
+    font-size: 22px;
+    color: #148603;
+    padding-left: 20px;
+    margin: 20px 0 0 0;
+}
+#Index, .index {
+    margin-top: 10px;
+}
+.index {
+    padding-left: 15px;
+}
+.index a {
+    font-size: 16px;
+    margin-bottom: 5px;
+}
+#Bookmarks {
+    padding: 0 20px;
+}
+#Bookmarks p {
+    font-size: 22px;
+    font-weight: bold;
+    color: #148603;
+}
+#WRITER::before {
+    content: "WRITER";
+    display: block;
+    font-size: 22px;
+    font-weight: bold;
+    color: #148603;
+}
+#CALC::before {
+    content: "CALC";
+    display: block;
+    font-size: 22px;
+    font-weight: bold;
+    color: #148603;
+}
+#IMPRESS::before {
+    content: "IMPRESS";
+    display: block;
+    font-size: 22px;
+    font-weight: bold;
+    color: #148603;
+}
+#DRAW::before {
+    content: "DRAW";
+    display: block;
+    font-size: 22px;
+    font-weight: bold;
+    color: #148603;
+}
+#BASE::before {
+    content: "BASE";
+    display: block;
+    font-size: 22px;
+    font-weight: bold;
+    color: #148603;
+}
+#MATH::before {
+    content: "MATH";
+    display: block;
+    font-size: 22px;
+    font-weight: bold;
+    color: #148603;
+}
+#CHART::before {
+    content: "CHART";
+    display: block;
+    font-size: 22px;
+    font-weight: bold;
+    color: #148603;
+}
+#BASIC::before {
+    content: "BASIC";
+    display: block;
+    font-size: 22px;
+    font-weight: bold;
+    color: #148603;
+}
+#SHARED::before {
+    content: "GLOBAL";
+    display: block;
+    font-size: 22px;
+    font-weight: bold;
+    color: #148603;
+}
+.pagination {
+    padding: 0;
+}
+.pagination li {
+    display: inline-block;
+    padding: 4px;
+}
+.pagination a {
+    text-decoration: none;
+}
+.index a {
+    display: block;
+}
+.index .hidden {
+    display: none;
+}
+li.active {
+    background-color: #0369A3;
+}
+li.active a {
+    color: #fff;
+}
+li.disabled a {
+    color: #90C0E6;
+}
+#search-bar {
+    margin-top: 10px;
+    width: 100%;
+    caret-color: #148603;
+}
+#search-bar::placeholder {
+    font-style: italic;
+}
+.google-search {
+    max-width: 300px;
+    margin: 0 auto;
+}
+.modules {
+    border-bottom: 2px solid #f3f3f3;
+}
+.modules label:after, .lang label:after {
+    font-size: 30px;
+    color: #fff;
+    content:"⌄";
+}
+.lang label, .modules label {
+    display: none;
+}
+.modules nav div {
+    background-repeat: no-repeat;
+    background-size: contain;
+    float: left;
+    display: none;
+}
+.calc-icon,
+.chart-icon,
+.writer-icon,
+.impress-icon,
+.draw-icon,
+.math-icon,
+.basic-icon,
+.base-icon {
+    width: 21.5px;
+    height: 26px;
+    position: relative;
+    margin-right: 5px;
+}
+.calc-icon {
+    background-image: url(media/navigation/libo-calc.svg);
+}
+.writer-icon {
+    background-image: url(media/navigation/libo-writer.svg);
+}
+.impress-icon {
+    background-image: url(media/navigation/libo-impress.svg);
+}
+.draw-icon {
+    background-image: url(media/navigation/libo-draw.svg);
+}
+.math-icon {
+    background-image: url(media/navigation/libo-math.svg);
+}
+.base-icon {
+    background-image: url(media/navigation/libo-base.svg);
+}
+.chart-icon {
+    background-image: url(media/navigation/libo-chart.svg);
+}
+.basic-icon {
+    background-image: url(media/navigation/libo-basic.svg);
+}
+/* tree view */
+
+.contents-treeview ul,
+.contents-treeview li {
+    padding: 0;
+    margin: 0;
+    list-style: none;
+    font-size: 16px;
+}
+.contents-treeview {
+    -moz-user-select: none;
+    -webkit-user-select: none;
+    user-select: none;
+}
+.contents-treeview a, .index a {
+    text-decoration: none;
+}
+.contents-treeview a:hover, .index a:hover {
+    text-decoration: underline;
+}
+.contents-treeview input + label + ul {
+    margin: 0 0 0 22px;
+}
+.contents-treeview input ~ ul {
+    display: none;
+}
+.contents-treeview label,
+.contents-treeview label:before {
+    cursor: pointer;
+    color: #111;
+}
+.contents-treeview input:disabled + label {
+    cursor: default;
+    opacity: .6;
+}
+.contents-treeview input:checked:not(:disabled) ~ ul {
+    display: block;
+}
+.contents-treeview label,
+.contents-treeview a,
+.contents-treeview label::before {
+    height: 16px;
+    line-height: 16px;
+    vertical-align: middle;
+}
+.contents-treeview label:before {
+    content: "⊞";
+    color: #148603;
+    width: 16px;
+    margin: 0 5px 0 0;
+    display: inline-block;
+}
+.contents-treeview input:checked + label::before {
+    content: "⊟";
+}
+.contents-current {
+    background-color: #0369A3;
+    color: #FFF;
+    padding-right: 1px;
+}
+.contents-current:hover {
+    color: #FFF;
+}
+/* webkit adjacent element selector bugfix */
+
+ at media screen and (-webkit-min-device-pixel-ratio: 0) {
+    .contents-treeview {
+        -webkit-animation: webkit-adjacent-element-selector-bugfix infinite 1s;
+    }
+    @-webkit-keyframes webkit-adjacent-element-selector-bugfix {
+        from {
+            padding: 0;
+        }
+        to {
+            padding: 0;
+        }
+    }
+}
+ at media screen and (min-width: 960px) {
+    .lang nav {
+        display: none;
+    }
+    .lang nav a {
+        font-size: 19px;
+        white-space: normal;
+    }
+    .lang label, .modules label {
+        cursor: pointer;
+        color: #fff;
+        font-size: 19px;
+        position: relative;
+        top: 40px;
+        display: block;
+    }
+    /* change the menu direction to stacked */
+
+    .lang input[type="checkbox"]:checked ~ nav, .modules input[type="checkbox"]:checked ~ nav {
+        display: flex;
+        flex-direction: column;
+        max-width: 120px;
+        overflow-y: auto;
+        overflow-x: hidden;
+        max-height: 480px;
+        position: absolute;
+        top: 80px;
+    }
+    .modules input[type="checkbox"]:checked ~ nav {
+        background-color: #101820;
+        text-align: left;
+    }
+    .modules nav {
+        display: none;
+    }
+    .modules nav div {
+        display: block;
+    }
+    .modules nav a {
+        font-size: 19px;
+    }
+    aside {
+        background-color: #F4F7F7;
+        float: left;
+        width: 320px;
+    }
+    .leftside {
+        grid-area: leftside;
+    }
+    .rightside {
+        grid-area: rightside;
+    }
+    .google-search {
+        margin: 0;
+        position: absolute;
+        top: 19px;
+        left: 860px;
+    }
+    .lang {
+        position: absolute;
+        top: 0;
+        left: 200px;
+    }
+    .modules {
+        width: 120px;
+        position: absolute;
+        top: 0;
+        left: 80px;
+        border: none;
+    }
+    #DisplayArea {
+        background-color: #FCFCFC;
+        box-shadow: 0 2px 8px 0 rgba(0,0,0,.05);
+        padding: 10px 50px;
+        width: 800px;
+    }
+}
+ at media screen and (min-width: 1440px) {
+    #Contents {
+        color: #333;
+        z-index: 6;
+        display: block;
+        margin: 0 20px 0 20px;
+    }
+    label[for=accordion-1] {
+        background-color: transparent;
+        text-decoration: none;
+    }
+     label[for=accordion-1]:hover {
+        background-color: transparent;
+    }
+     label[for=accordion-1]:after {
+        content: "";
+    }
+}
+ at supports (grid-area: auto) {
+    @media screen and (min-width: 960px) {
+        body {
+            display: grid;
+            grid-template-columns: 320px 1fr;
+            grid-template-rows: minmax(1em, auto) minmax(1em, auto) 1fr;
+            grid-template-areas: "header header"
+                                 "rightside main"
+                                 "leftside main"
+        }
+    }
+    @media screen and (min-width: 1440px) {
+        body {
+            display: grid;
+            grid-template-columns: 320px 900px 1fr;
+            grid-template-rows: 1fr minmax(1em, auto);
+            grid-template-areas: "header header header"
+                                 "leftside main rightside"
+        }
+        .rightside {
+            width: auto;
+            border-right: none;
+        }
+    }
+}
diff --git a/help3/html/ed_transform.xsl b/help3/html/ed_transform.xsl
new file mode 100644
index 0000000..d423c72
--- /dev/null
+++ b/help3/html/ed_transform.xsl
@@ -0,0 +1,1369 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * 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" doctype-system= "about:legacy-compat"/>
+
+<xsl:include href="localized.xsl"/>
+<xsl:include href="links.txt.xsl"/>
+<!--
+############################
+# Variables and Parameters #
+############################
+//-->
+
+<xsl:param name="local" />
+<xsl:param name="root"/>
+<xsl:param name="Language"/>
+<xsl:param name="productname"/>
+<xsl:param name="productversion"/>
+
+<xsl:param name="System" select="'WIN'"/>
+<xsl:param name="imgtheme" select="''"/>
+<xsl:param name="Id" />
+
+<!-- General Usage -->
+<xsl:variable name="am" select="'&'"/>
+<xsl:variable name="sl" select="'/'"/>
+<xsl:variable name="qt" select="'"'"/>
+
+<!-- For calculating pixel sizes -->
+<xsl:variable name="dpi" select="'96'"/>
+<xsl:variable name="dpcm" select="'38'"/>
+<xsl:variable name="dpmm" select="'3.8'"/>
+
+<!-- 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'"/>
+
+<!-- Installation -->
+<xsl:variable name="online" select="$local!='yes'"/>
+<xsl:variable name="target" select="'ed/'"/>
+
+<!-- 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"/>
+
+<!-- the other parameters given by the help caller -->
+
+<xsl:variable name="pversion">
+	<xsl:value-of select="translate($productversion,' ','')"/>
+</xsl:variable>
+<!-- this is were the images are -->
+
+<xsl:variable name="lang" select="$Language"/>
+<xsl:variable name="urlpre" select="$root"/>
+
+
+<!-- generic Icon alt text -->
+<xsl:variable name="alttext" select="concat($root,'text/shared/00/icon_alt.xhp')"/>
+
+  <!-- parts of help and image urls -->
+
+<xsl:variable name="img_url_prefix" select="concat($target,'media',$imgtheme,'/')"/>
+
+<xsl:variable name="urlpost" select="concat('?Language=',$lang,$am,'System=',$System,$am,'UseDB=no')"/>
+
+<xsl:variable name="linkprefix" select="concat($target,$lang,'/')"/>
+
+<!--<xsl:variable name="linkpostfix" select="$urlpost"/>-->
+<xsl:variable name="linkpostfix" select="''"/>
+
+<!-- images for notes, tips and warnings -->
+<xsl:variable name="note_img" select="concat($img_url_prefix,'icon-themes/help/note.svg')"/>
+<xsl:variable name="tip_img" select="concat($img_url_prefix,'icon-themes/help/tip.svg')"/>
+<xsl:variable name="warning_img" select="concat($img_url_prefix,'icon-themes/help/warning.svg')"/>
+
+<!-- Strings for the help UI page -->
+<xsl:variable name="tmp_href_ui"><xsl:value-of select="concat($urlpre,'text/shared/help/browserhelp.xhp')"/></xsl:variable>
+<xsl:variable name="tmp_doc_ui" select="document($tmp_href_ui)"/>
+<xsl:variable name ="ui_contents"><xsl:apply-templates select="$tmp_doc_ui//variable[@id='contents']"/></xsl:variable>
+<xsl:variable name ="ui_index"><xsl:apply-templates select="$tmp_doc_ui//variable[@id='index']"/></xsl:variable>
+<xsl:variable name ="ui_pholderall"><xsl:apply-templates select="$tmp_doc_ui//variable[@id='pholderall']"/></xsl:variable>
+<xsl:variable name ="ui_pholderchosen"><xsl:apply-templates select="$tmp_doc_ui//variable[@id='pholderchosen']"/></xsl:variable>
+<xsl:variable name ="ui_module"><xsl:apply-templates select="$tmp_doc_ui//variable[@id='module']"/></xsl:variable>
+<xsl:variable name ="ui_language"><xsl:apply-templates select="$tmp_doc_ui//variable[@id='language']"/></xsl:variable>
+<xsl:variable name ="ui_donate"><xsl:apply-templates select="$tmp_doc_ui//variable[@id='donate']"/></xsl:variable>
+<xsl:variable name ="ui_logo"><xsl:apply-templates select="$tmp_doc_ui//variable[@id='LibreOfficeHelp']"/></xsl:variable>
+<xsl:variable name ="ui_selectmodule"><xsl:apply-templates select="$tmp_doc_ui//variable[@id='selectmodule']"/></xsl:variable>
+<xsl:variable name ="ui_selectlang"><xsl:apply-templates select="$tmp_doc_ui//variable[@id='selectlanguage']"/></xsl:variable>
+<xsl:variable name ="ui_search"><xsl:apply-templates select="$tmp_doc_ui//variable[@id='searchhelpcontents']"/></xsl:variable>
+<xsl:variable name ="ui_copyclip"><xsl:apply-templates select="$tmp_doc_ui//variable[@id='copyclip']"/></xsl:variable>
+<!--
+#############
+# Templates #
+#############
+//-->
+
+<!-- Create the document skeleton -->
+<xsl:template match="/">
+    <xsl:variable name="htmlpage"><xsl:value-of select="concat(substring-before($filename,'.xhp'),'.html')"/></xsl:variable>
+    <xsl:variable name="titleL10N">
+        <xsl:call-template name="brand"><xsl:with-param name="string"><xsl:value-of select="$title"/></xsl:with-param></xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="install">
+        <xsl:call-template name="tokenize">
+            <xsl:with-param name="str" select="$filename"/>
+        </xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="logoprodversion">
+        <xsl:choose>
+            <xsl:when test="$productversion='latest'"><xsl:value-of select="''"/></xsl:when>
+            <xsl:otherwise><xsl:value-of select="$productversion"/></xsl:otherwise>
+        </xsl:choose>
+    </xsl:variable>
+<html lang="{$lang}">
+    <head>
+        <base href="{$install}"/>
+        <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+        <xsl:if test="$online">
+            <meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' 'unsafe-eval' piwik.documentfoundation.org *.google.com *.googleapis.com"/>
+        </xsl:if>
+        <title><xsl:value-of select="$titleL10N"/></title>
+        <link rel="shortcut icon" href="{$target}media/navigation/favicon.ico" />
+        <link  type="text/css" href="{$target}normalize.css" rel="Stylesheet" />
+        <link  type="text/css" href="{$target}default.css" rel="Stylesheet" />
+        <link  type="text/css" href="{$target}prism.css" rel="Stylesheet" />
+        <script type="text/javascript" src="{$target}help2.js"></script>
+        <script type="text/javascript" src="{$target}languages.js"></script>
+        <script type="text/javascript" src="{$target}{$lang}/langnames.js"></script>
+        <script type="text/javascript" src="{$target}fuzzysort.js"></script>
+        <script type="text/javascript" src="{$target}paginathing.js"></script>
+        <script type="text/javascript" src="{$target}prism.js"></script>
+        <meta name="viewport" content="width=device-width,initial-scale=1"/>
+    </head>
+    <body itemscope="true" itemtype="http://schema.org/TechArticle">
+    <xsl:if test="$online">
+        <meta itemprop="version" content="{$productversion}"/>
+        <meta itemprop="inLanguage" content="{$lang}"/>
+        <meta itemprop="datePublished" content="2017"/>
+        <meta itemprop="headline" content="{$titleL10N}"/>
+    </xsl:if>
+    <div id="DisplayArea" itemprop="articleBody">
+        <xsl:apply-templates select="/helpdocument/body"/>
+        <footer>
+            <xsl:if test="$online">
+                <div class="donation">
+                    <p><a href="https://www.libreoffice.org/donate/?pk_campaign=help" target ="_blank">
+                        <xsl:value-of select="$ui_donate"/>
+                    </a></p>
+                </div>
+                <p><a href="https://www.libreoffice.org/imprint" target="_blank">Impressum (Legal Info)</a> | <a href="https://www.libreoffice.org/privacy" target="_blank">Privacy Policy</a> | <a href="https://www.documentfoundation.org/statutes.pdf" target="_blank">Statutes (non-binding English translation)</a> - <a href="https://www.documentfoundation.org/satzung.pdf" target="_blank">Satzung (binding German version)</a> | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the <a href="https://www.libreoffice.org/download/license/" target="_blank">Mozilla Public License v2.0</a>. “LibreOffice” and “The Document Foundation” are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our <a href="https://wiki.documentfoundation.org/TradeMark_Poli
 cy" target="_blank">trademark policy</a>. LibreOffice was based on OpenOffice.org.</p>
+            </xsl:if>
+            <div id="DEBUG" class="debug">
+                <h3 class="bug">Help content debug info:</h3>
+                <p>This page is: <a href="https://opengrok.libreoffice.org/xref/help/source{$filename}" target="_blank"><xsl:value-of select="$filename"/></a></p>
+                <p>Title is: <xsl:value-of select="$title"/></p>
+                <p id="bm_module"></p>
+                <p id="bm_system"></p>
+                <p id="bm_HID"></p>
+            </div>
+        </footer>
+    </div>
+    <script type="text/javascript" src="{$target}help.js"/>
+    <xsl:choose>
+        <xsl:when test="$online">
+            <script type="text/javascript">
+                <![CDATA[
+                var module = getParameterByName("DbPAR");
+                var system = getParameterByName("System");
+                var helpID = getParameterByName("HID");
+                fixURL(module,system);
+                var dbg = getParameterByName("Debug");
+                if (dbg == null){dbg=0}
+                document.getElementById("DEBUG").style.display = (dbg == 0) ? "none":"block";
+                document.getElementById("bm_module").innerHTML ="Module is: "+module;
+                document.getElementById("bm_system").innerHTML ="System is: "+system;
+                document.getElementById("bm_HID").innerHTML ="HID is: "+helpID;
+                ]]>
+            </script>
+        </xsl:when>
+        <xsl:otherwise>
+            <script type="text/javascript">
+                <![CDATA[
+                var module = getParameterByName("DbPAR");
+                var helpID = getParameterByName("HID");
+                var system = getSystem();
+                fixURL(module,system);
+                var dbg = getParameterByName("Debug");
+                if (dbg == null){dbg=0}
+                document.getElementById("DEBUG").style.display = (dbg == 0) ? "none":"block";
+                document.getElementById("bm_module").innerHTML ="Module is: "+module;
+                document.getElementById("bm_system").innerHTML ="System is: "+system;
+                document.getElementById("bm_HID").innerHTML ="HID is: "+helpID;
+                ]]>
+            </script>
+        </xsl:otherwise>
+    </xsl:choose>
+    </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"/>
+
+<!-- MATHML -->
+<xsl:template match="math">
+<div class="mathml"><xsl:apply-templates /></div>
+</xsl:template>
+
+<!-- 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">
+    <xsl:element name="meta">
+        <xsl:attribute name="itemprop">keywords</xsl:attribute>
+        <xsl:attribute name="content"><xsl:value-of select="translate(.,';',',')"/></xsl:attribute>
+    </xsl:element>
+</xsl:template>
+
+<!-- BR -->
+<xsl:template match="br"><br /></xsl:template>
+
+<!-- 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}">
+<!-- Insert tooltip only to input classes and only if the content is longer than 3 characters -->
+        <xsl:if test="@type='input' and string-length(.)>3">
+            <xsl:attribute name="data-tooltip">
+                <xsl:value-of select="$ui_copyclip"/>
+            </xsl:attribute>
+        </xsl:if>
+        <xsl:apply-templates />
+    </span>
+</xsl:template>
+<xsl:template match="item" mode="embedded">
+    <span class="{@type}">
+        <xsl:if test="@type='input' and string-length(.)>3">
+            <xsl:attribute name="data-tooltip">
+                <xsl:value-of select="$ui_copyclip"/>
+            </xsl:attribute>
+        </xsl:if>
+        <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('/', at 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 -->
+<xsl:template match="object">
+    <xsl:if test="$online">
+	    <xsl:call-template name="insertobject"/>
+    </xsl:if>
+</xsl:template>
+<xsl:template match="object" mode="embedded">
+    <xsl:if test="$online">
+	    <xsl:call-template name="insertobject"/>
+    </xsl:if>
+</xsl:template>
+
+<!-- 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 ', at 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' or @role='pycode'">
+            <xsl:value-of select="." />
+        </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 -->
+            <xsl:variable name="newlevel">
+                <xsl:choose>
+                    <xsl:when test="@level='1'"><xsl:value-of select="'2'"/></xsl:when>
+                    <xsl:otherwise><xsl:value-of select="@level"/></xsl:otherwise>
+                </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 ', at 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,'text/shared/00/00000004.xhp',$urlpost)"/></xsl:variable>-->
+                <xsl:variable name="href"><xsl:value-of select="concat($urlpre,'text/shared/00/00000004.xhp')"/></xsl:variable>
+                <xsl:variable name="anchor"><xsl:value-of select="'related'"/></xsl:variable>
+                <xsl:variable name="doc" select="document($href)"/>
+                <p class="related" itemprop="mentions">
+                    <xsl:apply-templates select="$doc//variable[@id=$anchor]"/>
+                </p>
+                <div class="relatedbody" itemprop="mentions">
+                    <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:variable name="order1">
+        <xsl:choose>
+            <xsl:when test="string-length(@order) = 0"><xsl:value-of  select="'ascending'"/></xsl:when>
+            <xsl:otherwise><xsl:value-of select="concat(@order,'ending')"/></xsl:otherwise>
+        </xsl:choose>
+    </xsl:variable>
+    <xsl:apply-templates><xsl:sort order="{$order1}" select="descendant::paragraph"/></xsl:apply-templates>
+</xsl:template>
+<xsl:template match="sort" mode="embedded">
+    <xsl:variable name="order1">
+        <xsl:choose>
+            <xsl:when test="string-length(@order) = 0"><xsl:value-of  select="'ascending'"/></xsl:when>
+            <xsl:otherwise><xsl:value-of select="concat(@order,'ending')"/></xsl:otherwise>
+        </xsl:choose>
+    </xsl:variable>
+    <xsl:apply-templates><xsl:sort order="{$order1}" select="descendant::paragraph"/></xsl:apply-templates>
+</xsl:template>
+
+<!-- SWITCH -->
+<xsl:template match="switch">
+    <xsl:variable name="idsw" select="concat('swln',generate-id())"/>
+    <span id="{$idsw}" class="switch">
+        <xsl:choose>
+            <xsl:when test ="@select = 'sys'">
+                <xsl:apply-templates />
+                <script type="text/javascript">
+                    <![CDATA[setSystemSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]>
+                </script>
+            </xsl:when>
+            <xsl:when test ="@select = 'appl'">
+                <xsl:apply-templates />
+                <script type="text/javascript">
+                    <![CDATA[setApplSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]>
+                </script>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:apply-templates />
+            </xsl:otherwise>
+        </xsl:choose>
+    </span>
+</xsl:template>
+<xsl:template match="switch" mode="embedded">
+    <xsl:variable name="idsw" select="concat('swln',generate-id())"/>
+    <span id="{$idsw}" class="switch">
+        <xsl:choose>
+            <xsl:when test ="@select = 'sys'">
+                <xsl:apply-templates mode="embedded"/>
+                <script type="text/javascript">
+                    <![CDATA[setSystemSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]>
+                </script>
+            </xsl:when>
+            <xsl:when test ="@select = 'appl'">
+                <xsl:apply-templates />
+                <script type="text/javascript">
+                    <![CDATA[setApplSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]>
+                </script>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:apply-templates />
+            </xsl:otherwise>
+        </xsl:choose>
+    </span>
+</xsl:template>
+
+<!-- SWITCHINLINE -->
+<xsl:template match="switchinline">
+    <xsl:variable name="idsw" select="concat('swln',generate-id())"/>
+    <span id="{$idsw}" class="switchinline">
+        <xsl:choose>
+            <xsl:when test ="@select = 'sys'">
+                <xsl:apply-templates />
+                <script type="text/javascript">
+                    <![CDATA[setSystemSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]>
+                </script>
+            </xsl:when>
+            <xsl:when test ="@select = 'appl'">
+                <xsl:apply-templates />
+                <script type="text/javascript">
+                    <![CDATA[setApplSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]>
+                </script>
+            </xsl:when>
+            <xsl:otherwise>
+               <xsl:apply-templates />
+            </xsl:otherwise>
+        </xsl:choose>
+    </span>
+</xsl:template>
+<xsl:template match="switchinline" mode="embedded">
+    <xsl:variable name="idsw" select="concat('swln',generate-id())"/>
+    <span id="{$idsw}" class="switchinline">
+        <xsl:choose>
+            <xsl:when test ="@select = 'sys'">
+                <xsl:apply-templates />
+                <script type="text/javascript">
+                    <![CDATA[setSystemSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]>
+                </script>
+            </xsl:when>
+            <xsl:when test ="@select = 'appl'">
+                <xsl:apply-templates />
+                <script type="text/javascript">
+                    <![CDATA[setApplSpan("]]><xsl:value-of select="$idsw"/><![CDATA[");]]>
+                </script>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:apply-templates />
+            </xsl:otherwise>
+        </xsl:choose>
+    </span>
+</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">
+    <xsl:choose>
+        <xsl:when test="paragraph[@role='tablehead']">
+            <td rowspan="{@rowspan}" colspan="{@colspan}" class='tableheadcell'><xsl:apply-templates /></td>
+        </xsl:when>
+        <xsl:otherwise>
+            <td rowspan="{@rowspan}" colspan="{@colspan}"><xsl:apply-templates /></td>
+        </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+<xsl:template match="tablecell" mode="onecell"><xsl:apply-templates/></xsl:template>
+<xsl:template match="tablecell" mode="icontable"><div class="iconcell"><xsl:apply-templates/></div></xsl:template>
+<xsl:template match="tablecell" mode="embedded">
+    <xsl:choose>
+        <xsl:when test="paragraph[@role='tablehead']">
+            <td rowspan="{@rowspan}" colspan="{@colspan}" class='tableheadcell'><xsl:apply-templates mode="embedded"/></td>
+        </xsl:when>
+        <xsl:otherwise>
+            <td rowspan="{@rowspan}" colspan="{@colspan}"><xsl:apply-templates mode="embedded"/></td>
+        </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<!-- TABLEROW -->
+<xsl:template match="tablerow"><tr><xsl:apply-templates /></tr></xsl:template>
+<xsl:template match="tablerow" mode="onecell"><xsl:apply-templates mode="onecell"/></xsl:template>
+<xsl:template match="tablerow" mode="icontable"><div class="icontable"><xsl:apply-templates mode="icontable"/></div></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>
+
+<!-- XHP extensions (2018) -->
+<!-- H1-H6 -->
+<xsl:template match="h1 | h2 | h3 | h4 | h5 | h6">
+    <xsl:element name="{local-name()}">
+        <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute><xsl:apply-templates />
+    </xsl:element>
+</xsl:template>
+<xsl:template match="h1 | h2 | h3 | h4 | h5 | h6" mode="embedded">
+    <xsl:element name="{concat('h',substring-after(local-name(),'h') + 1)}">
+        <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute><xsl:apply-templates mode="embedded"/>
+    </xsl:element>
+</xsl:template>
+
+<!-- INPUT -->
+<xsl:template match="input">
+    <span class="input" data-tooltip="{$ui_copyclip}"><xsl:apply-templates /></span>
+</xsl:template>
+<xsl:template match="input" mode="embedded">
+    <span class="input" data-tooltip="{$ui_copyclip}"><xsl:apply-templates mode="embedded"/></span>
+</xsl:template>
+
+<!--MENUITEM, KEYCODE, LITERAL, WIDGET-->
+<xsl:template match="menuitem | keycode | literal | widget">
+    <span class="{local-name()}"><xsl:apply-templates /></span>
+</xsl:template>
+<xsl:template match="menuitem | input | keycode | literal" mode="embedded">
+    <span class="{local-name()}"><xsl:apply-templates mode="embedded"/></span>
+</xsl:template>
+
+<!--NOTE TIP AND WARNING-->
+<xsl:template match="tip | note | warning">
+    <xsl:variable name="imgsrc">
+        <xsl:choose>
+            <xsl:when test="local-name()='note'"><xsl:value-of select="$note_img"/></xsl:when>
+            <xsl:when test="local-name()='tip'"><xsl:value-of select="$tip_img"/></xsl:when>
+            <xsl:when test="local-name()='warning'"><xsl:value-of select="$warning_img"/></xsl:when>
+        </xsl:choose>
+    </xsl:variable>
+    <div class="{local-name()}">
+        <div class="noteicon"><img src="{$imgsrc}" alt="{local-name()}" title="{local-name()}"/></div>
+        <div class="notetext"><p id="{@id}"><xsl:apply-templates /></p></div>
+    </div>
+    <br/>
+</xsl:template>
+<xsl:template match="tip | note | warning" mode="embedded">
+    <xsl:variable name="imgsrc">
+        <xsl:choose>
+            <xsl:when test="local-name()='note'"><xsl:value-of select="$note_img"/></xsl:when>
+            <xsl:when test="local-name()='tip'"><xsl:value-of select="$tip_img"/></xsl:when>
+            <xsl:when test="local-name()='warning'"><xsl:value-of select="$warning_img"/></xsl:when>
+        </xsl:choose>
+    </xsl:variable>
+    <div class="{local-name()}">
+        <div class="noteicon"><img src="{$imgsrc}" alt="{local-name()}" title="{local-name()}"/></div>
+        <div class="notetext"><p id="{@id}"><xsl:apply-templates mode="embedded"/></p></div>
+    </div>
+    <br/>
+</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 id="{@id}" class="{$role}"><xsl:apply-templates /></p>
+</xsl:template>
+
+<xsl:template match="bascode">
+    <div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet"><pre><code class="language-visual-basic line-numbers"><xsl:apply-templates /></code></pre></div>
+</xsl:template>
+<xsl:template match="bascode" mode="embedded">
+    <div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet"><pre><code class="language-visual-basic line-numbers"><xsl:apply-templates mode="embedded" /></code></pre></div>
+</xsl:template>
+
+<xsl:template match="pycode">
+    <div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet"><pre><code class="language-python line-numbers"><xsl:apply-templates /></code></pre></div>
+</xsl:template>
+<xsl:template match="pycode" mode="embedded">
+    <div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet"><pre><code class="language-python line-numbers"><xsl:apply-templates mode="embedded" /></code></pre></div>
+</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,'text/shared/00/00000004.xhp')"/></xsl:variable>
+    <xsl:variable name="tmp_doc" select="document($tmp_href)"/>
+    <div class="howtoget">
+        <div>
+            <p class="howtogetheader"><xsl:apply-templates select="$tmp_doc//variable[@id='wie']"/></p>
+        </div>
+        <div class="howtogetbody">
+            <xsl:choose>
+                <xsl:when test="$linkhref = ''"> <!-- new style -->
+                    <xsl:apply-templates/>
+                </xsl:when>
+                <xsl:otherwise> <!-- old style -->
+                    <xsl:variable name="href"><xsl:value-of select="concat($urlpre,substring-before($linkhref,'#'))"/></xsl:variable>
+                    <xsl:variable name="anc"><xsl:value-of select="substring-after($linkhref,'#')"/></xsl:variable>
+                    <xsl:variable name="docum" select="document($href)"/>
+                    <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>
+    </div>
+    <br/>
+</xsl:template>
+
+<!-- Create a link -->
+<xsl:template name="createlink">
+    <xsl:choose>
+        <xsl:when test="starts-with(@href,'http://') or starts-with(@href,'https://')">  <!-- web links -->
+            <a target ="_blank" href="{@href}"><xsl:apply-templates /></a>
+        </xsl:when>
+        <xsl:when test="contains(@href,'#')"> <!-- internal links with bookmark -->
+            <xsl:variable name="anchor"><xsl:value-of select="concat('#',substring-after(@href,'#'))"/></xsl:variable>
+            <xsl:variable name="href"><xsl:value-of select="concat($linkprefix,substring-before(@href, 'xhp'),'html',$anchor,$linkpostfix)"/></xsl:variable>
+            <a target ="_top" href="{$href}"><xsl:apply-templates /></a>
+        </xsl:when>
+        <xsl:otherwise>
+            <xsl:variable name="href"><xsl:value-of select="concat($linkprefix,substring-before(@href, 'xhp'),'html',$linkpostfix)"/></xsl:variable>
+            <a target ="_top" 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="alt">
+        <xsl:variable name="href"><xsl:value-of select="$alttext"/></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}">
+        <div class="noteicon"><img src="{$imgsrc}" alt="{$alt}" title="{$alt}"/></div>
+        <div class="notetext"><p><xsl:apply-templates /></p></div>
+    </div>
+    <br/>
+</xsl:template>
+
+<!-- Insert a heading -->
+<xsl:template name="insertheading">
+        <xsl:param name="level" />
+        <xsl:param name="embedded" />
+        <xsl:element name="{concat('h',$level)}">
+                <xsl:if test="$level = '1' or $level='2'">
+                        <xsl:attribute name="itemprop"><xsl:text>articleSection</xsl:text></xsl:attribute>
+                </xsl:if>
+                <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
+                <xsl:choose>
+                    <xsl:when test="$embedded = 'yes'">
+                        <xsl:apply-templates mode="embedded"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <xsl:apply-templates />
+                    </xsl:otherwise>
+                </xsl:choose>
+        </xsl:element>
+</xsl:template>
+
+<!-- Evaluate a case or caseinline switch -->
+<xsl:template name="insertcase">
+    <xsl:param name="embedded" />
+    <xsl:variable name="auxID" select="concat(@select,generate-id())"/>
+    <xsl:choose>
+        <xsl:when test="$embedded = 'yes'">
+            <span hidden="true" id="{$auxID}"><xsl:apply-templates mode="embedded"/></span>
+        </xsl:when>
+        <xsl:otherwise>
+            <span hidden="true" id="{$auxID}"><xsl:apply-templates/></span>
+        </xsl:otherwise>
+    </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:variable name="auxID" select="concat('default',generate-id())"/>
+            <xsl:choose>
+                <xsl:when test="$embedded = 'yes'">
+                    <span hidden="true" id="{$auxID}"><xsl:apply-templates mode="embedded"/></span>
+                </xsl:when>
+                <xsl:otherwise>
+                    <span hidden="true" id="{$auxID}"><xsl:apply-templates /></span>
+                </xsl:otherwise>
+            </xsl:choose>
+        </xsl:when>
+        <xsl:when test="parent::switch[@select='appl'] or parent::switchinline[@select='appl']">
+            <xsl:variable name="auxID" select="concat('default',generate-id())"/>
+            <xsl:choose>
+                <xsl:when test="$embedded = 'yes'">
+                    <span hidden="true" id="{$auxID}"><xsl:apply-templates mode="embedded"/></span>
+                </xsl:when>
+                <xsl:otherwise>
+                    <span hidden="true" id="{$auxID}"><xsl:apply-templates /></span>
+                </xsl:otherwise>
+            </xsl:choose>
+        </xsl:when>
+        <xsl:when test="parent::switch[@select='distrib'] or parent::switchinline[@select='distrib']"><!--TODO: fix this distrib case if relevant-->
+            <xsl:if test="not(../child::case[@select=$distrib]) and not(../child::caseinline[@select=$distrib])">
+                <xsl:choose>
+                    <xsl:when test="$embedded = 'yes'">
+                        <span hidden="true" itemprop="distrib" value="DEFDIST"><xsl:apply-templates mode="embedded"/></span>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <span hidden="true" itemprop="distrib" value="DEFDIST"><xsl:apply-templates /></span>
+                    </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="src2">
+        <xsl:choose>
+            <xsl:when test="starts-with(@src,'media/screenshots/')">
+                <xsl:choose>
+                    <xsl:when test="not(@localize=false) and not($lang='en-US')">
+                        <xsl:variable name="tmp0" select="substring-before(@src, '/ui/')"/>
+                        <xsl:variable name="tmp1" select="substring-after(@src, '/ui/')"/>
+                        <xsl:variable name="tmp2" select="substring-before($tmp1,'/')"/>
+                        <xsl:variable name="tmp3" select="substring-after($tmp1,'/')"/>
+                        <xsl:value-of select="concat($target,$tmp0,'/ui/', $tmp2, '/',$lang,'/',$tmp3)"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+                        <xsl:value-of select="concat($target, at src)"/>
+                    </xsl:otherwise>
+                </xsl:choose>
+            </xsl:when>
+            <!-- generic media file -->
+            <xsl:when test="starts-with(@src,'media/')">
+                <xsl:value-of select="concat($target, at src)"/>
+            </xsl:when>
+            <!-- handle icons -->
+            <xsl:when test="not(starts-with(@src,'media/'))">
+                <xsl:variable name="linklist">
+                    <xsl:call-template name="linktxt"><xsl:with-param name="src1" select="@src"/></xsl:call-template>
+                </xsl:variable>
+                <xsl:variable name="aux00">
+                    <xsl:choose>
+                        <xsl:when test="substring($linklist,string-length($linklist) - 3, 4)='.png'">
+                            <xsl:value-of select="concat(substring-before($linklist,'.png'),'.svg')"/>
+                        </xsl:when>
+                        <xsl:otherwise>
+                            <xsl:value-of select="$linklist"/>
+                        </xsl:otherwise>
+                    </xsl:choose>
+                </xsl:variable>
+                <xsl:value-of select="concat($target,'media/icon-themes/',$aux00)"/>
+            </xsl:when>
+            <xsl:otherwise>
+                <xsl:value-of select="concat($target, at src)"/>
+            </xsl:otherwise>
+        </xsl:choose>
+    </xsl:variable>
+    <xsl:variable name="alt"><xsl:value-of select="./alt"/></xsl:variable>
+    <xsl:variable name="width">
+        <xsl:if test="string-length(@width)!=0">
+            <xsl:call-template name="convert2px"><xsl:with-param name="value" select="@width"/></xsl:call-template>
+        </xsl:if>
+    </xsl:variable>
+    <xsl:variable name="height">
+        <xsl:if test="string-length(@height)!=0">
+            <xsl:call-template name="convert2px"><xsl:with-param name="value" select="@height"/></xsl:call-template>
+        </xsl:if>
+    </xsl:variable>
+    <img src="{$src2}" alt="{$alt}" title="{$alt}" height="{$height}" width="{$width}">
+        <xsl:if test="ancestor::tablecell">
+            <xsl:attribute name="class"><xsl:value-of select="'imageicon'"/></xsl:attribute>
+        </xsl:if>
+    </img>
+</xsl:template>
+
+<!-- Insert an object -->
+<xsl:template name="insertobject">
+    <xsl:variable name="tmp_href"><xsl:value-of select="concat($urlpre,'text/shared/00/00000004.xhp')"/></xsl:variable>
+    <xsl:variable name="tmp_doc" select="document($tmp_href)"/>
+    <xsl:variable name="data">
+        <xsl:value-of select="concat($img_url_prefix, at data)"/>
+    </xsl:variable>
+    <xsl:variable name="type"><xsl:value-of select="@type"/></xsl:variable>
+    <xsl:variable name="width">
+        <xsl:call-template name="convert2px"><xsl:with-param name="value" select="@width"/></xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="height">
+        <xsl:call-template name="convert2px"><xsl:with-param name="value" select="@height"/></xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="auxID" select="concat('obj',generate-id())"/>
+    <xsl:choose>
+        <xsl:when test="starts-with(@type,'video/youtube')">
+                <div id="mediadiv">
+                    <iframe id="{@id}" src="{@data}" width="{$width}" height="{$height}" frameborder="0" allowfullscreen="true"></iframe>
+                </div>
+        </xsl:when>
+        <xsl:when test="not(starts-with(@type,'video/youtube')) and starts-with(@type,'video')">
+            <div id="mediadiv">
+                <video src="{$data}" type="{@type}" width="{$width}" height="{$height}" controls="'1'"></video>
+            </div>
+        </xsl:when>
+        <xsl:when test="starts-with(@type,'audio')">
+            <div id="mediadiv">
+                <audio src="{$data}" type="{@type}" controls="'1'"></audio>
+            </div>
+        </xsl:when>
+        <xsl:when test="@type='application/vnd.oasis.opendocument.spreadsheet'">
+            <xsl:variable name="src">
+                <xsl:call-template name="addlang2path">
+                    <xsl:with-param name="string" select="@data"/>
+                </xsl:call-template>
+            </xsl:variable>
+            <div class="samplefilesection" id="{$auxID}">
+            <h3><xsl:apply-templates select="$tmp_doc//variable[@id='samplefile']"/></h3>
+            <a class="objectfiles" href="{concat($target,$src)}"><img src="{concat($target,'media/navigation/libo-calc.svg')}" width="25px" height="30px"></img></a>
+            </div>
+        </xsl:when>
+        <xsl:when test="@type='application/vnd.oasis.opendocument.text'">
+            <xsl:variable name="src">
+                <xsl:call-template name="addlang2path">
+                    <xsl:with-param name="string" select="@data"/>
+                </xsl:call-template>
+            </xsl:variable>
+            <div class="samplefilesection" id="{$auxID}">
+            <h3><xsl:apply-templates select="$tmp_doc//variable[@id='samplefile']"/></h3>
+            <a class="objectfiles" href="{concat($target,$src)}"><img src="{concat($target,'media/navigation/libo-writer.svg')}" width="25px" height="30px"></img></a>
+            </div>
+        </xsl:when>
+        <xsl:when test="@type='application/vnd.oasis.opendocument.presentation'">
+            <xsl:variable name="src">
+                <xsl:call-template name="addlang2path">
+                    <xsl:with-param name="string" select="@data"/>
+                </xsl:call-template>
+            </xsl:variable>
+            <div class="samplefilesection" id="{$auxID}">
+            <h3><xsl:apply-templates select="$tmp_doc//variable[@id='samplefile']"/></h3>
+            <a class="objectfiles" href="{concat($target,$src)}"><img src="{concat($target,'media/navigation/libo-impress.svg')}" width="25px" height="30px"></img></a>
+            </div>
+            </xsl:when>
+        <xsl:when test="@type='application/vnd.oasis.opendocument.drawing'">
+            <xsl:variable name="src">
+                <xsl:call-template name="addlang2path">
+                    <xsl:with-param name="string" select="@data"/>
+                </xsl:call-template>
+            </xsl:variable>
+            <div class="samplefilesection" id="{$auxID}">
+            <h3><xsl:apply-templates select="$tmp_doc//variable[@id='samplefile']"/></h3>
+            <a class="objectfiles" href="{concat($target,$src)}"><img src="{concat($target,'media/navigation/libo-draw.svg')}" width="25px" height="30px"></img></a>
+            </div>
+        </xsl:when>
+        <xsl:when test="@type='application/vnd.oasis.opendocument.formula'">
+            <xsl:variable name="src">
+                <xsl:call-template name="addlang2path">
+                    <xsl:with-param name="string" select="@data"/>
+                </xsl:call-template>
+            </xsl:variable>
+            <div class="samplefilesection" id="{$auxID}">
+            <h3><xsl:apply-templates select="$tmp_doc//variable[@id='samplefile']"/></h3>
+            <a class="objectfiles" href="{concat($target,$src)}"><img src="{concat($target,'media/navigation/libo-math.svg')}" width="25px" height="30px"></img></a>
+            </div>
+        </xsl:when>
+        <xsl:when test="@type='application/vnd.oasis.opendocument.database'">
+            <xsl:variable name="src">
+                <xsl:call-template name="addlang2path">
+                    <xsl:with-param name="string" select="@data"/>
+                </xsl:call-template>
+            </xsl:variable>
+            <div class="samplefilesection" id="{$auxID}">
+            <h3><xsl:apply-templates select="$tmp_doc//variable[@id='samplefile']"/></h3>
+            <a class="objectfiles" href="{concat($target,$src)}"><img src="{concat($target,'media/navigation/libo-base.svg')}" width="25px" height="30px"></img></a>
+            </div>
+        </xsl:when>
+        <xsl:otherwise>
+            <object width="{$width}" height="{$height}" data="{$data}" type="{@type}"></object>
+        </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<!-- changing measure to pixel -->
+<xsl:template name="convert2px">
+    <xsl:param name="value"/>
+    <xsl:choose>
+        <xsl:when test="contains($value, 'cm')">
+            <xsl:value-of select="concat(round(number(substring-before($value, 'cm')) * $dpcm),'px')"/>
+        </xsl:when>
+        <xsl:when test="contains($value, 'mm')">
+            <xsl:value-of select="concat(round(number(substring-before($value, 'mm')) * $dpmm),'px')"/>
+        </xsl:when>
+        <xsl:when test="contains($value, 'in')">
+            <xsl:value-of select="concat(round(number(substring-before($value, 'in')) * $dpi),'px')"/>
+        </xsl:when>
+        <xsl:when test="contains($value, 'px')">
+            <xsl:value-of select="$value"/>
+        </xsl:when>
+        <xsl:otherwise>
+<!--                      <xsl:message>measure_conversion.xsl: Find no conversion for <xsl:value-of select="$value"/> to 'px'!</xsl:message> -->
+            <xsl:value-of select="concat($value, 'px;')"/>
+        </xsl:otherwise>
+    </xsl:choose>
+</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">
+            <div class="onecell"><xsl:apply-templates mode="onecell"/></div>
+        </xsl:when>
+
+        <xsl:when test="descendant::tablecell[1]/descendant::image">
+            <xsl:apply-templates mode="icontable"/>
+        </xsl:when>
+
+        <xsl:when test="@class='wide'">
+            <table border="1" class="{@class}" cellpadding="0" cellspacing="0" width="100%" >
+                <xsl:apply-templates />
+            </table>
+            <br/>
+        </xsl:when>
+
+        <xsl:when test="not(@class='')">
+            <table border="1" class="{@class}" cellpadding="0" cellspacing="0" >
+                <xsl:apply-templates />
+            </table>
+            <br/>
+        </xsl:when>
+
+        <xsl:otherwise>
+            <table border="1" class="border" cellpadding="0" cellspacing="0" >
+                <xsl:apply-templates />
+            </table>
+            <br/>
+        </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<xsl:template name="resolveembed">
+    <div class="embedded">
+        <xsl:variable name="href"><xsl:value-of select="concat($urlpre,substring-before(@href,'#'))"/></xsl:variable>
+        <xsl:variable name="anc"><xsl:value-of select="substring-after(@href,'#')"/></xsl:variable>
+        <xsl:variable name="docum" select="document($href)"/>
+        <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="href"><xsl:value-of select="concat($urlpre,substring-before(@href,'#'))"/></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="filehtml">
+   <xsl:param name="file"/>
+   <xsl:value-of select="concat(substring-before($file,'.xhp'),'.html')"/>
+</xsl:template>
+
+<!-- recursive named template -->
+<xsl:template name="tokenize">
+    <xsl:param name="str" />
+    <xsl:param name="result" select="''" />
+    <xsl:choose>
+        <xsl:when test="substring-after($str,'/')">
+            <xsl:call-template name="tokenize">
+                <xsl:with-param name="str" select="substring-after($str,'/')" />
+                <xsl:with-param name="result" select="concat($result,'../')" />
+            </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+            <xsl:choose>
+                <xsl:when test="$online"><xsl:value-of select="concat('../',$result)" /></xsl:when>
+                <xsl:otherwise><xsl:value-of select="$result" /></xsl:otherwise>
+            </xsl:choose>
+        </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+<!--Add language to path for file -->
+<xsl:template name="addlang2path">
+    <xsl:param name="string"/>
+    <xsl:choose>
+        <xsl:when test="not($lang='en-US')">
+            <xsl:variable name="tmpfn">
+                <xsl:call-template name="substring-after-last">
+                    <xsl:with-param name="string" select="$string"/>
+                    <xsl:with-param name="char" select="'/'"/>
+                </xsl:call-template>
+            </xsl:variable>
+            <xsl:value-of select="concat(substring-before($string, $tmpfn),$lang,'/',$tmpfn)"/>
+        </xsl:when>
+        <xsl:otherwise>
+            <xsl:value-of select="$string"/>
+        </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<xsl:template name="substring-after-last">
+    <xsl:param name="string"/>
+    <xsl:param name="char"/>
+    <xsl:choose>
+        <xsl:when test="contains($string, $char)">
+            <xsl:call-template name="substring-after-last">
+                <xsl:with-param name="string" select="substring-after($string, $char)"/>
+                <xsl:with-param name="char" select="$char"/>
+            </xsl:call-template>
+        </xsl:when>
+        <xsl:otherwise>
+            <xsl:value-of select="$string"/>
+        </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+</xsl:stylesheet>
diff --git a/help3/html/index.html b/help3/html/index.html
index a5564d0..b762ac5 100644
--- a/help3/html/index.html
+++ b/help3/html/index.html
@@ -14,6 +14,7 @@
     <link rel="stylesheet" href="xhpeditor.css">
     <link rel="stylesheet" href="lib/codemirror.css">
     <link rel="stylesheet" href="addon/hint/show-hint.css">
+    <script type="text/javascript" src="xhp2html.js"></script>
     <script type="text/javascript" src="lib/codemirror.js"></script>
     <script type="text/javascript" src="addon/hint/show-hint.js"></script>
     <script type="text/javascript" src="addon/hint/xml-hint.js"></script>
@@ -33,6 +34,7 @@
         <button onclick="editor.undo()">Undo</button>
         <button onclick="editor.redo()">Redo</button>
         <button onclick="alert('Not yet implemented...')">Save changes</button>
+        <button onclick="displayResult()">Render page</button>
     </div>
     <div style="margin-top:10px;"><div class="snip_div">Document:</div>
         <button onclick="startNewXHPDoc()" class="snip_buttons">Start new XHP document</button>
@@ -93,12 +95,10 @@
         <button onclick="tLink()" class="snip_buttons">Link</button>
     </div>
 </div>
-<!--
 <div class="rightside">
-    will put the xml transformed here
     <h2>Rendered page</h2> 
+    <div id="renderedpage"></div>
 </div>
--->
 </body>
 <script type="text/javascript" src="autocomplete.js"></script>
 <script type="text/javascript" src="snippets.js"></script>
diff --git a/help3/html/index.php b/help3/html/index.php
new file mode 100644
index 0000000..a34c3b0
--- /dev/null
+++ b/help3/html/index.php
@@ -0,0 +1,107 @@
+<!DOCTYPE html>
+<!--
+* 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/.
+-->
+
+<html>
+<meta charset="utf-8"/>
+<head>
+    <title>LibreOffice Documentation XHP Editor</title>
+    <link rel="stylesheet" href="xhpeditor.css">
+    <link rel="stylesheet" href="lib/codemirror.css">
+    <link rel="stylesheet" href="addon/hint/show-hint.css">
+
+    <script type="text/javascript" src="lib/codemirror.js"></script>
+    <script type="text/javascript" src="addon/hint/show-hint.js"></script>
+    <script type="text/javascript" src="addon/hint/xml-hint.js"></script>
+    <script type="text/javascript" src="mode/xml/xml.js"></script>
+    <script type="text/javascript" src="xhp2html.js"></script>
+</head>
+
+<body style="font-family:sans-serif;">
+<div class="leftside">
+    <h2>LibreOffice Documentation XHP Editor</h2>
+    <form class="form_area">
+        <textarea id="xhpeditor"></textarea>
+    </form>
+    <br />
+    <div><div class="snip_div">Actions:</div>
+        <p>File name: <input type="text" id="01" name="filename" value="test.xhp"/><button onclick="loadText(document.getElementById('01').value);">Open File</button></p>
+        <p>File name: <input type="text" id="02" name="filename" value="test.xhp"/><button onclick="alert('Not yet implemented');">Save Changes</button><button onclick="displayResult()">Render page</button></p>
+    </div>
+    <div style="margin-top:10px;"><div class="snip_div">Edit:</div>
+        <button onclick="editor.undo()">Undo</button>
+        <button onclick="editor.redo()">Redo</button>
+    </div>
+    <div style="margin-top:10px;"><div class="snip_div">Document:</div>
+        <button onclick="startNewXHPDoc()" class="snip_buttons">Start new XHP document</button>
+        <button onclick="docHeading()" class="snip_buttons">DocHeading</button>
+        <button onclick="snippet7()" class="snip_buttons">ahelp</button>
+    </div>
+    <div style="margin-top:10px;"><div class="snip_div">Bookmarks:</div>
+        <button onclick="bookmarkValue()" class="snip_buttons">bookmark-value</button>
+        <button onclick="bookmarkBranch()" class="snip_buttons">bookmark-hid</button>
+        <button onclick="bookmarkIndex()" class="snip_buttons">bookmark-index</button>
+        <button onclick="bookmarkNoWidget()" class="snip_buttons">bookmark-nowidget</button>
+    </div>
+    <div style="margin-top:10px;"><div class="snip_div">Sections:</div>
+        <button onclick="related_topics()" class="snip_buttons">Related Topics</button>
+        <button onclick="howtoget()" class="snip_buttons">How to get</button>
+        <button onclick="bascode_div()" class="snip_buttons">bascode div</button>
+    </div>
+    <div style="margin-top:10px;"><div class="snip_div">Tables:</div>
+        <button onclick="table2R3C()" class="snip_buttons">Table Full</button>
+        <button onclick="tableRow()" class="snip_buttons">TableRow</button>
+        <button onclick="tableCell()" class="snip_buttons">Table Cell</button>
+        <button onclick="iconTable()" class="snip_buttons">Icon Table</button>
+    </div>
+    <div style="margin-top:10px;"><div class="snip_div">Paragraph:</div>
+        <button onclick="paragraph('paragraph')" class="snip_buttons">paragraph</button>
+        <button onclick="paragraph('note')" class="snip_buttons">note</button>
+        <button onclick="paragraph('warning')" class="snip_buttons">warning</button>
+        <button onclick="paragraph('tip')" class="snip_buttons">tip</button>
+        <button onclick="bascode_par()" class="snip_buttons">bascode-par</button>
+    </div>
+    <div style="margin-top:10px;"><div class="snip_div">Characters:</div>
+        <button onclick="emph()" class="snip_buttons">emph</button>
+        <button onclick="item('menuitem')" class="snip_buttons">item menuitem</button>
+        <button onclick="item('input')" class="snip_buttons">item input</button>
+        <button onclick="item('literal')" class="snip_buttons">item literal</button>
+    </div>
+    <div style="margin-top:10px;"><div class="snip_div">Headings:</div>
+        <button onclick="heading('1')" class="snip_buttons">H1</button>
+        <button onclick="heading('2')" class="snip_buttons">H2</button>
+        <button onclick="heading('3')" class="snip_buttons">H3</button>
+        <button onclick="heading('4')" class="snip_buttons">H4</button>
+    </div>
+    <div style="margin-top:10px;"><div class="snip_div">Switches:</div>
+        <button onclick="switchXHP('appl')" class="snip_buttons">Switch appl</button>
+        <button onclick="switchXHP('sys')" class="snip_buttons">Switch sys</button>
+        <button onclick="switchInline('appl')" class="snip_buttons">Switchinline appl</button>
+        <button onclick="switchInline('sys')" class="snip_buttons">Switchinline sys</button>
+    </div>
+    <div style="margin-top:10px;"><div class="snip_div">Lists:</div>
+        <button onclick="tList('unordered')" class="snip_buttons">UL</button>
+        <button onclick="tList('ordered')" class="snip_buttons">OL</button>
+        <button onclick="listItem()" class="snip_buttons">List Item</button>
+    </div>
+    <div style="margin-top:10px;"><div class="snip_div">Links:</div>
+        <button onclick="tVariable()" class="snip_buttons">Variable</button>
+        <button onclick="tEmbed()" class="snip_buttons">Embed</button>
+        <button onclick="tEmbedvar()" class="snip_buttons">Embedvar</button>
+        <button onclick="tLink()" class="snip_buttons">Link</button>
+    </div>
+</div>
+<div class="rightside">
+    <h2>Rendered page</h2> 
+    <div id="renderedpage"></div>
+</div>
+</body>
+<!--<script type="text/javascript" src="xhp2html.js"></script>-->
+<script type="text/javascript" src="autocomplete.js"></script>
+<script type="text/javascript" src="snippets.js"></script>
+</html>
diff --git a/help3/html/links.txt.xsl b/help3/html/links.txt.xsl
new file mode 100644
index 0000000..2117a6d
--- /dev/null
+++ b/help3/html/links.txt.xsl
@@ -0,0 +1,1427 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template name="linktxt">
+<xsl:param name="src1"/>
+<xsl:choose>
+<xsl:when test="$src1='avmedia/res/av02048.png'"><xsl:text>cmd/sc_open.png</xsl:text></xsl:when>
+<xsl:when test="$src1='avmedia/res/av02049.png'"><xsl:text>cmd/sc_runbasic.png</xsl:text></xsl:when>
+<xsl:when test="$src1='avmedia/res/av02050.png'"><xsl:text>cmd/sc_mediapause.png</xsl:text></xsl:when>
+<xsl:when test="$src1='avmedia/res/av02051.png'"><xsl:text>cmd/sc_basicstop.png</xsl:text></xsl:when>
+<xsl:when test="$src1='avmedia/res/av02052.png'"><xsl:text>cmd/sc_mediarepeat.png</xsl:text></xsl:when>
+<xsl:when test="$src1='avmedia/res/av02053.png'"><xsl:text>cmd/sc_ok.png</xsl:text></xsl:when>
+<xsl:when test="$src1='avmedia/res/av02054.png'"><xsl:text>cmd/sc_mediamute.png</xsl:text></xsl:when>
+<xsl:when test="$src1='avmedia/res/avl02048.png'"><xsl:text>cmd/lc_open.png</xsl:text></xsl:when>
+<xsl:when test="$src1='avmedia/res/avl02049.png'"><xsl:text>cmd/lc_runbasic.png</xsl:text></xsl:when>
+<xsl:when test="$src1='avmedia/res/avl02050.png'"><xsl:text>cmd/lc_mediapause.png</xsl:text></xsl:when>
+<xsl:when test="$src1='avmedia/res/avl02051.png'"><xsl:text>cmd/lc_basicstop.png</xsl:text></xsl:when>
+<xsl:when test="$src1='avmedia/res/avl02052.png'"><xsl:text>cmd/lc_mediarepeat.png</xsl:text></xsl:when>
+<xsl:when test="$src1='avmedia/res/avl02053.png'"><xsl:text>cmd/lc_ok.png</xsl:text></xsl:when>
+<xsl:when test="$src1='avmedia/res/avl02054.png'"><xsl:text>cmd/lc_mediamute.png</xsl:text></xsl:when>
+<xsl:when test="$src1='chart2/res/dataeditor_icon01.png'"><xsl:text>cmd/sc_insertrowsafter.png</xsl:text></xsl:when>
+<xsl:when test="$src1='chart2/res/dataeditor_icon02.png'"><xsl:text>cmd/sc_insertcolumnsafter.png</xsl:text></xsl:when>
+<xsl:when test="$src1='chart2/res/dataeditor_icon03.png'"><xsl:text>cmd/sc_deleterows.png</xsl:text></xsl:when>
+<xsl:when test="$src1='chart2/res/dataeditor_icon04.png'"><xsl:text>cmd/sc_deletecolumns.png</xsl:text></xsl:when>
+<xsl:when test="$src1='chart2/res/dataeditor_icon05.png'"><xsl:text>cmd/sc_insertcellsright.png</xsl:text></xsl:when>
+<xsl:when test="$src1='chart2/res/dataeditor_icon06.png'"><xsl:text>cmd/sc_insertcellsdown.png</xsl:text></xsl:when>
+<xsl:when test="$src1='chart2/res/dataeditor_icon07.png'"><xsl:text>cmd/sc_insertcolumnsafter.png</xsl:text></xsl:when>
+<xsl:when test="$src1='chart2/res/dataeditor_icon08.png'"><xsl:text>cmd/sc_insertcolumns.png</xsl:text></xsl:when>
+<xsl:when test="$src1='chart2/res/dataeditor_icon09.png'"><xsl:text>cmd/sc_insertrowsbefore.png</xsl:text></xsl:when>
+<xsl:when test="$src1='chart2/res/selectrange.png'"><xsl:text>formula/res/refinp1.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_adddatefield.png'"><xsl:text>cmd/lc_datefield.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_addons.png'"><xsl:text>cmd/lc_insertplugin.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_addprintarea.png'"><xsl:text>cmd/lc_inserttable.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_addtable.png'"><xsl:text>cmd/lc_inserttable.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_adddatefield.png'"><xsl:text>cmd/sc_datefield.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_addons.png'"><xsl:text>cmd/sc_insertplugin.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_addprintarea.png'"><xsl:text>cmd/sc_inserttable.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_addtable.png'"><xsl:text>cmd/sc_inserttable.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_showinlinetooltips.png'"><xsl:text>cmd/lc_editannotation.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_showinlinetooltips.png'"><xsl:text>cmd/sc_editannotation.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insobjctrl.png'"><xsl:text>cmd/lc_newdoc.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insert.png'"><xsl:text>cmd/lc_togglesheetgrid.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertavmedia.png'"><xsl:text>cmd/lc_avmediaplayer.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertcurrencyfield.png'"><xsl:text>cmd/lc_formattedfield.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertdatefield.png'"><xsl:text>cmd/lc_datefield.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insert.png'"><xsl:text>cmd/lc_togglesheetgrid.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertauthorfield.png'"><xsl:text>cmd/lc_dbviewaliases.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertedit.png'"><xsl:text>cmd/lc_edit.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertfield.png'"><xsl:text>cmd/lc_addfield.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertctrl.png'"><xsl:text>cmd/lc_inserttable.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertfilecontrol.png'"><xsl:text>cmd/lc_open.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertformattedfield.png'"><xsl:text>cmd/lc_formattedfield.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertformcheck.png'"><xsl:text>cmd/lc_checkbox.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertformcombo.png'"><xsl:text>cmd/lc_combobox.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertformlist.png'"><xsl:text>cmd/lc_listbox.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertformradio.png'"><xsl:text>cmd/lc_radiobutton.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertformspin.png'"><xsl:text>cmd/lc_spinbutton.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertformula.png'"><xsl:text>cmd/lc_dbviewfunctions.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertformvscroll.png'"><xsl:text>cmd/lc_scrollbar.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertframeinteract.png'"><xsl:text>cmd/lc_insertframe.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertframeinteractnocolumns.png'"><xsl:text>cmd/lc_insertframe.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertobjectchart.png'"><xsl:text>cmd/lc_drawchart.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertnumericfield.png'"><xsl:text>cmd/lc_numberformatstandard.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_numericfield.png'"><xsl:text>cmd/lc_numberformatstandard.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertlistbox.png'"><xsl:text>cmd/lc_listbox.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_inserttextframe.png'"><xsl:text>cmd/lc_insertframe.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertobjectstarmath.png'"><xsl:text>cmd/lc_insertmath.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertpatternfield.png'"><xsl:text>cmd/lc_patternfield.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertpushbutton.png'"><xsl:text>cmd/lc_pushbutton.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertrowbreak.png'"><xsl:text>cmd/lc_insertpagebreak.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_insertspreadsheet.png'"><xsl:text>cmd/lc_togglesheetgrid.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_inserttimefield.png'"><xsl:text>cmd/lc_timefield.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insobjctrl.png'"><xsl:text>cmd/sc_newdoc.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insert.png'"><xsl:text>cmd/sc_togglesheetgrid.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertavmedia.png'"><xsl:text>cmd/sc_avmediaplayer.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertcurrencyfield.png'"><xsl:text>cmd/sc_formattedfield.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertdatefield.png'"><xsl:text>cmd/sc_datefield.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertauthorfield.png'"><xsl:text>cmd/sc_dbviewaliases.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertedit.png'"><xsl:text>cmd/sc_text.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertfield.png'"><xsl:text>cmd/sc_addfield.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertctrl.png'"><xsl:text>cmd/sc_inserttable.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertfilecontrol.png'"><xsl:text>cmd/sc_open.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertformattedfield.png'"><xsl:text>cmd/sc_formattedfield.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertformcheck.png'"><xsl:text>cmd/sc_checkbox.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertformcombo.png'"><xsl:text>cmd/sc_combobox.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertformlist.png'"><xsl:text>cmd/sc_listbox.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertformradio.png'"><xsl:text>cmd/sc_radiobutton.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertformspin.png'"><xsl:text>cmd/sc_spinbutton.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertformula.png'"><xsl:text>cmd/sc_dbviewfunctions.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertformvscroll.png'"><xsl:text>cmd/sc_scrollbar.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_scrollbarmenu.png'"><xsl:text>cmd/sc_scrollbar.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertframeinteract.png'"><xsl:text>cmd/sc_insertframe.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertframemenu.png'"><xsl:text>cmd/sc_insertframe.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertframeinteractnocolumns.png'"><xsl:text>cmd/sc_insertframe.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertimagecontrol.png'"><xsl:text>cmd/sc_drawchart.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertobjectchart.png'"><xsl:text>cmd/sc_drawchart.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertnumericfield.png'"><xsl:text>cmd/sc_numberformatstandard.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_numericfield.png'"><xsl:text>cmd/sc_numberformatstandard.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertlistbox.png'"><xsl:text>cmd/sc_listbox.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertobjectfloatingframe.png'"><xsl:text>cmd/sc_insertframe.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_inserttextframe.png'"><xsl:text>cmd/sc_insertframe.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertobjectstarmath.png'"><xsl:text>cmd/sc_insertmath.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertpatternfield.png'"><xsl:text>cmd/sc_patternfield.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertpushbutton.png'"><xsl:text>cmd/sc_pushbutton.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertrowbreak.png'"><xsl:text>cmd/sc_insertpagebreak.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_insertspreadsheet.png'"><xsl:text>cmd/sc_togglesheetgrid.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_inserttimefield.png'"><xsl:text>cmd/sc_timefield.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_showtrackedchanges.png'"><xsl:text>cmd/sc_addwatch.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_showtrackedchanges.png'"><xsl:text>cmd/lc_addwatch.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_tracechangemode.png'"><xsl:text>cmd/sc_trackchanges.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/lc_tracechangemode.png'"><xsl:text>cmd/lc_trackchanges.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_shapesmenu.png'"><xsl:text>cmd/sc_basicshapes.round-quadrat.png</xsl:text></xsl:when>
+<xsl:when test="$src1='cmd/sc_charactermenu.png'"><xsl:text>cmd/sc_fontdialog.png</xsl:text></xsl:when>

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list