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>
 

Reply via email to