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 12:25:49 UTC
svn commit: r781702 - in
/maven/doxia/doxia/trunk/doxia-modules/doxia-module-docbook-simple/src:
main/java/org/apache/maven/doxia/module/docbook/
test/java/org/apache/maven/doxia/module/docbook/
Author: ltheussl
Date: Thu Jun 4 10:25:46 2009
New Revision: 781702
URL: http://svn.apache.org/viewvc?rev=781702&view=rev
Log:
[DOXIA-184] Clean up anchors and links
Modified:
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-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=781702&r1=781701&r2=781702&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 10:25:46 2009
@@ -146,7 +146,7 @@
sink.body();
}
- handleIdAnchor( getAttributeValue( parser, ID_ATTRIBUTE ), sink );
+ handleIdAnchor( parser, sink );
if ( HIER_ELEMENTS.contains( parser.getName() ) )
{
@@ -282,7 +282,10 @@
}
else
{
- handleUnknown( parser, sink, HtmlMarkup.TAG_TYPE_START );
+ if ( !ignorable( parser.getName() ) )
+ {
+ handleUnknown( parser, sink, HtmlMarkup.TAG_TYPE_START );
+ }
}
}
@@ -465,6 +468,10 @@
{
sink.lineBreak();
}
+ else if ( "anchor_end".equals( text.trim() ) )
+ {
+ sink.anchor_();
+ }
else
{
sink.comment( text.trim() );
@@ -569,13 +576,18 @@
parent.push( parser.getName() );
}
- private void handleIdAnchor( String id, Sink sink )
+ private void handleIdAnchor( XmlPullParser parser, Sink sink )
{
+ String id = getAttributeValue( parser, ID_ATTRIBUTE );
//catch link targets
if ( id != null )
{
sink.anchor( id );
- sink.anchor_();
+
+ if ( !parser.getName().equals( SimplifiedDocbookMarkup.ANCHOR_TAG.toString() ) )
+ {
+ sink.anchor_();
+ }
}
}
@@ -599,8 +611,8 @@
private void handleLinkStart( XmlPullParser parser, Sink sink )
{
- String linkend = getAttributeValue( parser,
- SimplifiedDocbookMarkup.LINKEND_ATTRIBUTE );
+ String linkend = getAttributeValue( parser, SimplifiedDocbookMarkup.LINKEND_ATTRIBUTE );
+
if ( linkend != null )
{
parent.push( parser.getName() );
@@ -729,8 +741,8 @@
private void handleXrefStart( XmlPullParser parser, Sink sink )
{
- String linkend = getAttributeValue( parser,
- SimplifiedDocbookMarkup.LINKEND_ATTRIBUTE );
+ String linkend = getAttributeValue( parser, SimplifiedDocbookMarkup.LINKEND_ATTRIBUTE );
+
if ( linkend != null )
{
sink.link( "#" + linkend );
@@ -739,6 +751,11 @@
}
}
+ private boolean ignorable( String name )
+ {
+ return name.equals( SimplifiedDocbookMarkup.ANCHOR_TAG.toString() );
+ }
+
/**
* Determines if the given element is a parent element.
*
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=781702&r1=781701&r2=781702&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 10:25:46 2009
@@ -1422,7 +1422,7 @@
*/
public void anchor_()
{
- // nop
+ comment( "anchor_end" );
}
/**
@@ -1439,20 +1439,21 @@
throw new NullPointerException( "Link name cannot be null!" );
}
- if ( DoxiaUtils.isExternalLink( name ) )
+ if ( DoxiaUtils.isInternalLink( name ) )
{
- externalLinkFlag = true;
+ String linkend = name.substring( 1 );
MutableAttributeSet att = new SimpleAttributeSet();
- att.addAttribute( SimplifiedDocbookMarkup.URL_ATTRIBUTE, HtmlTools.escapeHTML( name, true ) );
+ att.addAttribute( SimplifiedDocbookMarkup.LINKEND_ATTRIBUTE, HtmlTools.escapeHTML( linkend ) );
- writeStartTag( SimplifiedDocbookMarkup.ULINK_TAG, att );
+ writeStartTag( SimplifiedDocbookMarkup.LINK_TAG, att );
}
else
{
+ externalLinkFlag = true;
MutableAttributeSet att = new SimpleAttributeSet();
- att.addAttribute( SimplifiedDocbookMarkup.LINKEND_ATTRIBUTE, HtmlTools.escapeHTML( name ) );
+ att.addAttribute( SimplifiedDocbookMarkup.URL_ATTRIBUTE, HtmlTools.escapeHTML( name, true ) );
- writeStartTag( SimplifiedDocbookMarkup.LINK_TAG, att );
+ writeStartTag( SimplifiedDocbookMarkup.ULINK_TAG, att );
}
}
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=781702&r1=781701&r2=781702&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 10:25:46 2009
@@ -27,6 +27,7 @@
import org.apache.maven.doxia.sink.AbstractSinkTest;
import org.apache.maven.doxia.sink.Sink;
import org.apache.maven.doxia.sink.SinkUtils;
+import org.apache.maven.doxia.util.DoxiaUtils;
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
@@ -191,13 +192,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} */