You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2024/03/08 19:29:34 UTC

(maven-doxia-sitetools) branch DOXIASITETOOLS-332 created (now 4b8f303)

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a change to branch DOXIASITETOOLS-332
in repository https://gitbox.apache.org/repos/asf/maven-doxia-sitetools.git


      at 4b8f303  [DOXIASITETOOLS-332] Create anchors for indexable entries automatically

This branch includes the following new commits:

     new 4b8f303  [DOXIASITETOOLS-332] Create anchors for indexable entries automatically

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(maven-doxia-sitetools) 01/01: [DOXIASITETOOLS-332] Create anchors for indexable entries automatically

Posted by mi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch DOXIASITETOOLS-332
in repository https://gitbox.apache.org/repos/asf/maven-doxia-sitetools.git

commit 4b8f3031662147861efd798090c83918f927f456
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Fri Mar 8 16:22:52 2024 +0100

    [DOXIASITETOOLS-332] Create anchors for indexable entries automatically
    
    This closes #139
---
 .../doxia/siterenderer/DefaultSiteRenderer.java    |  1 +
 .../maven/doxia/siterenderer/AptVerifier.java      |  9 ++++
 .../doxia/siterenderer/AttributesVerifier.java     | 21 +++++++++
 .../maven/doxia/siterenderer/EntitiesVerifier.java | 54 +++++++++++++++-------
 .../doxia/siterenderer/JavascriptVerifier.java     |  4 ++
 .../doxia/siterenderer/MultipleBlockVerifier.java  |  4 ++
 .../doxia/siterenderer/NestedItemsVerifier.java    | 36 +++++++++------
 .../resources/site-validate/xdoc/entityTest.xml    | 10 ++--
 .../src/test/resources/site/xdoc/macro.xml         |  6 +--
 .../src/test/resources/site/xdoc/nestedItems.xml   |  6 +--
 10 files changed, 110 insertions(+), 41 deletions(-)

