You are viewing a plain text version of this content. The canonical link for it is here.
Posted to doxia-commits@maven.apache.org by lt...@apache.org on 2009/06/04 14:20:56 UTC
svn commit: r781717 - in /maven/doxia/doxia/trunk:
doxia-book/src/test/java/org/apache/maven/doxia/book/services/renderer/docbook/
doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/
doxia-modules/doxia-module...
Author: ltheussl
Date: Thu Jun 4 12:20:55 2009
New Revision: 781717
URL: http://svn.apache.org/viewvc?rev=781717&view=rev
Log:
[DOXIA-184, DOXIA-321] Fix figure handling in docbook parser and sink
Modified:
maven/doxia/doxia/trunk/doxia-book/src/test/java/org/apache/maven/doxia/book/services/renderer/docbook/DocBookBookSinkTest.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookSinkTest.java
Modified: maven/doxia/doxia/trunk/doxia-book/src/test/java/org/apache/maven/doxia/book/services/renderer/docbook/DocBookBookSinkTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-book/src/test/java/org/apache/maven/doxia/book/services/renderer/docbook/DocBookBookSinkTest.java?rev=781717&r1=781716&r2=781717&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-book/src/test/java/org/apache/maven/doxia/book/services/renderer/docbook/DocBookBookSinkTest.java (original)
+++ maven/doxia/doxia/trunk/doxia-book/src/test/java/org/apache/maven/doxia/book/services/renderer/docbook/DocBookBookSinkTest.java Thu Jun 4 12:20:55 2009
@@ -21,6 +21,8 @@
import java.io.Writer;
+import java.util.Locale;
+
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.SimpleAttributeSet;
@@ -29,6 +31,9 @@
import org.apache.maven.doxia.sink.Sink;
import org.apache.maven.doxia.sink.SinkUtils;
+import org.apache.maven.doxia.util.DoxiaUtils;
+import org.codehaus.plexus.util.FileUtils;
+
/**
* Test the book path of the DockBook sink
* @author Dave Syer
@@ -375,10 +380,11 @@
/** {@inheritDoc} */
protected String getFigureBlock( String source, String caption )
{
- // TODO: fix source
- return "<figure><title>" + caption
- + "</title><mediaobject><imageobject><imagedata fileref=\"figure.jpg.jpeg\" format=\"JPEG\" /></imageobject></mediaobject>"
- + "</figure>";
+ String format = FileUtils.extension( source ).toUpperCase( Locale.ENGLISH );
+
+ return "<mediaobject><imageobject>"
+ + "<imagedata fileref=\"" + source + "\" format=\"" + format + "\" />"
+ + "</imageobject><caption><para>" + caption + "</para></caption></mediaobject>";
}
/** {@inheritDoc} */
@@ -422,13 +428,14 @@
/** {@inheritDoc} */
protected String getAnchorBlock( String anchor )
{
- return "<anchor id=\"" + anchor + "\" />" + anchor;
+ return "<anchor id=\"" + anchor + "\" />" + anchor + "<!-- anchor_end -->";
}
/** {@inheritDoc} */
protected String getLinkBlock( String link, String text )
{
- return "<link linkend=\"" + link + "\">" + text + "</link>";
+ String linkend = DoxiaUtils.isInternalLink( link ) ? link.substring( 1 ) : link;
+ return "<link linkend=\"" + linkend + "\">" + text + "</link>";
}
/** {@inheritDoc} */
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java?rev=781717&r1=781716&r2=781717&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java (original)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java Thu Jun 4 12:20:55 2009
@@ -176,27 +176,30 @@
{
sink.definedTerm();
}
- else if ( parser.getName().equals( SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
+ else if ( parser.getName().equals( SimplifiedDocbookMarkup.MEDIAOBJECT_TAG.toString() ) )
{
handleFigureStart( sink, parser);
}
- else if ( parser.getName().equals( SimplifiedDocbookMarkup.IMAGEOBJECT_TAG.toString() ) )
+ else if ( parser.getName().equals( SimplifiedDocbookMarkup.IMAGEOBJECT_TAG.toString() )
+ || parser.getName().equals( SimplifiedDocbookMarkup.FIGURE_TAG.toString() )
+ || parser.getName().equals( SimplifiedDocbookMarkup.THEAD_TAG.toString() )
+ || parser.getName().equals( SimplifiedDocbookMarkup.ARTICLEINFO_TAG.toString() ) )
{
- handleImageObjectStart( parser, sink );
+ parent.push( parser.getName() );
+ }
+ else if ( parser.getName().equals( SimplifiedDocbookMarkup.IMAGEDATA_TAG.toString() ) )
+ {
+ handleImageDataStart( parser, sink );
}
else if ( parser.getName().equals( SimplifiedDocbookMarkup.CAPTION_TAG.toString() ) )
{
- handleCaptionStart(sink);
+ handleCaptionStart( parser, sink );
}
else if ( parser.getName().equals( SimplifiedDocbookMarkup.TABLE_TAG.toString() )
|| parser.getName().equals( SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() ) )
{
handleTableStart( sink, parser);
}
- else if ( parser.getName().equals( SimplifiedDocbookMarkup.THEAD_TAG.toString() ) )
- {
- parent.push( parser.getName() );
- }
else if ( parser.getName().equals( SimplifiedDocbookMarkup.TR_TAG.toString() )
|| parser.getName().equals( SimplifiedDocbookMarkup.ROW_TAG.toString() ) )
{
@@ -214,7 +217,7 @@
}
else if ( parser.getName().equals( SimplifiedDocbookMarkup.PARA_TAG.toString() ) )
{
- sink.paragraph();
+ handleParaStart( sink );
}
else if ( VERBATIM_ELEMENTS.contains( parser.getName() ) )
{
@@ -276,10 +279,6 @@
{
handleXrefStart( parser, sink );
}
- else if ( parser.getName().equals( SimplifiedDocbookMarkup.ARTICLEINFO_TAG.toString() ) )
- {
- parent.push( parser.getName() );
- }
else
{
if ( !ignorable( parser.getName() ) )
@@ -347,11 +346,18 @@
{
sink.definedTerm_();
}
- else if ( parser.getName().equals( SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
+ else if ( parser.getName().equals( SimplifiedDocbookMarkup.MEDIAOBJECT_TAG.toString() ) )
{
sink.figure_();
parent.pop();
}
+ else if ( parser.getName().equals( SimplifiedDocbookMarkup.IMAGEOBJECT_TAG.toString() )
+ || parser.getName().equals( SimplifiedDocbookMarkup.FIGURE_TAG.toString() )
+ || parser.getName().equals( SimplifiedDocbookMarkup.THEAD_TAG.toString() )
+ || parser.getName().equals( SimplifiedDocbookMarkup.ARTICLEINFO_TAG.toString() ) )
+ {
+ parent.pop();
+ }
else if ( parser.getName().equals( SimplifiedDocbookMarkup.CAPTION_TAG.toString() ) )
{
handleCaptionEnd(sink);
@@ -363,10 +369,6 @@
//TODO handle tgroups
parent.pop();
}
- else if ( parser.getName().equals( SimplifiedDocbookMarkup.THEAD_TAG.toString() ) )
- {
- parent.pop();
- }
else if ( parser.getName().equals( SimplifiedDocbookMarkup.TR_TAG.toString() )
|| parser.getName().equals( SimplifiedDocbookMarkup.ROW_TAG.toString() ) )
{
@@ -384,7 +386,7 @@
}
else if ( parser.getName().equals( SimplifiedDocbookMarkup.PARA_TAG.toString() ) )
{
- sink.paragraph_();
+ handleParaEnd( sink );
}
else if ( VERBATIM_ELEMENTS.contains( parser.getName() ) )
{
@@ -444,10 +446,6 @@
sink.link_();
}
}
- else if ( parser.getName().equals( SimplifiedDocbookMarkup.ARTICLEINFO_TAG.toString() ) )
- {
- parent.pop();
- }
}
/** {@inheritDoc} */
@@ -509,22 +507,26 @@
return null;
}
- private void handleCaptionStart( Sink sink )
+ private void handleCaptionStart( XmlPullParser parser, Sink sink )
{
- if ( isParent( SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
+ if ( isParent( SimplifiedDocbookMarkup.MEDIAOBJECT_TAG.toString() ) )
{
- sink.figureCaption();
+ sink.figureCaption( null );
}
else if ( isParent( SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() )
|| isParent( SimplifiedDocbookMarkup.TABLE_TAG.toString() ) )
{
sink.tableCaption();
}
+
+ parent.push( parser.getName() );
}
private void handleCaptionEnd( Sink sink )
{
- if ( isParent( SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
+ parent.pop();
+
+ if ( isParent( SimplifiedDocbookMarkup.MEDIAOBJECT_TAG.toString() ) )
{
sink.figureCaption_();
}
@@ -552,7 +554,7 @@
private void handleFigureStart( Sink sink, XmlPullParser parser )
{
- sink.figure();
+ sink.figure( null );
parent.push( parser.getName() );
}
@@ -591,15 +593,10 @@
}
}
- private void handleImageObjectStart( XmlPullParser parser, Sink sink )
+ private void handleImageDataStart( XmlPullParser parser, Sink sink )
{
String fileref = getAttributeValue( parser, "fileref" );
-
- if ( fileref != null )
- {
- sink.figureGraphics( fileref );
- parent.push( parser.getName() );
- }
+ sink.figureGraphics( fileref, null );
}
private void handleItemizedListStart( Sink sink, XmlPullParser parser )
@@ -668,6 +665,22 @@
parent.push( parser.getName() );
}
+ private void handleParaEnd( Sink sink )
+ {
+ if ( !isParent( SimplifiedDocbookMarkup.CAPTION_TAG.toString() ) )
+ {
+ sink.paragraph_();
+ }
+ }
+
+ private void handleParaStart( Sink sink )
+ {
+ if ( !isParent( SimplifiedDocbookMarkup.CAPTION_TAG.toString() ) )
+ {
+ sink.paragraph();
+ }
+ }
+
private void handleTableStart( Sink sink, XmlPullParser parser )
{
sink.table();
@@ -677,12 +690,7 @@
private void handleTitleStart( Sink sink )
{
- // TODO: title in abstract, authorblurb, bibliography, bibliodiv, bibliomset, appendix
- if ( isParent( SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
- {
- sink.figureCaption();
- }
- else if ( isParent( SimplifiedDocbookMarkup.TABLE_TAG.toString() )
+ if ( isParent( SimplifiedDocbookMarkup.TABLE_TAG.toString() )
|| isParent( SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() ) )
{
sink.tableCaption();
@@ -696,16 +704,15 @@
{
sink.sectionTitle( level, null );
}
- // else ignore
+ else
+ {
+ sink.bold();
+ }
}
private void handleTitleEnd( Sink sink )
{
- if ( isParent( SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
- {
- sink.figureCaption_();
- }
- else if ( isParent( SimplifiedDocbookMarkup.TABLE_TAG.toString() )
+ if ( isParent( SimplifiedDocbookMarkup.TABLE_TAG.toString() )
|| isParent( SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() ) )
{
sink.tableCaption_();
@@ -719,7 +726,10 @@
{
sink.title_();
}
- // else ignore
+ else
+ {
+ sink.bold_();
+ }
}
private void handleUlinkStart( XmlPullParser parser, Sink sink )
@@ -753,7 +763,10 @@
private boolean ignorable( String name )
{
- return name.equals( SimplifiedDocbookMarkup.ANCHOR_TAG.toString() );
+ return name.equals( SimplifiedDocbookMarkup.ANCHOR_TAG.toString() )
+ || name.equals( SimplifiedDocbookMarkup.IMAGEOBJECT_TAG.toString() )
+ || name.equals( SimplifiedDocbookMarkup.PHRASE_TAG.toString() )
+ || name.equals( SimplifiedDocbookMarkup.TEXTOBJECT_TAG.toString() );
}
/**
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java?rev=781717&r1=781716&r2=781717&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java (original)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookSink.java Thu Jun 4 12:20:55 2009
@@ -1091,9 +1091,15 @@
}
/** {@inheritDoc} */
+ public void figure()
+ {
+ writeStartTag( SimplifiedDocbookMarkup.MEDIAOBJECT_TAG );
+ }
+
+ /** {@inheritDoc} */
public void figure_()
{
- graphicElement();
+ writeEndTag( SimplifiedDocbookMarkup.MEDIAOBJECT_TAG );
}
/**
@@ -1104,6 +1110,7 @@
* @see SimplifiedDocbookMarkup#IMAGEDATA_TAG
* @see SimplifiedDocbookMarkup#FORMAT_ATTRIBUTE
* @see SimplifiedDocbookMarkup#FILEREF_ATTRIBUTE
+ * @deprecated do not use!
*/
protected void graphicElement()
{
@@ -1134,8 +1141,17 @@
/** {@inheritDoc} */
public void figureGraphics( String name )
{
- // TODO: extension?
- graphicsFileName = name + ".jpeg";
+ String format = FileUtils.extension( name ).toUpperCase( Locale.ENGLISH );
+
+ writeStartTag( SimplifiedDocbookMarkup.IMAGEOBJECT_TAG );
+
+ MutableAttributeSet att = new SimpleAttributeSet();
+ att.addAttribute( SimplifiedDocbookMarkup.FORMAT_ATTRIBUTE, format );
+ att.addAttribute( SimplifiedDocbookMarkup.FILEREF_ATTRIBUTE, HtmlTools.escapeHTML( name, true ) );
+
+ writeSimpleTag( SimplifiedDocbookMarkup.IMAGEDATA_TAG, att );
+
+ writeEndTag( SimplifiedDocbookMarkup.IMAGEOBJECT_TAG );
}
/**
@@ -1145,8 +1161,8 @@
*/
public void figureCaption()
{
- writeStartTag( SimplifiedDocbookMarkup.FIGURE_TAG );
- writeStartTag( SimplifiedDocbookMarkup.TITLE_TAG );
+ writeStartTag( SimplifiedDocbookMarkup.CAPTION_TAG );
+ writeStartTag( SimplifiedDocbookMarkup.PARA_TAG );
}
/**
@@ -1156,9 +1172,8 @@
*/
public void figureCaption_()
{
- writeEndTag( SimplifiedDocbookMarkup.TITLE_TAG );
- graphicElement();
- writeEndTag( SimplifiedDocbookMarkup.FIGURE_TAG );
+ writeEndTag( SimplifiedDocbookMarkup.PARA_TAG );
+ writeEndTag( SimplifiedDocbookMarkup.CAPTION_TAG );
}
/** {@inheritDoc} */
Modified: maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookSinkTest.java
URL: http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookSinkTest.java?rev=781717&r1=781716&r2=781717&view=diff
==============================================================================
--- maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookSinkTest.java (original)
+++ maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/test/java/org/apache/maven/doxia/module/docbook/DocBookSinkTest.java Thu Jun 4 12:20:55 2009
@@ -21,6 +21,8 @@
import java.io.Writer;
+import java.util.Locale;
+
import javax.swing.text.MutableAttributeSet;
import javax.swing.text.SimpleAttributeSet;
@@ -29,6 +31,8 @@
import org.apache.maven.doxia.sink.SinkUtils;
import org.apache.maven.doxia.util.DoxiaUtils;
+import org.codehaus.plexus.util.FileUtils;
+
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
* @version $Id$
@@ -145,10 +149,11 @@
/** {@inheritDoc} */
protected String getFigureBlock( String source, String caption )
{
- // TODO: fix source
- return "<figure><title>" + caption
- + "</title><mediaobject><imageobject><imagedata fileref=\"figure.jpg.jpeg\" format=\"JPEG\" /></imageobject></mediaobject>"
- + "</figure>";
+ String format = FileUtils.extension( source ).toUpperCase( Locale.ENGLISH );
+
+ return "<mediaobject><imageobject>"
+ + "<imagedata fileref=\"" + source + "\" format=\"" + format + "\" />"
+ + "</imageobject><caption><para>" + caption + "</para></caption></mediaobject>";
}
/** {@inheritDoc} */