michael-o commented on code in PR #98:
URL: https://github.com/apache/maven-doxia/pull/98#discussion_r878669535
##########
doxia-core/src/main/java/org/apache/maven/doxia/sink/impl/Xhtml5BaseSink.java:
##########
@@ -1567,21 +1567,24 @@ public void tableRow()
@Override
public void tableRow( SinkEventAttributes attributes )
{
- MutableAttributeSet att = new SinkEventAttributeSet();
+ MutableAttributeSet atts = SinkUtils.filterAttributes(
+ attributes, SinkUtils.SINK_TR_ATTRIBUTES );
- if ( evenTableRow )
+ if ( atts == null )
{
- att.addAttribute( Attribute.CLASS, "a" );
+ atts = new SinkEventAttributeSet();
}
- else
+
+ String rowClass = evenTableRow ? "a" : "b";
+ if ( atts.isDefined( Attribute.CLASS.toString() ) )
{
- att.addAttribute( Attribute.CLASS, "b" );
+ String givenRowClass = (String) atts.getAttribute(
Attribute.CLASS.toString() );
+ rowClass = givenRowClass + " " + rowClass;
Review Comment:
I see and understand your usecase. We have these options:
* Always append default class (the internal implementation might employ
logic to determine the class name which is impossible to do externally)
* If external class attribute is provided, take it as-is, don't add default
class
* Merge and avoid duplicates
For me personally, if you have decided to provide attributes which are being
set in the method called you are making a deliberate decision to ignore the set
values. One of the problems is that class is a merge attribute while others are
simply replace. That makes it complex. WDYT?
@hboutemy Opinion?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]