Author: brett
Date: Thu Dec 29 16:57:31 2005
New Revision: 359951
URL: http://svn.apache.org/viewcvs?rev=359951&view=rev
Log:
add abiity to use leading || for table headers
Modified:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
Modified:
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
URL:
http://svn.apache.org/viewcvs/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java?rev=359951&r1=359950&r2=359951&view=diff
==============================================================================
---
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
(original)
+++
maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/apt/AptParser.java
Thu Dec 29 16:57:31 2005
@@ -1755,6 +1755,7 @@
int rows = 0;
int columns = 0;
StringBuffer[] cells = null;
+ boolean[] headers = null;
boolean grid = false;
AptParser.this.sink.table();
@@ -1790,14 +1791,16 @@
justification = parseJustification( line, lineLength );
columns = justification.length;
cells = new StringBuffer[columns];
+ headers = new boolean[columns];
for ( i = 0; i < columns; ++i )
{
cells[i] = new StringBuffer();
+ headers[i] = false;
}
}
else
{
- if ( traverseRow( cells ) )
+ if ( traverseRow( cells, headers ) )
{
++rows;
}
@@ -1812,13 +1815,29 @@
AptParser.this.sink.tableRows( justification, grid );
}
- line = replaceAll( ( grid ? line.substring( 1 ) : line ),
"\\|", "\\174" );
- StringTokenizer cellLines = new StringTokenizer( line, "|"
);
+ line = replaceAll( line, "\\|", "\\174" );
+
+ StringTokenizer cellLines = new StringTokenizer( line,
"|", true );
i = 0;
+ boolean processedGrid = false;
while ( cellLines.hasMoreTokens() )
{
String cellLine = cellLines.nextToken();
+ if ( "|".equals( cellLine ) )
+ {
+ if ( processedGrid )
+ {
+ headers[i] = true;
+ }
+ else
+ {
+ processedGrid = true;
+ headers[i] = false;
+ }
+ continue;
+ }
+ processedGrid = false;
cellLine = replaceAll( cellLine, "\\ ", "\\240" );
cellLine = cellLine.trim();
@@ -1901,7 +1920,7 @@
return justification;
}
- private boolean traverseRow( StringBuffer[] cells )
+ private boolean traverseRow( StringBuffer[] cells, boolean[] headers )
throws AptParseException
{
// Skip empty row (a decorative line).
@@ -1921,13 +1940,27 @@
for ( int i = 0; i < cells.length; ++i )
{
StringBuffer cell = cells[i];
- AptParser.this.sink.tableCell();
+ if ( headers[i] )
+ {
+ AptParser.this.sink.tableHeaderCell();
+ }
+ else
+ {
+ AptParser.this.sink.tableCell();
+ }
if ( cell.length() > 0 )
{
AptParser.doTraverseText( cell.toString(), 0,
cell.length(), AptParser.this.sink );
cell.setLength( 0 );
}
- AptParser.this.sink.tableCell_();
+ if ( headers[i] )
+ {
+ AptParser.this.sink.tableHeaderCell_();
+ }
+ else
+ {
+ AptParser.this.sink.tableCell_();
+ }
}
AptParser.this.sink.tableRow_();
}