Author: ltheussl Date: Wed Oct 10 11:34:11 2007 New Revision: 583572 URL: http://svn.apache.org/viewvc?rev=583572&view=rev Log: Add <code>, <strong>, <em> and <samp> tags to Xdoc parser. Small code re-shuffling to make xdoc and xhtml easier comparable.
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java?rev=583572&r1=583571&r2=583572&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocParser.java Wed Oct 10 11:34:11 2007 @@ -257,15 +257,16 @@ { sink.head(); } - else if ( parser.getName().equals( Tag.B.toString() ) ) + else if ( ( parser.getName().equals( Tag.B.toString() ) ) || ( parser.getName().equals( Tag.STRONG.toString() ) ) ) { sink.bold(); } - else if ( parser.getName().equals( Tag.I.toString() ) ) + else if ( ( parser.getName().equals( Tag.I.toString() ) ) || ( parser.getName().equals( Tag.EM.toString() ) ) ) { sink.italic(); } - else if ( parser.getName().equals( Tag.TT.toString() ) ) + else if ( ( parser.getName().equals( Tag.CODE.toString() ) ) || ( parser.getName().equals( Tag.SAMP.toString() ) ) || + ( parser.getName().equals( Tag.TT.toString() ) ) ) { sink.monospaced(); } @@ -515,15 +516,16 @@ { sink.head_(); } - else if ( parser.getName().equals( Tag.B.toString() ) ) + else if ( ( parser.getName().equals( Tag.B.toString() ) ) || ( parser.getName().equals( Tag.STRONG.toString() ) ) ) { sink.bold_(); } - else if ( parser.getName().equals( Tag.I.toString() ) ) + else if ( ( parser.getName().equals( Tag.I.toString() ) ) || ( parser.getName().equals( Tag.EM.toString() ) ) ) { sink.italic_(); } - else if ( parser.getName().equals( Tag.TT.toString() ) ) + else if ( ( parser.getName().equals( Tag.CODE.toString() ) ) || ( parser.getName().equals( Tag.SAMP.toString() ) ) || + ( parser.getName().equals( Tag.TT.toString() ) ) ) { sink.monospaced_(); } Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java?rev=583572&r1=583571&r2=583572&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-xdoc/src/main/java/org/apache/maven/doxia/module/xdoc/XdocSink.java Wed Oct 10 11:34:11 2007 @@ -26,10 +26,10 @@ import javax.swing.text.html.HTML.Attribute; import javax.swing.text.html.HTML.Tag; +import org.apache.maven.doxia.parser.Parser; import org.apache.maven.doxia.sink.AbstractXmlSink; import org.apache.maven.doxia.util.HtmlTools; import org.apache.maven.doxia.util.LineBreaker; -import org.apache.maven.doxia.parser.Parser; /** * A doxia Sink which produces an xdoc model. @@ -94,12 +94,20 @@ // ---------------------------------------------------------------------- /** + * @return the current buffer + */ + protected StringBuffer getBuffer() + { + return buffer; + } + + /** * Reset all variables. */ protected void resetState() { headFlag = false; - buffer = new StringBuffer(); + resetBuffer(); boxedFlag = false; verbatimFlag = false; cellJustif = null; @@ -107,6 +115,14 @@ } /** + * Reset the buffer. + */ + protected void resetBuffer() + { + buffer = new StringBuffer(); + } + + /** * [EMAIL PROTECTED] * @see XdocMarkup#DOCUMENT_TAG * @see XdocMarkup#PROPERTIES_TAG @@ -147,7 +163,7 @@ writeStartTag( Tag.TITLE ); content( buffer.toString() ); writeEndTag( Tag.TITLE ); - buffer = new StringBuffer(); + resetBuffer(); } } @@ -162,7 +178,7 @@ writeStartTag( AUTHOR_TAG ); content( buffer.toString() ); writeEndTag( AUTHOR_TAG ); - buffer = new StringBuffer(); + resetBuffer(); } } @@ -177,7 +193,7 @@ writeStartTag( DATE_TAG ); content( buffer.toString() ); writeEndTag( DATE_TAG ); - buffer = new StringBuffer(); + resetBuffer(); } } @@ -207,7 +223,7 @@ } // ----------------------------------------------------------------------- - // + // Sections // ----------------------------------------------------------------------- /** [EMAIL PROTECTED] */ @@ -750,6 +766,7 @@ public void tableRow_() { writeEndTag( Tag.TR ); + cellCount = 0; } @@ -828,7 +845,9 @@ public void tableCell_( boolean headerRow ) { Tag t = ( headerRow ? Tag.TH : Tag.TD ); + writeEndTag( t ); + ++cellCount; } Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java?rev=583572&r1=583571&r2=583572&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlParser.java Wed Oct 10 11:34:11 2007 @@ -32,8 +32,7 @@ import org.codehaus.plexus.util.xml.pull.XmlPullParserException; /** - * Parse an xhtml model and emit events into the specified doxia - * Sink. + * Parse an xhtml model and emit events into the specified doxia Sink. * * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a> * @version $Id$ @@ -116,11 +115,6 @@ { sink.verbatim( true ); } - else if ( ( parser.getName().equals( Tag.CODE.toString() ) ) || ( parser.getName().equals( Tag.SAMP.toString() ) ) || - ( parser.getName().equals( Tag.TT.toString() ) ) ) - { - sink.monospaced(); - } else if ( parser.getName().equals( Tag.UL.toString() ) ) { sink.list(); @@ -145,6 +139,11 @@ { sink.italic(); } + else if ( ( parser.getName().equals( Tag.CODE.toString() ) ) || ( parser.getName().equals( Tag.SAMP.toString() ) ) || + ( parser.getName().equals( Tag.TT.toString() ) ) ) + { + sink.monospaced(); + } else if ( parser.getName().equals( Tag.A.toString() ) ) { String href = parser.getAttributeValue( null, Attribute.HREF.toString() ); @@ -176,14 +175,17 @@ } else if ( parser.getName().equals( Tag.IMG.toString() ) ) { - sink.figure(); String src = parser.getAttributeValue( null, Attribute.SRC.toString() ); String title = parser.getAttributeValue( null, Attribute.TITLE.toString() ); String alt = parser.getAttributeValue( null, Attribute.ALT.toString() ); + + sink.figure(); + if ( src != null ) { sink.figureGraphics( src ); } + if ( title != null ) { sink.figureCaption(); @@ -196,6 +198,7 @@ sink.text( alt ); sink.figureCaption_(); } + sink.figure_(); } // ---------------------------------------------------------------------- @@ -252,11 +255,6 @@ { sink.verbatim_(); } - else if ( ( parser.getName().equals( Tag.CODE.toString() ) ) || ( parser.getName().equals( Tag.SAMP.toString() ) ) || - ( parser.getName().equals( Tag.TT.toString() ) ) ) - { - sink.monospaced_(); - } else if ( parser.getName().equals( Tag.UL.toString() ) ) { sink.list_(); @@ -280,6 +278,11 @@ else if ( ( parser.getName().equals( Tag.I.toString() ) ) || ( parser.getName().equals( Tag.EM.toString() ) ) ) { sink.italic_(); + } + else if ( ( parser.getName().equals( Tag.CODE.toString() ) ) || ( parser.getName().equals( Tag.SAMP.toString() ) ) || + ( parser.getName().equals( Tag.TT.toString() ) ) ) + { + sink.monospaced_(); } else if ( parser.getName().equals( Tag.A.toString() ) ) { Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java?rev=583572&r1=583571&r2=583572&view=diff ============================================================================== --- maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java (original) +++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-xhtml/src/main/java/org/apache/maven/doxia/module/xhtml/XhtmlSink.java Wed Oct 10 11:34:11 2007 @@ -19,14 +19,6 @@ * under the License. */ -import org.apache.maven.doxia.module.xhtml.decoration.render.RenderingContext; -import org.apache.maven.doxia.parser.Parser; -import org.apache.maven.doxia.sink.AbstractXmlSink; -import org.apache.maven.doxia.sink.Sink; -import org.apache.maven.doxia.sink.StructureSink; -import org.apache.maven.doxia.util.HtmlTools; -import org.codehaus.plexus.util.StringUtils; - import java.io.PrintWriter; import java.io.Writer; import java.util.Map; @@ -36,6 +28,14 @@ import javax.swing.text.html.HTML.Attribute; import javax.swing.text.html.HTML.Tag; +import org.apache.maven.doxia.module.xhtml.decoration.render.RenderingContext; +import org.apache.maven.doxia.parser.Parser; +import org.apache.maven.doxia.sink.AbstractXmlSink; +import org.apache.maven.doxia.sink.Sink; +import org.apache.maven.doxia.sink.StructureSink; +import org.apache.maven.doxia.util.HtmlTools; +import org.codehaus.plexus.util.StringUtils; + /** * Xhtml sink implementation. * @@ -125,7 +125,7 @@ } /** - * Reset all the Sink state. + * Reset all variables. */ protected void resetState() { @@ -223,13 +223,20 @@ } } - /** [EMAIL PROTECTED] */ + /** + * [EMAIL PROTECTED] + * @see javax.swing.text.html.HTML.Tag#BODY + */ public void body() { writeStartTag( Tag.BODY ); } - /** [EMAIL PROTECTED] */ + /** + * [EMAIL PROTECTED] + * @see javax.swing.text.html.HTML.Tag#BODY + * @see javax.swing.text.html.HTML.Tag#HTML + */ public void body_() { writeEndTag( Tag.BODY ); @@ -248,52 +255,34 @@ */ public void section1() { - MutableAttributeSet att = new SimpleAttributeSet(); - att.addAttribute( Attribute.CLASS, "section" ); - - writeStartTag( Tag.DIV, att ); + onSection(); } /** - * The default class style is <code>section</code>. - * * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#DIV + * @see javax.swing.text.html.HTML.Tag#H2 */ - public void section2() + public void sectionTitle1() { - MutableAttributeSet att = new SimpleAttributeSet(); - att.addAttribute( Attribute.CLASS, "section" ); - - writeStartTag( Tag.DIV, att ); + writeStartTag( Tag.H2 ); } /** - * The default class style is <code>section</code>. - * * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#DIV + * @see javax.swing.text.html.HTML.Tag#H2 */ - public void section3() + public void sectionTitle1_() { - MutableAttributeSet att = new SimpleAttributeSet(); - att.addAttribute( Attribute.CLASS, "section" ); - - writeStartTag( Tag.DIV, att ); + writeEndTag( Tag.H2 ); } /** - * The default class style is <code>section</code>. - * * [EMAIL PROTECTED] * @see javax.swing.text.html.HTML.Tag#DIV */ - public void section4() + public void section1_() { - MutableAttributeSet att = new SimpleAttributeSet(); - att.addAttribute( Attribute.CLASS, "section" ); - - writeStartTag( Tag.DIV, att ); + writeEndTag( Tag.DIV ); } /** @@ -302,147 +291,164 @@ * [EMAIL PROTECTED] * @see javax.swing.text.html.HTML.Tag#DIV */ - public void section5() + public void section2() { - MutableAttributeSet att = new SimpleAttributeSet(); - att.addAttribute( Attribute.CLASS, "section" ); - - writeStartTag( Tag.DIV, att ); + onSection(); } /** * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#DIV + * @see javax.swing.text.html.HTML.Tag#H3 */ - public void section1_() + public void sectionTitle2() { - writeEndTag( Tag.DIV ); + writeStartTag( Tag.H3 ); } /** * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#DIV + * @see javax.swing.text.html.HTML.Tag#H3 */ - public void section2_() + public void sectionTitle2_() { - writeEndTag( Tag.DIV ); + writeEndTag( Tag.H3 ); } /** * [EMAIL PROTECTED] * @see javax.swing.text.html.HTML.Tag#DIV */ - public void section3_() + public void section2_() { writeEndTag( Tag.DIV ); } /** + * The default class style is <code>section</code>. + * * [EMAIL PROTECTED] * @see javax.swing.text.html.HTML.Tag#DIV */ - public void section4_() + public void section3() { - writeEndTag( Tag.DIV ); + onSection(); } /** * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#DIV + * @see javax.swing.text.html.HTML.Tag#H4 */ - public void section5_() + public void sectionTitle3() { - writeEndTag( Tag.DIV ); + writeStartTag( Tag.H4 ); } /** * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#H2 + * @see javax.swing.text.html.HTML.Tag#H4 */ - public void sectionTitle1() + public void sectionTitle3_() { - writeStartTag( Tag.H2 ); + writeEndTag( Tag.H4 ); } /** * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#H2 + * @see javax.swing.text.html.HTML.Tag#DIV */ - public void sectionTitle1_() + public void section3_() { - writeEndTag( Tag.H2 ); + writeEndTag( Tag.DIV ); } /** + * The default class style is <code>section</code>. + * * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#H3 + * @see javax.swing.text.html.HTML.Tag#DIV */ - public void sectionTitle2() + public void section4() { - writeStartTag( Tag.H3 ); + onSection(); } /** * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#H3 + * @see javax.swing.text.html.HTML.Tag#H5 */ - public void sectionTitle2_() + public void sectionTitle4() { - writeEndTag( Tag.H3 ); + writeStartTag( Tag.H5 ); } /** * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#H4 + * @see javax.swing.text.html.HTML.Tag#H5 */ - public void sectionTitle3() + public void sectionTitle4_() { - writeStartTag( Tag.H4 ); + writeEndTag( Tag.H5 ); } /** * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#H4 + * @see javax.swing.text.html.HTML.Tag#DIV */ - public void sectionTitle3_() + public void section4_() { - writeEndTag( Tag.H4 ); + writeEndTag( Tag.DIV ); } /** + * The default class style is <code>section</code>. + * * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#H5 + * @see javax.swing.text.html.HTML.Tag#DIV */ - public void sectionTitle4() + public void section5() { - writeStartTag( Tag.H5 ); + onSection(); } /** * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#H5 + * @see javax.swing.text.html.HTML.Tag#H6 */ - public void sectionTitle4_() + public void sectionTitle5() { - writeEndTag( Tag.H5 ); + writeStartTag( Tag.H6 ); } /** * [EMAIL PROTECTED] * @see javax.swing.text.html.HTML.Tag#H6 */ - public void sectionTitle5() + public void sectionTitle5_() { - writeStartTag( Tag.H6 ); + writeEndTag( Tag.H6 ); } /** * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#H6 + * @see javax.swing.text.html.HTML.Tag#DIV */ - public void sectionTitle5_() + public void section5_() { - writeEndTag( Tag.H6 ); + writeEndTag( Tag.DIV ); + } + + /** + * Starts a section. + * + * @param depth The level of the section. + * @see javax.swing.text.html.HTML.Tag#DIV + */ + private void onSection() + { + MutableAttributeSet att = new SimpleAttributeSet(); + att.addAttribute( Attribute.CLASS, "section" ); + + writeStartTag( Tag.DIV, att ); } // ---------------------------------------------------------------------- @@ -609,6 +615,40 @@ /** * [EMAIL PROTECTED] + * @see javax.swing.text.html.HTML.Tag#IMG + */ + public void figure() + { + write( String.valueOf( LESS_THAN ) + Tag.IMG ); + } + + /** [EMAIL PROTECTED] */ + public void figure_() + { + write( String.valueOf( SPACE ) + String.valueOf( SLASH ) + String.valueOf( GREATER_THAN ) ); + } + + /** [EMAIL PROTECTED] */ + public void figureGraphics( String name ) + { + write( String.valueOf( SPACE ) + Attribute.SRC + String.valueOf( EQUAL ) + String.valueOf( QUOTE ) + name + + String.valueOf( QUOTE ) ); + } + + /** [EMAIL PROTECTED] */ + public void figureCaption() + { + write( String.valueOf( SPACE ) + Attribute.ALT + String.valueOf( EQUAL ) + String.valueOf( QUOTE ) ); + } + + /** [EMAIL PROTECTED] */ + public void figureCaption_() + { + write( String.valueOf( QUOTE ) ); + } + + /** + * [EMAIL PROTECTED] * @see javax.swing.text.html.HTML.Tag#P */ public void paragraph() @@ -778,6 +818,8 @@ } /** + * Starts a table cell. + * * @param headerRow true if it is an header row * @see javax.swing.text.html.HTML.Tag#TH * @see javax.swing.text.html.HTML.Tag#TD @@ -797,12 +839,12 @@ justif = "right"; break; case Parser.JUSTIFY_CENTER: + default: justif = "center"; break; } } - Tag t = ( headerRow ? Tag.TH : Tag.TD ); MutableAttributeSet att = null; @@ -885,6 +927,8 @@ } /** + * Ends a table cell. + * * @param headerRow true if it is an header row * @see javax.swing.text.html.HTML.Tag#TH * @see javax.swing.text.html.HTML.Tag#TD @@ -904,6 +948,7 @@ */ public void tableCaption() { + // TODO: tableCaption should be written before tableRows writeStartTag( Tag.CAPTION ); } @@ -918,40 +963,6 @@ /** * [EMAIL PROTECTED] - * @see javax.swing.text.html.HTML.Tag#IMG - */ - public void figure() - { - write( String.valueOf( LESS_THAN ) + Tag.IMG ); - } - - /** [EMAIL PROTECTED] */ - public void figure_() - { - write( String.valueOf( SPACE ) + String.valueOf( SLASH ) + String.valueOf( GREATER_THAN ) ); - } - - /** [EMAIL PROTECTED] */ - public void figureCaption() - { - write( String.valueOf( SPACE ) + Attribute.ALT + String.valueOf( EQUAL ) + String.valueOf( QUOTE ) ); - } - - /** [EMAIL PROTECTED] */ - public void figureCaption_() - { - write( String.valueOf( QUOTE ) ); - } - - /** [EMAIL PROTECTED] */ - public void figureGraphics( String name ) - { - write( String.valueOf( SPACE ) + Attribute.SRC + String.valueOf( EQUAL ) + String.valueOf( QUOTE ) + name - + String.valueOf( QUOTE ) ); - } - - /** - * [EMAIL PROTECTED] * @see javax.swing.text.html.HTML.Tag#A */ public void anchor( String name ) @@ -1180,16 +1191,13 @@ { buffer.append( text ); } + else if ( verbatimFlag ) + { + verbatimContent( text ); + } else { - if ( verbatimFlag ) - { - verbatimContent( text ); - } - else - { - content( text ); - } + content( text ); } }