diff --git a/html2xdoc/src/main/org/apache/maven/html2xdoc/Html2XdocBean.java b/html2xdoc/src/main/org/apache/maven/html2xdoc/Html2XdocBean.java index 81a8afee..a346c053 100644 --- a/html2xdoc/src/main/org/apache/maven/html2xdoc/Html2XdocBean.java +++ b/html2xdoc/src/main/org/apache/maven/html2xdoc/Html2XdocBean.java @@ -250,10 +250,30 @@ public class Html2XdocBean { } else { currentNode = currentSectionNode.addElement("subsection"); } - currentNode.addAttribute("name", node.getText()); + currentNode.addAttribute("name", getSectionText(node)); currentParaNode = null; } + /** + * @return the section text for the given node. If the node + * contains an embedded element (such as an <a> element) + * then return its text + */ + protected String getSectionText(Node node) { + String text = node.getText().trim(); + if (text.length() <= 0 && node instanceof Element) { + Element element = (Element) node; + + // maybe we contain a hypertext link + List childElements = element.elements(); + if (! childElements.isEmpty()) { + Node child = (Node) childElements.get(0); + return child.getText(); + } + } + return text; + } + /** * Determines if a new section is needed which is based on whether * the node's a heading level and equal to or less than the current diff --git a/html2xdoc/src/test/org/apache/maven/html2xdoc/TestHtml2Xdoc.java b/html2xdoc/src/test/org/apache/maven/html2xdoc/TestHtml2Xdoc.java index ac7747d2..246942ad 100644 --- a/html2xdoc/src/test/org/apache/maven/html2xdoc/TestHtml2Xdoc.java +++ b/html2xdoc/src/test/org/apache/maven/html2xdoc/TestHtml2Xdoc.java @@ -101,6 +101,7 @@ public class TestHtml2Xdoc extends TestCase { // Test cases //------------------------------------------------------------------------- public void testOne() throws Exception { + assertConversion("linkInHeading.html", "linkInHeading.xml"); assertConversion("codeinpara.html", "codeinpara.xml"); assertConversion("input1.html", "output1.xml"); assertConversion("h1h2.html", "h1h2.xml"); diff --git a/html2xdoc/src/test/org/apache/maven/html2xdoc/linkInHeading.html b/html2xdoc/src/test/org/apache/maven/html2xdoc/linkInHeading.html new file mode 100644 index 00000000..5d48891a --- /dev/null +++ b/html2xdoc/src/test/org/apache/maven/html2xdoc/linkInHeading.html @@ -0,0 +1,13 @@ + + + + + A title + + + +

+the real title

+Some text + + diff --git a/html2xdoc/src/test/org/apache/maven/html2xdoc/linkInHeading.xml b/html2xdoc/src/test/org/apache/maven/html2xdoc/linkInHeading.xml new file mode 100644 index 00000000..a87e43f2 --- /dev/null +++ b/html2xdoc/src/test/org/apache/maven/html2xdoc/linkInHeading.xml @@ -0,0 +1,11 @@ + + + A title + + +
+

Some text +

+
+ +