You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by lt...@apache.org on 2008/07/30 15:27:57 UTC

svn commit: r681011 - in /maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src: main/java/org/apache/maven/doxia/siterenderer/sink/ test/java/org/apache/maven/doxia/siterenderer/ test/site/xdoc/

Author: ltheussl
Date: Wed Jul 30 06:27:55 2008
New Revision: 681011

URL: http://svn.apache.org/viewvc?rev=681011&view=rev
Log:
Adjustment after DOXIA-245: only construct anchor from name if no section id is given

Modified:
    maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java
    maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java
    maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml

Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java?rev=681011&r1=681010&r2=681011&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/main/java/org/apache/maven/doxia/siterenderer/sink/SiteRendererSink.java Wed Jul 30 06:27:55 2008
@@ -24,6 +24,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.swing.text.html.HTML.Attribute;
 import javax.swing.text.html.HTML.Tag;
 
 import org.apache.maven.doxia.module.xhtml.XhtmlSink;
@@ -48,6 +49,8 @@
 
     private List authors = new ArrayList();
 
+    private boolean sectionHasID;
+
     private final Writer writer;
 
     /**
@@ -171,6 +174,8 @@
         if ( level == SECTION_LEVEL_1 || level == SECTION_LEVEL_2 )
         {
             setHeadFlag( true );
+
+            sectionHasID = ( attributes != null && attributes.isDefined ( Attribute.ID.toString() ) );
         }
         else
         {
@@ -195,8 +200,17 @@
             setHeadFlag( false );
 
             writeStartTag( level == SECTION_LEVEL_1 ? Tag.H2 : Tag.H3  );
-            anchor( HtmlTools.encodeId( sectionTitle ) );
-            anchor_();
+
+            if ( !sectionHasID )
+            {
+                anchor( HtmlTools.encodeId( sectionTitle ) );
+                anchor_();
+            }
+            else
+            {
+                sectionHasID = false;
+            }
+
             text( sectionTitle );
             writeEndTag( level == SECTION_LEVEL_1 ? Tag.H2 : Tag.H3 );
         }

Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java?rev=681011&r1=681010&r2=681011&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/java/org/apache/maven/doxia/siterenderer/DefaultSiteRendererTest.java Wed Jul 30 06:27:55 2008
@@ -29,6 +29,7 @@
 import com.gargoylesoftware.htmlunit.html.HtmlDivision;
 import com.gargoylesoftware.htmlunit.html.HtmlElement;
 import com.gargoylesoftware.htmlunit.html.HtmlHeader2;
+import com.gargoylesoftware.htmlunit.html.HtmlHeader3;
 import com.gargoylesoftware.htmlunit.html.HtmlHeader4;
 import com.gargoylesoftware.htmlunit.html.HtmlImage;
 import com.gargoylesoftware.htmlunit.html.HtmlListItem;
@@ -977,6 +978,36 @@
         assertEquals( "./cdc.txt", a.getAttributeValue( "href" ) );
         a = (HtmlAnchor) elementIterator.next();
         assertEquals( "/index.html", a.getAttributeValue( "href" ) );
+
+        div = (HtmlDivision) elementIterator.next();
+        assertEquals( "section", div.getAttributeValue( "class" ) );
+        h2 = (HtmlHeader2) elementIterator.next();
+        assertEquals( "Section without id", h2.asText().trim() );
+        a = (HtmlAnchor) elementIterator.next();
+        assertEquals( "Section_without_id", a.getAttributeValue( "name" ) );
+
+        div = (HtmlDivision) elementIterator.next();
+        assertEquals( "section", div.getAttributeValue( "class" ) );
+        HtmlHeader3 h3 = (HtmlHeader3) elementIterator.next();
+        assertEquals( "Subsection without id", h3.asText().trim() );
+        a = (HtmlAnchor) elementIterator.next();
+        assertEquals( "Subsection_without_id", a.getAttributeValue( "name" ) );
+
+        a = (HtmlAnchor) elementIterator.next();
+        assertEquals( "section-id", a.getAttributeValue( "name" ) );
+        div = (HtmlDivision) elementIterator.next();
+        assertEquals( "section", div.getAttributeValue( "class" ) );
+        h2 = (HtmlHeader2) elementIterator.next();
+        assertEquals( "Section with id", h2.asText().trim() );
+
+        a = (HtmlAnchor) elementIterator.next();
+        assertEquals( "subsection-id", a.getAttributeValue( "name" ) );
+        div = (HtmlDivision) elementIterator.next();
+        assertEquals( "section", div.getAttributeValue( "class" ) );
+        h3 = (HtmlHeader3) elementIterator.next();
+        assertEquals( "Subsection with id", h3.asText().trim() );
+
+        assertFalse( elementIterator.hasNext() );
     }
 
     /**

Modified: maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml
URL: http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml?rev=681011&r1=681010&r2=681011&view=diff
==============================================================================
--- maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml (original)
+++ maven/doxia/doxia-sitetools/trunk/doxia-site-renderer/src/test/site/xdoc/attributes.xml Wed Jul 30 06:27:55 2008
@@ -48,5 +48,16 @@
       </p>
     </section>
 
+    <!-- DOXIA-245 -->
+    <section name="Section without id">
+      <subsection name="Subsection without id">
+      </subsection>
+    </section>
+
+    <section name="Section with id" id="section-id">
+      <subsection name="Subsection with id" id="subsection-id">
+      </subsection>
+    </section>
+
   </body>
 </document>