|
From: <jbo...@li...> - 2005-08-16 20:48:03
|
Author: ral...@jb...
Date: 2005-08-16 16:47:56 -0400 (Tue, 16 Aug 2005)
New Revision: 871
Modified:
trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/HTMLTranslator.java
Log:
corrected types of links
Modified: trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/HTMLTranslator.java
===================================================================
--- trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/HTMLTranslator.java 2005-08-16 17:24:26 UTC (rev 870)
+++ trunk/forge/portal-extensions/forge-wiki/src/java/org/jboss/wiki/plugins/HTMLTranslator.java 2005-08-16 20:47:56 UTC (rev 871)
@@ -1,7 +1,7 @@
package org.jboss.wiki.plugins;
/**
- * @author rali
+ * @author <a href="mailto:ral...@jb...">Rali Genova </a>
*
*
*/
@@ -41,6 +41,7 @@
public String[] notextlinks;
private String[] mediaFormats = { "*.png", "*.jpeg", "*.gif" };
+
private boolean m_allowHTML = false;
private boolean m_isbold = false;
@@ -68,7 +69,7 @@
private PushbackReader m_in;
public HTMLTranslator() {
-
+
}
/**
@@ -119,58 +120,48 @@
// Check if any lists need closing down.
//
- if( newLine && ch != '*' && ch != ' ' && m_listlevel > 0 )
- {
+ if (newLine && ch != '*' && ch != ' ' && m_listlevel > 0) {
buf.append("</LI>\n");
- for( ; m_listlevel > 0; m_listlevel-- )
- {
+ for (; m_listlevel > 0; m_listlevel--) {
buf.append("</UL>\n");
}
}
- if( newLine && ch != '#' && ch != ' ' && m_numlistlevel > 0 )
- {
+ if (newLine && ch != '#' && ch != ' ' && m_numlistlevel > 0) {
buf.append("</LI>\n");
- for( ; m_numlistlevel > 0; m_numlistlevel-- )
- {
+ for (; m_numlistlevel > 0; m_numlistlevel--) {
buf.append("</OL>\n");
}
}
- if( newLine && ch != '|' && m_istable )
- {
+ if (newLine && ch != '|' && m_istable) {
buf.append("</TABLE>\n");
m_istable = false;
m_closeTag = null;
}
-
switch (ch) {
case '\r':
// DOS linefeeds we forget
s = null;
break;
- case '\n':
+ case '\n':
//
// Close things like headings, etc.
//
- if( m_closeTag != null )
- {
- buf.append( m_closeTag );
+ if (m_closeTag != null) {
+ buf.append(m_closeTag);
m_closeTag = null;
}
m_isdefinition = false;
- if( newLine )
- {
+ if (newLine) {
// Paragraph change.
buf.append("<P>\n");
- }
- else
- {
+ } else {
buf.append("\n");
newLine = true;
}
@@ -180,108 +171,91 @@
s = handleBackslash();
break;
- case '_':
+ case '_':
s = handleUnderscore();
break;
-
- case '\'':
+
+ case '\'':
s = handleApostrophe();
break;
- case '{':
+ case '{':
s = handleOpenbrace();
break;
- case '}':
+ case '}':
s = handleClosebrace();
break;
- case '-':
+ case '-':
s = handleDash();
break;
- case '!':
- if( newLine )
- {
+ case '!':
+ if (newLine) {
s = handleHeading();
- }
- else
- {
+ } else {
s = "!";
}
break;
- case ';':
- if( newLine )
- {
+ case ';':
+ if (newLine) {
s = handleDefinitionList();
- }
- else
- {
+ } else {
s = ";";
}
break;
- case ':':
- if( m_isdefinition )
- {
+ case ':':
+ if (m_isdefinition) {
s = "</DT><DD>";
m_isdefinition = false;
- }
- else
- {
+ } else {
s = ":";
}
break;
- case '[':
+ case '[':
s = handleOpenbracket();
break;
- case '*':
- if( newLine )
- {
+ case '*':
+ if (newLine) {
s = handleUnorderedList();
- }
- else
- {
+ } else {
s = "*";
}
break;
- case '#':
- if( newLine )
- {
+ case '#':
+ if (newLine) {
s = handleOrderedList();
- }
- else
- {
+ } else {
s = "#";
}
break;
- case '|':
- s = handleBar( newLine );
+ case '|':
+ s = handleBar(newLine);
break;
- case '<':
+ case '<':
s = m_allowHTML ? "<" : "<";
break;
- case '>':
+ case '>':
s = m_allowHTML ? ">" : ">";
break;
- case '\"':
+ case '\"':
s = m_allowHTML ? "\"" : """;
break;
- /*
- case '&':
- s = "&";
- break;
- */
- case '~':
+ /*
+ * case '&': s = "&"; break;
+ */
+ case '~':
s = handleTilde();
break;
case -1:
@@ -295,14 +269,14 @@
}
if (s != null) {
buf.append(s);
-
+
newLine = false;
}
}
translatedContent = buf.toString();
- // translatedContent = translatedContent.replace("\n", "<BR>\n");
- // System.out.println("final string : "+ translatedContent);
+ // translatedContent = translatedContent.replace("\n", "<BR>\n");
+ // System.out.println("final string : "+ translatedContent);
return translatedContent;
}
@@ -316,25 +290,22 @@
return patterns;
}
-
+
/**
- * Generic escape of next character or entity.
+ * Generic escape of next character or entity.
*/
- private String handleTilde()
- throws IOException
- {
+ private String handleTilde() throws IOException {
int ch = nextToken();
- if( ch == '|' )
+ if (ch == '|')
return "|";
- if( Character.isUpperCase( (char) ch ) )
- {
- return String.valueOf( (char)ch );
+ if (Character.isUpperCase((char) ch)) {
+ return String.valueOf((char) ch);
}
// No escape.
- pushBack( ch );
+ pushBack(ch);
return "~";
}
@@ -484,54 +455,43 @@
return count;
}
-
- private String handleBar( boolean newLine )
- throws IOException
-{
- StringBuffer sb = new StringBuffer();
- if( !m_istable && !newLine )
- {
- return "|";
- }
+ private String handleBar(boolean newLine) throws IOException {
+ StringBuffer sb = new StringBuffer();
- if( newLine )
- {
- if( !m_istable )
- {
- sb.append("<TABLE CLASS=\"wikitable\" BORDER=\"1\">\n");
- m_istable = true;
+ if (!m_istable && !newLine) {
+ return "|";
}
- sb.append("<TR>");
- m_closeTag = "</TD></TR>";
- }
-
- int ch = nextToken();
+ if (newLine) {
+ if (!m_istable) {
+ sb.append("<TABLE CLASS=\"wikitable\" BORDER=\"1\">\n");
+ m_istable = true;
+ }
- if( ch == '|' )
- {
- if( !newLine )
- {
- sb.append("</TH>");
+ sb.append("<TR>");
+ m_closeTag = "</TD></TR>";
}
- sb.append("<TH>");
- m_closeTag = "</TH></TR>";
- }
- else
- {
- if( !newLine )
- {
- sb.append("</TD>");
- }
- sb.append("<TD>");
- pushBack( ch );
- }
- return sb.toString();
-}
+ int ch = nextToken();
+ if (ch == '|') {
+ if (!newLine) {
+ sb.append("</TH>");
+ }
+ sb.append("<TH>");
+ m_closeTag = "</TH></TR>";
+ } else {
+ if (!newLine) {
+ sb.append("</TD>");
+ }
+ sb.append("<TD>");
+ pushBack(ch);
+ }
+ return sb.toString();
+ }
+
private String handleDefinitionList() throws IOException {
if (!m_isdefinition) {
m_isdefinition = true;
@@ -665,37 +625,57 @@
* @param string
* @return
*/
- private String handleHyperlinks(String link) {
+private String handleHyperlinks(String link) {
String result = "";
+ String pageName = "";
int border = link.indexOf('|');
if (border != -1) {
if (isExternalLink(link.substring(border + 1)))//case
- // [...|externallink]
+ // [...|externallink] - opens in new window
{
- result = "<a href=\"" + link.substring(border + 1) + "\">"
+ result = "<a href=\"" + link.substring(border + 1) + "\"target=\"_blank\">"
+ link.substring(0, border) + "</a>";
- } else //case [...|wikipagelink]
+ } //case [...|wikipagelink]
+ else
{
+ pageName = cleanLink(link.substring(border + 1));
+ if(wikiEngine.pageExists(pageName))
+ {
result = "<a href=\"" + portalHome + wikiHome + actionType
+ "action" + page
- + cleanLink(link.substring(border + 1)) + "\">"
+ + pageName + "\">"
+ link.substring(0, border) + "</a>";
+ }
+ else
+ result = "<u>"+link.substring(0, border)+"</u>"+"<a href=\""
+ + portalHome + wikiHome + actionType
+ + "action" + page
+ + pageName + "\">"
+ + "?" + "</a>";
}
} else //[...] case
{
+
if (isExternalLink(link)) {
- result = "<a href=\"" + link + "\">" + link + "</a>";
+ result = "<a href=\"" + link + "\"target=\"_blank\">" + link + "</a>";
} else {
- result = "<a href=\"" + portalHome + wikiHome + actionType
+ pageName = cleanLink(link);
+ System.out.println("********pageName is "+pageName);
+ if(wikiEngine.pageExists(pageName))
+ { result = "<a href=\"" + portalHome + wikiHome + actionType
+ "action" + page + cleanLink(link) + "\">" + link
+ "</a>";
+ }
+ else
+ result = "<u>"+pageName+"</u>"+"<a href=\"" + portalHome + wikiHome + actionType
+ + "action" + page + pageName + "\">" + "?"
+ + "</a>";
}
}
return result;
}
-
/**
* Figures out if a link is an off-site link. This recognizes the most
* common protocols by checking how it starts.
@@ -706,23 +686,6 @@
|| link.startsWith("news:") || link.startsWith("file:");
}
- public String prepareText(String text) {
- int index;
-
- {
- index = text.indexOf('$', 0);
- }
- System.out.println("index of $ " + index);
-
- if (index != -1)
- return text.substring(0, index - 1) + '\\' + "$"
- + prepareText(text.substring(index + 1));
- else {
-
- return text;
- }
- }
-
private int nextToken() throws IOException {
return m_in.read();
}
|