diff options
author | Olivier Hallot <olivier.hallot@libreoffice.org> | 2020-03-02 10:24:42 -0300 |
---|---|---|
committer | Olivier Hallot <olivier.hallot@libreoffice.org> | 2020-03-02 20:10:24 +0100 |
commit | 3fd0111f7071d3feed644b88c3227817c422510b (patch) | |
tree | 659bc4e445d6ad65f7972b970f9a2284030622ae /helpers/refactor.xsl | |
parent | eb8ea00768b65b71653e85fdcda022fc39df211d (diff) |
Helper to refactor paragraphs in XHP
The helper transforms XHP paragraphs into :
roles=note, warning, tip into <note>,<warning> and <tip>
roles=heading and level=[n] into <h[n]>
usage:
xsltproc refactor.xsl source.xhp > target.xhp
Change-Id: Ib3d69aebc35978f6e73a27bee232864bfe6e8463
Reviewed-on: https://gerrit.libreoffice.org/c/help/+/89832
Tested-by: Jenkins
Reviewed-by: Olivier Hallot <olivier.hallot@libreoffice.org>
Diffstat (limited to 'helpers/refactor.xsl')
-rw-r--r-- | helpers/refactor.xsl | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/helpers/refactor.xsl b/helpers/refactor.xsl new file mode 100644 index 0000000000..16341ca35a --- /dev/null +++ b/helpers/refactor.xsl @@ -0,0 +1,61 @@ +<?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/. + --> + +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + +<xsl:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/> + +<xsl:template match="/"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="node()|@*"> + <xsl:copy> + <xsl:apply-templates select="node()|@*"/> + </xsl:copy> +</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="@role='note' or @role='tip' or @role='warning'"> + <xsl:call-template name="insertnote"> + <xsl:with-param name="type" select="@role" /> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:copy> + <xsl:apply-templates select="node()|@*"/> + </xsl:copy> + </xsl:otherwise> + </xsl:choose> +</xsl:template> +<!-- Insert a heading --> +<xsl:template name="insertheading"> + <xsl:param name="level" /> + <xsl:element name="{concat('h',$level)}"> + <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute> + <xsl:apply-templates /> + </xsl:element> +</xsl:template> +<!-- Insert Note, Warning, or Tip --> +<xsl:template name="insertnote"> + <xsl:param name="type" /> <!-- note, tip, or warning --> + <xsl:element name="{$type}"> + <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute> + <xsl:apply-templates /> + </xsl:element> +</xsl:template> + +</xsl:stylesheet> |