Author: ltheussl
Date: Thu Jun 4 08:17:02 2009
New Revision: 781678
URL: http://svn.apache.org/viewvc?rev=781678&view=rev
Log:
[DOXIA-184] Fix figure and table captions
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src/main/java/org/apache/maven/doxia/module/docbook/DocBookParser.java
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=781678&r1=781677&r2=781678&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 08:17:02 2009
@@ -126,7 +126,7 @@
if ( HIER_ELEMENTS.contains( parser.getName() ) )
{
- handleHierarchyElements( sink );
+ handleHierarchyElements( sink, parser );
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.ITEMIZEDLIST_TAG.toString() ) )
{
@@ -192,10 +192,6 @@
{
sink.paragraph();
}
- else if ( parser.getName().equals(
SimplifiedDocbookMarkup.TITLE_TAG.toString() ) )
- {
- sink.bold();
- }
else if ( VERBATIM_ELEMENTS.contains( parser.getName() ) )
{
sink.verbatim( SinkEventAttributeSet.BOXED );
@@ -230,7 +226,7 @@
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.TITLE_TAG.toString() ) )
{
- handleTitleStart( parser, sink );
+ handleTitleStart( sink );
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.CORPAUTHOR_TAG.toString() ) )
{
@@ -256,6 +252,10 @@
{
handleXrefStart( parser, sink );
}
+ else if ( parser.getName().equals(
SimplifiedDocbookMarkup.ARTICLEINFO_TAG.toString() ) )
+ {
+ parent.push( parser.getName() );
+ }
else
{
handleUnknown( parser, sink, HtmlMarkup.TAG_TYPE_START );
@@ -278,6 +278,7 @@
else
{
sink.section_( level );
+ parent.pop();
}
//decrease the nesting level
level--;
@@ -358,11 +359,6 @@
{
sink.paragraph_();
}
- else if ( parser.getName().equals(
SimplifiedDocbookMarkup.TITLE_TAG.toString() ) )
- {
- sink.text( ". " ); //Inline Running head
- sink.bold_();
- }
else if ( VERBATIM_ELEMENTS.contains( parser.getName() ) )
{
sink.verbatim_();
@@ -402,23 +398,7 @@
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.TITLE_TAG.toString() ) )
{
- if ( parser.getName().equals(
SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
- {
- sink.figureCaption_();
- }
- else if ( parser.getName().equals(
SimplifiedDocbookMarkup.TABLE_TAG.toString() )
- || parser.getName().equals(
SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() ) )
- {
- sink.tableCaption_();
- }
- else if ( level == 0 )
- {
- sink.title_();
- }
- else
- {
- sink.sectionTitle_( level );
- }
+ handleTitleEnd( sink );
}
else if ( parser.getName().equals(
SimplifiedDocbookMarkup.CORPAUTHOR_TAG.toString() ) )
{
@@ -437,6 +417,10 @@
sink.link_();
}
}
+ else if ( parser.getName().equals(
SimplifiedDocbookMarkup.ARTICLEINFO_TAG.toString() ) )
+ {
+ parent.pop();
+ }
}
/** {...@inheritdoc} */
@@ -542,7 +526,7 @@
}
//If the element introduces a new level of hierarchy, raise the stack
- private void handleHierarchyElements( Sink sink )
+ private void handleHierarchyElements( Sink sink, XmlPullParser parser )
{
//increase the nesting level
level++;
@@ -555,6 +539,7 @@
else
{
sink.section( level, null );
+ parent.push( parser.getName() );
}
}
@@ -652,25 +637,51 @@
parent.push( parser.getName() );
}
- private void handleTitleStart( XmlPullParser parser, Sink sink )
+ private void handleTitleStart( Sink sink )
{
- if ( parser.getName().equals(
SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
+ // TODO: title in abstract, authorblurb, bibliography, bibliodiv,
bibliomset, appendix
+ if ( isParent( SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
{
sink.figureCaption();
}
- else if ( parser.getName().equals(
SimplifiedDocbookMarkup.TABLE_TAG.toString() )
- || parser.getName().equals(
SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() ) )
+ else if ( isParent( SimplifiedDocbookMarkup.TABLE_TAG.toString() )
+ || isParent(
SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() ) )
{
sink.tableCaption();
}
- else if ( level == 0 )
+ else if ( isParent( SimplifiedDocbookMarkup.ARTICLE_TAG.toString() )
+ || isParent(
SimplifiedDocbookMarkup.ARTICLEINFO_TAG.toString() ) )
{
sink.title();
}
- else
+ else if ( isParent( SimplifiedDocbookMarkup.SECTION_TAG.toString() ) )
{
sink.sectionTitle( level, null );
}
+ // else ignore
+ }
+
+ private void handleTitleEnd( Sink sink )
+ {
+ if ( isParent( SimplifiedDocbookMarkup.FIGURE_TAG.toString() ) )
+ {
+ sink.figureCaption_();
+ }
+ else if ( isParent( SimplifiedDocbookMarkup.TABLE_TAG.toString() )
+ || isParent(
SimplifiedDocbookMarkup.INFORMALTABLE_TAG.toString() ) )
+ {
+ sink.tableCaption_();
+ }
+ else if ( isParent( SimplifiedDocbookMarkup.SECTION_TAG.toString() ) )
+ {
+ sink.sectionTitle_( level );
+ }
+ else if ( isParent( SimplifiedDocbookMarkup.ARTICLE_TAG.toString() )
+ || isParent(
SimplifiedDocbookMarkup.ARTICLEINFO_TAG.toString() ) )
+ {
+ sink.title_();
+ }
+ // else ignore
}
private void handleUlinkStart( XmlPullParser parser, Sink sink )