1 | <?xml version="1.0"?>
|
---|
2 | <!--
|
---|
3 | docbook-refentry-to-manpage-preprocessing.xsl:
|
---|
4 | XSLT stylesheet preprocessing remarks elements before
|
---|
5 | turning a refentry (manpage) into a unix manual page and
|
---|
6 | VBoxManage built-in help.
|
---|
7 | -->
|
---|
8 | <!--
|
---|
9 | Copyright (C) 2006-2024 Oracle and/or its affiliates.
|
---|
10 |
|
---|
11 | This file is part of VirtualBox base platform packages, as
|
---|
12 | available from https://www.virtualbox.org.
|
---|
13 |
|
---|
14 | This program is free software; you can redistribute it and/or
|
---|
15 | modify it under the terms of the GNU General Public License
|
---|
16 | as published by the Free Software Foundation, in version 3 of the
|
---|
17 | License.
|
---|
18 |
|
---|
19 | This program is distributed in the hope that it will be useful, but
|
---|
20 | WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
21 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
---|
22 | General Public License for more details.
|
---|
23 |
|
---|
24 | You should have received a copy of the GNU General Public License
|
---|
25 | along with this program; if not, see <https://www.gnu.org/licenses>.
|
---|
26 |
|
---|
27 | SPDX-License-Identifier: GPL-3.0-only
|
---|
28 | -->
|
---|
29 |
|
---|
30 | <xsl:stylesheet
|
---|
31 | version="1.0"
|
---|
32 | xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
---|
33 | xmlns:str="http://xsltsl.org/string"
|
---|
34 | >
|
---|
35 |
|
---|
36 | <xsl:output method="xml" version="1.0" encoding="utf-8" indent="no"/>
|
---|
37 |
|
---|
38 | <!--
|
---|
39 | The default action is to copy everything.
|
---|
40 | -->
|
---|
41 | <xsl:template match="node()|@*">
|
---|
42 | <xsl:copy>
|
---|
43 | <xsl:apply-templates select="node()|@*"/>
|
---|
44 | </xsl:copy>
|
---|
45 | </xsl:template>
|
---|
46 |
|
---|
47 | <!--
|
---|
48 | Execute synopsis copy remark (avoids duplication for complicated xml).
|
---|
49 | We strip the attributes off it.
|
---|
50 | -->
|
---|
51 | <xsl:template match="remark[@role = 'help-copy-synopsis']">
|
---|
52 | <xsl:choose>
|
---|
53 | <xsl:when test="parent::refsect2"/>
|
---|
54 | <xsl:otherwise>
|
---|
55 | <xsl:message terminate="yes">Misplaced remark/@role=help-copy-synopsis element.
|
---|
56 | Only supported on: refsect2</xsl:message>
|
---|
57 | </xsl:otherwise>
|
---|
58 | </xsl:choose>
|
---|
59 | <xsl:variable name="sSrcId">
|
---|
60 | <xsl:choose>
|
---|
61 | <xsl:when test="@condition"><xsl:value-of select="concat('synopsis-', @condition)"/></xsl:when>
|
---|
62 | <xsl:otherwise><xsl:value-of select="concat('synopsis-', ../@id)"/></xsl:otherwise>
|
---|
63 | </xsl:choose>
|
---|
64 | </xsl:variable>
|
---|
65 | <xsl:variable name="CmdSynopsis" select="/refentry/refsynopsisdiv/cmdsynopsis[@id = $sSrcId]"/>
|
---|
66 | <xsl:if test="not($CmdSynopsis)">
|
---|
67 | <xsl:message terminate="yes">Could not find any cmdsynopsis with id=<xsl:value-of select="$sSrcId"/> in refsynopsisdiv.</xsl:message>
|
---|
68 | </xsl:if>
|
---|
69 |
|
---|
70 | <xsl:element name="cmdsynopsis">
|
---|
71 | <xsl:apply-templates select="$CmdSynopsis/node()"/>
|
---|
72 | </xsl:element>
|
---|
73 |
|
---|
74 | </xsl:template>
|
---|
75 |
|
---|
76 | <!--
|
---|
77 | Remove bits only intended for the manual.
|
---|
78 | -->
|
---|
79 | <xsl:template match="remark[@role='help-manual']"/>
|
---|
80 |
|
---|
81 | <!--
|
---|
82 | Remove remarks without a role.
|
---|
83 | These are used for leaving questions and such while working with the documentation team.
|
---|
84 | -->
|
---|
85 | <xsl:template match="remark[not(@role)]"/>
|
---|
86 |
|
---|
87 |
|
---|
88 | </xsl:stylesheet>
|
---|
89 |
|
---|