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 <micha...@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>