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 2022/08/04 20:08:56 UTC
[maven-doxia] 01/01: [DOXIA-670] Remove code duplication in XdocSink
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch DOXIA-670
in repository https://gitbox.apache.org/repos/asf/maven-doxia.git
commit d4fa4717b21dcb5c881e58316d03e75cccff600b
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Thu Aug 4 22:08:24 2022 +0200
[DOXIA-670] Remove code duplication in XdocSink
---
.../org/apache/maven/doxia/sink/impl/TextSink.java | 4 +-
.../apache/maven/doxia/module/xdoc/XdocSink.java | 138 ---------------------
.../maven/doxia/module/xdoc/XdocSinkTest.java | 19 +--
.../doxia-module-xdoc/src/test/resources/test.xml | 4 +-
4 files changed, 17 insertions(+), 148 deletions(-)
diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/TextSink.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/TextSink.java
index b5a34f76..f1455451 100644
--- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/TextSink.java
+++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/TextSink.java
@@ -968,7 +968,9 @@ public class TextSink
attributes.getAttribute( SinkEventAttributes.DECORATION ).toString() );
}
- write( "begin:verbatim, boxed: " + boxed );
+ // TODO Cannot properly detect this when Xdoc is parsed
+ // write( "begin:verbatim, boxed: " + boxed );
+ write( "begin:verbatim" );
}
@Override
diff --git a/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java b/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java
index de012612..5634df22 100644
--- a/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java
+++ b/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java
@@ -382,119 +382,6 @@ public class XdocSink
//
// -----------------------------------------------------------------------
- /**
- * {@inheritDoc}
- *
- * @see XdocMarkup#SOURCE_TAG
- * @see javax.swing.text.html.HTML.Tag#PRE
- * @param attributes a {@link org.apache.maven.doxia.sink.SinkEventAttributes} object.
- */
- public void verbatim( SinkEventAttributes attributes )
- {
- setVerbatimFlag( true );
-
- MutableAttributeSet atts = SinkUtils.filterAttributes(
- attributes, SinkUtils.SINK_VERBATIM_ATTRIBUTES );
-
-
- if ( atts == null )
- {
- atts = new SinkEventAttributeSet();
- }
-
- boolean boxed = false;
-
- if ( atts.isDefined( SinkEventAttributes.DECORATION ) )
- {
- boxed = "boxed".equals( atts.getAttribute( SinkEventAttributes.DECORATION ) );
- }
-
- boxedFlag = boxed;
- atts.removeAttribute( SinkEventAttributes.DECORATION );
-
- if ( boxed )
- {
- writeStartTag( SOURCE_TAG, atts );
- }
- else
- {
- atts.removeAttribute( Attribute.ALIGN.toString() );
- writeStartTag( PRE, atts );
- }
- }
-
- /**
- * {@inheritDoc}
- *
- * @see XdocMarkup#SOURCE_TAG
- * @see javax.swing.text.html.HTML.Tag#PRE
- */
- public void verbatim_()
- {
- if ( boxedFlag )
- {
- writeEndTag( SOURCE_TAG );
- }
- else
- {
- writeEndTag( PRE );
- }
-
- setVerbatimFlag( false );
-
- boxedFlag = false;
- }
-
- /**
- * The default align is <code>center</code>.
- *
- * {@inheritDoc}
- * @see javax.swing.text.html.HTML.Tag#TABLE
- */
- public void tableRows( int[] justification, boolean grid )
- {
- // similar to super.tableRows( justification, grid ) but without class.
-
- this.tableRows = true;
-
- setCellJustif( justification );
-
- if ( this.tableAttributes == null )
- {
- this.tableAttributes = new SinkEventAttributeSet( 0 );
- }
-
- MutableAttributeSet att = new SinkEventAttributeSet();
-
- if ( !tableAttributes.isDefined( Attribute.BORDER.toString() ) )
- {
- att.addAttribute( Attribute.BORDER, ( grid ? "1" : "0" ) );
- }
-
- att.addAttributes( tableAttributes );
-
- tableAttributes.removeAttributes( tableAttributes );
-
- writeStartTag( TABLE, att );
- }
-
- /**
- * The default valign is <code>top</code>.
- *
- * {@inheritDoc}
- *
- * @see javax.swing.text.html.HTML.Tag#TR
- */
- public void tableRow()
- {
- MutableAttributeSet att = new SinkEventAttributeSet();
- att.addAttribute( Attribute.VALIGN, "top" );
-
- writeStartTag( TR, att );
-
- setCellCount( 0 );
- }
-
/**
* <p>close.</p>
*/
@@ -505,31 +392,6 @@ public class XdocSink
init();
}
- /**
- * Adds a link with an optional target.
- *
- * @param name the link name.
- * @param target the link target, may be null.
- */
- public void link( String name, String target )
- {
- if ( isHeadFlag() )
- {
- return;
- }
-
- MutableAttributeSet att = new SinkEventAttributeSet();
-
- att.addAttribute( Attribute.HREF, HtmlTools.escapeHTML( name ) );
-
- if ( target != null )
- {
- att.addAttribute( Attribute.TARGET, target );
- }
-
- writeStartTag( A, att );
- }
-
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
diff --git a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
index 3e8613f8..f40dfd55 100644
--- a/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
+++ b/doxia-modules/doxia-module-xdoc/src/test/java/org/apache/maven/doxia/module/xdoc/XdocSinkTest.java
@@ -20,6 +20,7 @@ package org.apache.maven.doxia.module.xdoc;
*/
import org.apache.maven.doxia.sink.Sink;
+import org.apache.maven.doxia.sink.SinkEventAttributes;
import org.apache.maven.doxia.sink.impl.AbstractSinkTest;
import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
import org.junit.jupiter.api.Test;
@@ -27,6 +28,8 @@ import org.junit.jupiter.api.Test;
import java.io.StringWriter;
import java.io.Writer;
+import javax.swing.text.html.HTML.Attribute;
+
import static org.apache.maven.doxia.util.HtmlTools.escapeHTML;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -232,8 +235,8 @@ public class XdocSinkTest
/** {@inheritDoc} */
protected String getTableBlock( String cell, String caption )
{
- return "<table border=\"0\"><caption>" + caption
- + "</caption>\n<tr valign=\"top\">\n<td align=\"center\">" + cell + "</td></tr></table>";
+ return "<table border=\"0\" class=\"bodyTable\"><caption>" + caption
+ + "</caption>\n<tr class=\"a\">\n<td align=\"center\">" + cell + "</td></tr></table>";
}
/** {@inheritDoc} */
@@ -275,7 +278,7 @@ public class XdocSinkTest
/** {@inheritDoc} */
protected String getVerbatimBlock( String text )
{
- return "<source>" + text + "</source>";
+ return "<div class=\"source\">\n<pre>" + text + "</pre></div>";
}
/** {@inheritDoc} */
@@ -400,7 +403,7 @@ public class XdocSinkTest
sink.close();
}
- assertEquals( "<pre></pre><source></source>\n<pre width=\"20%\"></pre>", writer.toString() );
+ assertEquals( "<div>\n<pre></pre></div>\n<div class=\"source\">\n<pre></pre></div>\n<div>\n<pre width=\"20%\"></pre></div>", writer.toString() );
}
/**
@@ -416,9 +419,11 @@ public class XdocSinkTest
{
sink = new XdocSink( writer );
- sink.link( "name", (String) null );
+ sink.link( "name" );
sink.link_();
- sink.link( "name", "nirvana" );
+ SinkEventAttributes attrs = new SinkEventAttributeSet();
+ attrs.addAttribute( Attribute.TARGET, "nirvana" );
+ sink.link( "name", attrs );
sink.link_();
}
finally
@@ -426,7 +431,7 @@ public class XdocSinkTest
sink.close();
}
- assertEquals( "<a href=\"name\"></a><a href=\"name\" target=\"nirvana\"></a>", writer.toString() );
+ assertEquals( "<a href=\"name\"></a><a target=\"nirvana\" href=\"name\"></a>", writer.toString() );
}
/** {@inheritDoc} */
diff --git a/doxia-modules/doxia-module-xdoc/src/test/resources/test.xml b/doxia-modules/doxia-module-xdoc/src/test/resources/test.xml
index 8acb9059..15383ccf 100644
--- a/doxia-modules/doxia-module-xdoc/src/test/resources/test.xml
+++ b/doxia-modules/doxia-module-xdoc/src/test/resources/test.xml
@@ -51,7 +51,7 @@
<li>List item 3. Force end of list:</li>
</ul>
- <source>Verbatim text not contained in list item 3</source>
+ <div class="source"><pre>Verbatim text not contained in list item 3</pre></div>
<ol style="list-style-type: decimal">
<li>Numbered item 1. <ol style="list-style-type: upper-alpha">
@@ -72,7 +72,7 @@
<dt>
<b>Defined term 2</b>
</dt>
- <dd>of definition list. <source>Verbatim text in a box </source>
+ <dd>of definition list. <div class="source"><pre>Verbatim text in a box</pre></div>
</dd>
</dl>