Index: tests/com/ecyrd/jspwiki/htmltowiki/HtmlStringToWikiTranslatorTest.java
===================================================================
--- tests/com/ecyrd/jspwiki/htmltowiki/HtmlStringToWikiTranslatorTest.java (revision 761869)
+++ tests/com/ecyrd/jspwiki/htmltowiki/HtmlStringToWikiTranslatorTest.java (working copy)
@@ -54,6 +54,11 @@
assertEquals( "[AugumentedWikiLinks|AugumentedWikiLinks|title='my \"custom\" title' target='_blank']", html2wiki
.translate( "AugumentedWikiLinks" ) );
+
+ // footnote links
+ assertEquals( "[23]", html2wiki.translate( "" ) );
+ assertEquals( "[something|23]", html2wiki.translate( "" ) );
+
}
public void testTable() throws Exception
Index: src/com/ecyrd/jspwiki/htmltowiki/XHtmlElementToWikiTranslator.java
===================================================================
--- src/com/ecyrd/jspwiki/htmltowiki/XHtmlElementToWikiTranslator.java (revision 761869)
+++ src/com/ecyrd/jspwiki/htmltowiki/XHtmlElementToWikiTranslator.java (working copy)
@@ -390,9 +390,20 @@
ref = trimLink( ref );
if( ref != null )
{
- if( ref.startsWith( "#" ) )
+ if( ref.startsWith( "#" ) ) // This is a link to a footnote.
{
- print( e );
+ // convert "#ref-PageName-1" to just "1"
+ String href = ref.replaceFirst( "#ref-.+-(\\d+)", "$1" );
+
+ // remove the brackets around "[1]"
+ String textValue = e.getValue().substring( 1, (e.getValue().length() - 1) );
+
+ if( href.equals( textValue ) ){ // handles the simplest case. Example: [1]
+ print( e );
+ }
+ else{ // handles the case where the link text is different from the href. Example: [something|1]
+ m_out.print( "[" + textValue + "|" + href + "]" );
+ }
}
else
{