diff --git a/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java b/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
index 9c532ac..3c4ccc8 100644
--- a/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
+++ b/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/DefaultSiteRenderer.java
@@ -322,6 +322,7 @@ public class DefaultSiteRenderer implements Renderer {
             Parser parser = doxia.getParser(docRenderingContext.getParserId());
             // DOXIASITETOOLS-146 don't render comments from source markup
             parser.setEmitComments(false);
+            parser.setEmitAnchorsForIndexableEntries(true);
 
             // TODO: DOXIA-111: the filter used here must be checked generally.
             if (docRenderingContext.getAttribute("velocity") != null) {
diff --git a/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/AptVerifier.java b/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/AptVerifier.java
index e9e1762..87584ab 100644
--- a/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/AptVerifier.java
+++ b/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/AptVerifier.java
@@ -59,6 +59,9 @@ public class AptVerifier extends AbstractVerifier {
 
         HtmlSection section = (HtmlSection) elementIterator.next();
 
+        HtmlAnchor anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("Links", anchor.getAttribute("id"));
         HtmlHeading1 h1 = (HtmlHeading1) elementIterator.next();
         assertNotNull(h1);
         assertEquals("Links", h1.asNormalizedText().trim());
@@ -101,6 +104,9 @@ public class AptVerifier extends AbstractVerifier {
         section = (HtmlSection) elementIterator.next();
         assertNotNull(section);
 
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("Section_formatting.3A_italic_bold_mono", anchor.getAttribute("id"));
         h1 = (HtmlHeading1) elementIterator.next();
         assertNotNull(h1);
         // Note: htmlunit strips the white space, actual result is ok
@@ -122,6 +128,9 @@ public class AptVerifier extends AbstractVerifier {
         section = (HtmlSection) elementIterator.next();
         assertNotNull(section);
 
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("SubSection_formatting.3A_italic_bold_mono", anchor.getAttribute("id"));
         HtmlHeading2 h2 = (HtmlHeading2) elementIterator.next();
         assertNotNull(h2);
         // Note: htmlunit strips the white space, actual result is ok
diff --git a/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/AttributesVerifier.java b/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/AttributesVerifier.java
index 4916a2b..1672cd6 100644
--- a/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/AttributesVerifier.java
+++ b/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/AttributesVerifier.java
@@ -71,6 +71,9 @@ public class AttributesVerifier extends AbstractVerifier {
 
         HtmlSection section = (HtmlSection) elementIterator.next();
 
+        HtmlAnchor anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("section", anchor.getAttribute("id"));
         HtmlHeading1 h1 = (HtmlHeading1) elementIterator.next();
         assertNotNull(h1);
         assertEquals("section", h1.asNormalizedText().trim());
@@ -186,22 +189,34 @@ public class AttributesVerifier extends AbstractVerifier {
         assertEquals("pretty", pre.getAttribute("id"));
 
         section = (HtmlSection) elementIterator.next();
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("Section_without_id", anchor.getAttribute("id"));
         h1 = (HtmlHeading1) elementIterator.next();
         assertEquals("Section without id", h1.asNormalizedText().trim());
 
         section = (HtmlSection) elementIterator.next();
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("Subsection_without_id", anchor.getAttribute("id"));
         HtmlHeading2 h2 = (HtmlHeading2) elementIterator.next();
         assertEquals("Subsection without id", h2.asNormalizedText().trim());
 
         a = (HtmlAnchor) elementIterator.next();
         assertEquals("section-id", a.getAttribute("id"));
         section = (HtmlSection) elementIterator.next();
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("Section_with_id", anchor.getAttribute("id"));
         h1 = (HtmlHeading1) elementIterator.next();
         assertEquals("Section with id", h1.asNormalizedText().trim());
 
         a = (HtmlAnchor) elementIterator.next();
         assertEquals("subsection-id", a.getAttribute("id"));
         section = (HtmlSection) elementIterator.next();
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("Subsection_with_id", anchor.getAttribute("id"));
         h2 = (HtmlHeading2) elementIterator.next();
         assertEquals("Subsection with id", h2.asNormalizedText().trim());
 
@@ -210,6 +225,9 @@ public class AttributesVerifier extends AbstractVerifier {
         section = (HtmlSection) elementIterator.next();
         assertEquals("bar", section.getAttribute("class"));
         assertEquals("foo", section.getAttribute("id"));
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("Section_name", anchor.getAttribute("id"));
         h1 = (HtmlHeading1) elementIterator.next();
         assertEquals("Section name", h1.asNormalizedText().trim());
         assertEquals("", h1.getAttribute("class"));
@@ -219,6 +237,9 @@ public class AttributesVerifier extends AbstractVerifier {
         section = (HtmlSection) elementIterator.next();
         assertEquals("subbar", section.getAttribute("class"));
         assertEquals("subfoo", section.getAttribute("id"));
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("Subsection_name", anchor.getAttribute("id"));
         h2 = (HtmlHeading2) elementIterator.next();
         assertEquals("Subsection name", h2.asNormalizedText().trim());
         assertEquals("", h2.getAttribute("class"));
diff --git a/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/EntitiesVerifier.java b/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/EntitiesVerifier.java
index 4d0d295..1528113 100644
--- a/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/EntitiesVerifier.java
+++ b/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/EntitiesVerifier.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.siterenderer;
 
 import java.util.Iterator;
 
+import org.htmlunit.html.HtmlAnchor;
 import org.htmlunit.html.HtmlDivision;
 import org.htmlunit.html.HtmlElement;
 import org.htmlunit.html.HtmlHeading1;
@@ -59,6 +60,11 @@ public class EntitiesVerifier extends AbstractVerifier {
 
         HtmlSection section = (HtmlSection) elementIterator.next();
 
+        HtmlAnchor anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals(
+                "section_name_with_entities.3A_.27.26.27_.27.CE.91.27_.27.C2.A0.27_.27.3F.3F.27",
+                anchor.getAttribute("id"));
         HtmlHeading1 h1 = (HtmlHeading1) elementIterator.next();
         assertNotNull(h1);
         assertEquals(h1.asNormalizedText().trim(), "section name with entities: '&' '\u0391' ' ' '\uD835\uDFED'");
@@ -66,20 +72,24 @@ public class EntitiesVerifier extends AbstractVerifier {
         section = (HtmlSection) elementIterator.next();
         assertNotNull(section);
 
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("Entities", anchor.getAttribute("id"));
+        HtmlHeading2 h2 = (HtmlHeading2) elementIterator.next();
+        assertNotNull(h2);
+        assertEquals("Entities", h2.asNormalizedText().trim());
+
         section = (HtmlSection) elementIterator.next();
         assertNotNull(section);
 
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals(
+                "Generic_Entities.3A_.27.26.27_.27.3C.27_.27.3E.27_.27.22.27_.27.27.27", anchor.getAttribute("id"));
         HtmlHeading3 h3 = (HtmlHeading3) elementIterator.next();
         assertNotNull(h3);
-        assertEquals("Entities", h3.asNormalizedText().trim());
-
-        section = (HtmlSection) elementIterator.next();
-        assertNotNull(section);
-
-        HtmlHeading2 h2 = (HtmlHeading2) elementIterator.next();
-        assertNotNull(h2);
         assertEquals(
-                "Generic Entities: '&' '<' '>' '\"' '''", h2.asNormalizedText().trim());
+                "Generic Entities: '&' '<' '>' '\"' '''", h3.asNormalizedText().trim());
 
         HtmlParagraph p = (HtmlParagraph) elementIterator.next();
         assertNotNull(p);
@@ -88,11 +98,15 @@ public class EntitiesVerifier extends AbstractVerifier {
         section = (HtmlSection) elementIterator.next();
         assertNotNull(section);
 
-        h2 = (HtmlHeading2) elementIterator.next();
-        assertNotNull(h2);
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals(
+                "Local_Entities.3A_.27.CE.91.27_.27.CE.92.27_.27.CE.93.27_.27.3F.3F.27", anchor.getAttribute("id"));
+        h3 = (HtmlHeading3) elementIterator.next();
+        assertNotNull(h3);
         assertEquals(
                 "Local Entities: '\u0391' '\u0392' '\u0393' '\uD835\uDFED'",
-                h2.asNormalizedText().trim());
+                h3.asNormalizedText().trim());
 
         p = (HtmlParagraph) elementIterator.next();
         assertNotNull(p);
@@ -103,10 +117,13 @@ public class EntitiesVerifier extends AbstractVerifier {
         section = (HtmlSection) elementIterator.next();
         assertNotNull(section);
 
-        h2 = (HtmlHeading2) elementIterator.next();
-        assertNotNull(h2);
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("DTD_Entities.3A_.27.27_.27.C2.A1.27_.27.C2.A2.27", anchor.getAttribute("id"));
+        h3 = (HtmlHeading3) elementIterator.next();
+        assertNotNull(h3);
         assertEquals(
-                "DTD Entities: ' ' '\u00A1' '\u00A2'", h2.asNormalizedText().trim());
+                "DTD Entities: ' ' '\u00A1' '\u00A2'", h3.asNormalizedText().trim());
 
         p = (HtmlParagraph) elementIterator.next();
         assertNotNull(p);
@@ -115,9 +132,12 @@ public class EntitiesVerifier extends AbstractVerifier {
         section = (HtmlSection) elementIterator.next();
         assertNotNull(section);
 
-        h3 = (HtmlHeading3) elementIterator.next();
-        assertNotNull(h3);
-        assertEquals("CDATA", h3.asNormalizedText().trim());
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("CDATA", anchor.getAttribute("id"));
+        h2 = (HtmlHeading2) elementIterator.next();
+        assertNotNull(h2);
+        assertEquals("CDATA", h2.asNormalizedText().trim());
 
         HtmlDivision div = (HtmlDivision) elementIterator.next();
         assertNotNull(div);
diff --git a/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/JavascriptVerifier.java b/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/JavascriptVerifier.java
index 3acf2a0..56d1f35 100644
--- a/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/JavascriptVerifier.java
+++ b/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/JavascriptVerifier.java
@@ -26,6 +26,7 @@ import java.util.List;
 
 import org.htmlunit.CollectingAlertHandler;
 import org.htmlunit.WebClient;
+import org.htmlunit.html.HtmlAnchor;
 import org.htmlunit.html.HtmlElement;
 import org.htmlunit.html.HtmlHeading1;
 import org.htmlunit.html.HtmlMain;
@@ -82,6 +83,9 @@ public class JavascriptVerifier extends AbstractVerifier {
             HtmlSection section = (HtmlSection) elementIterator.next();
             assertNotNull(section);
 
+            HtmlAnchor anchor = (HtmlAnchor) elementIterator.next();
+            assertNotNull(anchor);
+            assertEquals("Test", anchor.getAttribute("id"));
             HtmlHeading1 h1 = (HtmlHeading1) elementIterator.next();
             assertNotNull(h1);
             assertEquals("Test", h1.asNormalizedText().trim());
diff --git a/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/MultipleBlockVerifier.java b/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/MultipleBlockVerifier.java
index 1fc7823..49e5a5d 100644
--- a/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/MultipleBlockVerifier.java
+++ b/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/MultipleBlockVerifier.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.siterenderer;
 
 import java.util.Iterator;
 
+import org.htmlunit.html.HtmlAnchor;
 import org.htmlunit.html.HtmlElement;
 import org.htmlunit.html.HtmlHeading1;
 import org.htmlunit.html.HtmlListItem;
@@ -57,6 +58,9 @@ public class MultipleBlockVerifier extends AbstractVerifier {
         HtmlSection section = (HtmlSection) elementIterator.next();
         assertNotNull(section);
 
+        HtmlAnchor anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("section_name", anchor.getAttribute("id"));
         HtmlHeading1 h1 = (HtmlHeading1) elementIterator.next();
         assertNotNull(h1);
         assertEquals("section name", h1.asNormalizedText().trim());
diff --git a/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/NestedItemsVerifier.java b/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/NestedItemsVerifier.java
index a5566e3..5fa80d9 100644
--- a/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/NestedItemsVerifier.java
+++ b/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/NestedItemsVerifier.java
@@ -20,12 +20,13 @@ package org.apache.maven.doxia.siterenderer;
 
 import java.util.Iterator;
 
+import org.htmlunit.html.HtmlAnchor;
 import org.htmlunit.html.HtmlDefinitionDescription;
 import org.htmlunit.html.HtmlDefinitionList;
 import org.htmlunit.html.HtmlDefinitionTerm;
 import org.htmlunit.html.HtmlElement;
 import org.htmlunit.html.HtmlHeading1;
-import org.htmlunit.html.HtmlHeading3;
+import org.htmlunit.html.HtmlHeading2;
 import org.htmlunit.html.HtmlListItem;
 import org.htmlunit.html.HtmlMain;
 import org.htmlunit.html.HtmlOrderedList;
@@ -62,6 +63,9 @@ public class NestedItemsVerifier extends AbstractVerifier {
         HtmlSection section = (HtmlSection) elementIterator.next();
         assertNotNull(section);
 
+        HtmlAnchor anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("List_Section", anchor.getAttribute("id"));
         HtmlHeading1 h1 = (HtmlHeading1) elementIterator.next();
         assertNotNull(h1);
         assertEquals("List Section", h1.asNormalizedText().trim());
@@ -73,12 +77,12 @@ public class NestedItemsVerifier extends AbstractVerifier {
         section = (HtmlSection) elementIterator.next();
         assertNotNull(section);
 
-        section = (HtmlSection) elementIterator.next();
-        assertNotNull(section);
-
-        HtmlHeading3 h3 = (HtmlHeading3) elementIterator.next();
-        assertNotNull(h3);
-        assertEquals("Unordered lists", h3.asNormalizedText().trim());
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("Unordered_lists", anchor.getAttribute("id"));
+        HtmlHeading2 h2 = (HtmlHeading2) elementIterator.next();
+        assertNotNull(h2);
+        assertEquals("Unordered lists", h2.asNormalizedText().trim());
 
         HtmlParagraph p = (HtmlParagraph) elementIterator.next();
         assertNotNull(p);
@@ -164,9 +168,12 @@ public class NestedItemsVerifier extends AbstractVerifier {
         section = (HtmlSection) elementIterator.next();
         assertNotNull(section);
 
-        h3 = (HtmlHeading3) elementIterator.next();
-        assertNotNull(h3);
-        assertEquals("Ordered lists", h3.asNormalizedText().trim());
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("Ordered_lists", anchor.getAttribute("id"));
+        h2 = (HtmlHeading2) elementIterator.next();
+        assertNotNull(h2);
+        assertEquals("Ordered lists", h2.asNormalizedText().trim());
 
         p = (HtmlParagraph) elementIterator.next();
         assertNotNull(p);
@@ -248,9 +255,12 @@ public class NestedItemsVerifier extends AbstractVerifier {
         section = (HtmlSection) elementIterator.next();
         assertNotNull(section);
 
-        h3 = (HtmlHeading3) elementIterator.next();
-        assertNotNull(h3);
-        assertEquals("Definition lists", h3.asNormalizedText().trim());
+        anchor = (HtmlAnchor) elementIterator.next();
+        assertNotNull(anchor);
+        assertEquals("Definition_lists", anchor.getAttribute("id"));
+        h2 = (HtmlHeading2) elementIterator.next();
+        assertNotNull(h2);
+        assertEquals("Definition lists", h2.asNormalizedText().trim());
 
         p = (HtmlParagraph) elementIterator.next();
         assertNotNull(p);
diff --git a/doxia-site-renderer/src/test/resources/site-validate/xdoc/entityTest.xml b/doxia-site-renderer/src/test/resources/site-validate/xdoc/entityTest.xml
index 1b453ce..d1d8fa2 100644
--- a/doxia-site-renderer/src/test/resources/site-validate/xdoc/entityTest.xml
+++ b/doxia-site-renderer/src/test/resources/site-validate/xdoc/entityTest.xml
@@ -52,17 +52,17 @@
 
     <section name="section name with entities: '&amp;' '&Alpha;' '&nbsp;' '&tritPos;'">
 
-      <h3>Entities</h3>
-      <h2>Generic Entities: '&amp;' '&lt;' '&gt;' '&quot;' '&apos;'</h2>
+      <h2>Entities</h2>
+      <h3>Generic Entities: '&amp;' '&lt;' '&gt;' '&quot;' '&apos;'</h3>
       <p>'&amp;' '&lt;' '&gt;' '&quot;' '&apos;'</p>
 
-      <h2>Local Entities: '&Alpha;' '&Beta;' '&Gamma;' '&tritPos;'</h2>
+      <h3>Local Entities: '&Alpha;' '&Beta;' '&Gamma;' '&tritPos;'</h3>
       <p>'&Alpha;' '&Beta;' '&Gamma;' '&tritPos;&#x1d7ed;' '&flo;&#x159;' '&myCustomEntity;'</p>
 
-      <h2>DTD Entities: '&nbsp;' '&iexcl;' '&cent;'</h2>
+      <h3>DTD Entities: '&nbsp;' '&iexcl;' '&cent;'</h3>
       <p>'&nbsp;' '&iexcl;' '&cent;'</p>
 
-      <h3>CDATA</h3>
+      <h2>CDATA</h2>
       <source><![CDATA[<project xmlns:ant="jelly:ant">]]></source>
       <p><![CDATA['&nbsp;' '&iexcl;']]></p>
 
diff --git a/doxia-site-renderer/src/test/resources/site/xdoc/macro.xml b/doxia-site-renderer/src/test/resources/site/xdoc/macro.xml
index 8266116..ea04d04 100644
--- a/doxia-site-renderer/src/test/resources/site/xdoc/macro.xml
+++ b/doxia-site-renderer/src/test/resources/site/xdoc/macro.xml
@@ -50,7 +50,7 @@
     <section name="TITLE 1">
       <subsection name="SUB TITLE 1.1"><p>bla bla...</p></subsection>
       <subsection name="SUB TITLE 1.2"><p>bla bla...</p>
-        <h4>SUB SUB TITLE 1.2.1</h4>
+        <h3>SUB SUB TITLE 1.2.1</h3>
       </subsection>
       <subsection name="SUB TITLE 1.3"><p>bla bla...</p></subsection>
     </section>
@@ -58,7 +58,7 @@
     <section name="TITLE 2">
       <subsection name="SUB TITLE 2.1"><p>bla bla...</p></subsection>
       <subsection name="SUB TITLE 2.2"><p>bla bla...</p>
-            <h4>SUB SUB TITLE 2.2.1</h4>
+            <h3>SUB SUB TITLE 2.2.1</h3>
         </subsection>
         <subsection name="SUB TITLE 2.3"><p>bla bla...</p></subsection>
     </section>
@@ -66,7 +66,7 @@
     <section name="TITLE 3">
         <subsection name="SUB TITLE 3.1"><p>bla bla...</p> </subsection>
         <subsection name="SUB TITLE 3.2"><p>bla bla...</p>
-            <h4>SUB SUB TITLE 3.2.1</h4>
+            <h3>SUB SUB TITLE 3.2.1</h3>
         </subsection>
         <subsection name="SUB TITLE 3.3"><p>bla bla...</p></subsection>
     </section>
diff --git a/doxia-site-renderer/src/test/resources/site/xdoc/nestedItems.xml b/doxia-site-renderer/src/test/resources/site/xdoc/nestedItems.xml
index 7573218..d8a7b9f 100644
--- a/doxia-site-renderer/src/test/resources/site/xdoc/nestedItems.xml
+++ b/doxia-site-renderer/src/test/resources/site/xdoc/nestedItems.xml
@@ -27,7 +27,7 @@ under the License.
 
     <body>
         <section name="List Section">
-            <h3>Unordered lists</h3>
+            <h2>Unordered lists</h2>
             <p>
                Below is an unordered list, followed by six paragraphs.
             </p>
@@ -92,7 +92,7 @@ under the License.
                Paragraph 6 below list.
             </p>
 
-            <h3>Ordered lists</h3>
+            <h2>Ordered lists</h2>
             <p>
                Below is an ordered list, followed by six paragraphs.
             </p>
@@ -157,7 +157,7 @@ under the License.
                Paragraph 6 below list.
             </p>
 
-            <h3>Definition lists</h3>
+            <h2>Definition lists</h2>
             <p>
                Below is a definition list, followed by six paragraphs.
             </p>