This is an automated email from the ASF dual-hosted git repository. michaelo pushed a commit to branch DOXIA-668 in repository https://gitbox.apache.org/repos/asf/maven-doxia.git
commit 4c5b22553c69338bfdd52de4cc121a42566c2195 Author: Michael Osipov <[email protected]> AuthorDate: Sat Oct 1 21:38:27 2022 +0200 [DOXIA-675] Replace table alignment attributes with CSS styles One nit remains in the test which will be dropped as soon as attribute filtering has been skimmed. --- .../maven/doxia/parser/Xhtml5BaseParser.java | 14 +---------- .../maven/doxia/sink/impl/Xhtml5BaseSink.java | 12 ++++++---- .../maven/doxia/parser/Xhtml5BaseParserTest.java | 2 +- .../maven/doxia/sink/impl/Xhtml5BaseSinkTest.java | 6 ++--- .../apache/maven/doxia/module/xdoc/XdocSink.java | 1 - .../maven/doxia/module/xdoc/XdocSinkTest.java | 2 +- .../src/test/resources/test.xhtml | 28 +++++++++++----------- 7 files changed, 28 insertions(+), 37 deletions(-) diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/parser/Xhtml5BaseParser.java b/doxia-core/src/main/java/org/apache/maven/doxia/parser/Xhtml5BaseParser.java index 7be70b6b..9f3a4aaf 100644 --- a/doxia-core/src/main/java/org/apache/maven/doxia/parser/Xhtml5BaseParser.java +++ b/doxia-core/src/main/java/org/apache/maven/doxia/parser/Xhtml5BaseParser.java @@ -1219,18 +1219,6 @@ public class Xhtml5BaseParser grid = true; } - String align = parser.getAttributeValue( null, Attribute.ALIGN.toString() ); - int[] justif = {Sink.JUSTIFY_LEFT}; - - if ( "center".equals( align ) ) - { - justif[0] = Sink.JUSTIFY_CENTER; - } - else if ( "right".equals( align ) ) - { - justif[0] = Sink.JUSTIFY_RIGHT; - } - - sink.tableRows( justif, grid ); + sink.tableRows( null, grid ); } } diff --git a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java index b0c5b93c..817156bc 100644 --- a/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java +++ b/doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java @@ -1590,12 +1590,16 @@ public class Xhtml5BaseSink && cellJustifStack != null && !cellJustifStack.isEmpty() && getCellJustif() != null ) { int cellCount = getCellCount(); - if ( cellCount < getCellJustif().length ) + if ( cellCount < getCellJustif().length + && ( attributes == null || !attributes.isDefined( Attribute.STYLE.toString() ) ) ) { Map<Integer, MutableAttributeSet> hash = new HashMap<>(); - hash.put( Sink.JUSTIFY_CENTER, SinkEventAttributeSet.CENTER ); - hash.put( Sink.JUSTIFY_LEFT, SinkEventAttributeSet.LEFT ); - hash.put( Sink.JUSTIFY_RIGHT, SinkEventAttributeSet.RIGHT ); + hash.put( Sink.JUSTIFY_CENTER, + new SinkEventAttributeSet( SinkEventAttributes.STYLE, "text-align: center;" ).unmodifiable() ); + hash.put( Sink.JUSTIFY_LEFT, + new SinkEventAttributeSet( SinkEventAttributes.STYLE, "text-align: left;" ).unmodifiable() ); + hash.put( Sink.JUSTIFY_RIGHT, + new SinkEventAttributeSet( SinkEventAttributes.STYLE, "text-align: right;" ).unmodifiable() ); MutableAttributeSet atts = hash.get( getCellJustif()[cellCount] ); if ( attributes == null ) diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/parser/Xhtml5BaseParserTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/parser/Xhtml5BaseParserTest.java index 05c073f4..466ff7cd 100644 --- a/doxia-core/src/test/java/org/apache/maven/doxia/parser/Xhtml5BaseParserTest.java +++ b/doxia-core/src/test/java/org/apache/maven/doxia/parser/Xhtml5BaseParserTest.java @@ -160,7 +160,7 @@ public class Xhtml5BaseParserTest { // TODO: table caption, see DOXIA-177 - String text = "<table align=\"center\"><tr><th>Header</th></tr><tr><td>cell</td></tr></table>"; + String text = "<table><tr><th>Header</th></tr><tr><td>cell</td></tr></table>"; parser.parse( text, sink ); diff --git a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java index 87ca4109..38af60ac 100644 --- a/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java +++ b/doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSinkTest.java @@ -175,9 +175,9 @@ public class Xhtml5BaseSinkTest assertTrue( actual.contains( "<table class=\"bodyTable\" align=\"right\">" + "<caption>caption3</caption>" ) ); - assertTrue( actual.contains( "<td align=\"center\">cell11</td>" ) ); - assertTrue( actual.contains( "<td align=\"left\">nestedTable1Cell11</td>" ) ); - assertTrue( actual.contains( "<td align=\"right\">nestedTable2Cell11</td>" ) ); + assertTrue( actual.contains( "<td style=\"text-align: center;\">cell11</td>" ) ); + assertTrue( actual.contains( "<td style=\"text-align: left;\">nestedTable1Cell11</td>" ) ); + assertTrue( actual.contains( "<td style=\"text-align: right;\">nestedTable2Cell11</td>" ) ); assertTrue( actual.contains( "<td>nestedTable1Cell22</td>" ) ); assertTrue( actual.contains( "<td>cell22</td>" ) ); } 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 ad6b8cdf..f1402066 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 @@ -480,7 +480,6 @@ public class XdocSink public void tableRow() { MutableAttributeSet att = new SinkEventAttributeSet(); - att.addAttribute( Attribute.VALIGN, "top" ); writeStartTag( TR, 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 64bb5699..c869e0c5 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 @@ -236,7 +236,7 @@ public class XdocSinkTest 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>"; + + "</caption>\n<tr>\n<td style=\"text-align: center;\">" + cell + "</td></tr></table>"; } /** {@inheritDoc} */ diff --git a/doxia-modules/doxia-module-xhtml5/src/test/resources/test.xhtml b/doxia-modules/doxia-module-xhtml5/src/test/resources/test.xhtml index 5b643c70..e98d00c5 100644 --- a/doxia-modules/doxia-module-xhtml5/src/test/resources/test.xhtml +++ b/doxia-modules/doxia-module-xhtml5/src/test/resources/test.xhtml @@ -75,34 +75,34 @@ under the License. <p>--- instead of +-- suppresses the box around verbatim text.</p> <div class="figure"> - <p align="center"><img src="figure.png" alt="figure.png" /></p> - <p align="center"><i>Figure caption</i></p> + <p style="text-align: center;"><img src="figure.png" alt="figure.png" /></p> + <p style="text-align: center;"><i>Figure caption</i></p> </div> -<table align="center" class="bodyTable bodyTableBorder"> +<table style="margin-left: auto; margin-right: auto;" class="bodyTable bodyTableBorder"> <caption>Table caption</caption> <tr class="a"> - <th align="center">Centered<br />cell 1,1</th> - <th align="left">Left-aligned<br />cell 1,2</th> - <th align="right">Right-aligned<br />cell 1,3</th> + <th style="text-align: center;">Centered<br />cell 1,1</th> + <th style="text-align: left;">Left-aligned<br />cell 1,2</th> + <th style="text-align: right;">Right-aligned<br />cell 1,3</th> </tr> <tr class="b"> - <td align="center">cell 2,1</td> - <td align="left">cell 2,2</td> - <td align="right">cell 2,3</td> + <td style="text-align: center;">cell 2,1</td> + <td style="text-align: left;">cell 2,2</td> + <td style="text-align: right;">cell 2,3</td> </tr> </table> <p>No grid, no caption:</p> -<table align="center" class="bodyTable"> +<table style="margin-left: auto; margin-right: auto;" class="bodyTable"> <tr class="a"> - <td align="center">cell</td> - <td align="center">cell</td> + <td style="text-align: center;">cell</td> + <td style="text-align: center;">cell</td> </tr> <tr class="b"> - <td align="center">cell</td> - <td align="center">cell</td> + <td style="text-align: center;">cell</td> + <td style="text-align: center;">cell</td> </tr> </table>
