Skip to content

Commit cdfbea4

Browse files
committed
Fix #2 apply multiple base classes.
1 parent 185f8e9 commit cdfbea4

File tree

6 files changed

+15104
-6
lines changed

6 files changed

+15104
-6
lines changed

Customization/xsl/class.xsl

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,16 +84,22 @@
8484
<b class="+ topic/ph hi-d/b "><xsl:value-of select="replace(compoundname,'^.*::','')"/></b>
8585
<xsl:choose>
8686
<xsl:when test="basecompoundref/@refid">
87-
<xsl:variable name="extends" select="basecompoundref/@refid"/>
88-
<xsl:text> extends </xsl:text>
87+
<xsl:variable name="extends" select="basecompoundref/@refid"/>
88+
<xsl:text> extends </xsl:text>
89+
90+
<xsl:for-each select="basecompoundref">
8991
<xsl:call-template name="add-link">
9092
<xsl:with-param name="type" select="'topic'"/>
9193
<xsl:with-param
92-
name="href"
93-
select="concat('#', dita-ot:name-to-id(//compounddef[@id=$extends]/compoundname))"
94-
/>
95-
<xsl:with-param name="text" select="replace(basecompoundref,'^.*\.','')"/>
94+
name="href"
95+
select="concat('#', dita-ot:name-to-id(//compounddef[@id=$extends]/compoundname))"
96+
/>
97+
<xsl:with-param name="text" select="replace(.,'^.*\.','')"/>
9698
</xsl:call-template>
99+
<xsl:if test="count(basecompoundref) &gt; 1">
100+
<xsl:text> </xsl:text>
101+
</xsl:if>
102+
</xsl:for-each>
97103
</xsl:when>
98104
<xsl:when test="basecompoundref">
99105
<xsl:value-of select="concat(' extends ', basecompoundref)"/>

test/multiple-base/build.xml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<!--
3+
This file is part of the DITA-OT Doxygen Plug-in project.
4+
See the accompanying LICENSE file for applicable licenses.
5+
-->
6+
<project basedir="." default="unit-test">
7+
<import file="../bootstrap.xml"/>
8+
<description>
9+
Expect that a class with multiple base classes is generated to DITA
10+
</description>
11+
<target name="unit-test">
12+
<property name="file" value="${basedir}/out/multibase.xml"/>
13+
<exec-transtype transtype="dita"/>
14+
<xmltask
15+
expandEntityReferences="false"
16+
dest="${file}"
17+
outputter="simple"
18+
source="${file}"
19+
>
20+
<xmlcatalog>
21+
<dtd publicId="-//OASIS//DTD DITA Topic//EN" location="../fake.dtd"/>
22+
</xmlcatalog>
23+
</xmltask>
24+
<compare-output suffix=".xml" result="${file}"/>
25+
</target>
26+
</project>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE bookmap PUBLIC "-//OASIS//DTD DITA BookMap//EN" "bookmap.dtd">
3+
<bookmap>
4+
<appendices>
5+
<topicmeta>
6+
<navtitle>Appendices</navtitle>
7+
</topicmeta>
8+
<appendix format="dita" href="topic.dita">
9+
<topicref format="doxygen" type="topic" href="multibase.xml"/>
10+
</appendix>
11+
</appendices>
12+
</bookmap>
13+
14+

0 commit comments

Comments
 (0)