|
Groovy Documentation | |||||||
FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.gate.yam.convert.JSPWikiMarkupParser
class JSPWikiMarkupParser
Parses JSPWiki-style markup into a WikiDocument DOM tree. This class is the heart and soul of JSPWiki : make sure you test properly anything that is added, or else it breaks down horribly.
Nested Class Summary | |
---|---|
class |
JSPWikiMarkupParser.CleanTextRenderer
|
class |
JSPWikiMarkupParser.Heading
|
class |
JSPWikiMarkupParser.StartingComparator
Compares two Strings, and if one starts with the other, then returns null. |
Field Summary | |
---|---|
private static int |
ATTACHMENT
|
static String |
CLASS_EDITPAGE
The value for anchor element class attributes when used for edit page links. |
static String |
CLASS_INTERWIKI
The value for anchor element class attributes when used for interwiki page links. |
static String |
CLASS_WIKIPAGE
The value for anchor element class attributes when used for wiki page (normal) links. |
static String |
DEFAULT_INLINEPATTERN
The default inlining pattern. |
private static int |
EDIT
|
private static int |
EMPTY
|
private static String[] |
EMPTY_ELEMENTS
All elements that can be empty by the HTML DTD. |
private static int |
EXTERNAL
|
private static int |
IMAGE
|
private static int |
IMAGELINK
|
private static int |
IMAGEWIKILINK
|
private static int |
INTERWIKI
|
private static int |
LOCAL
|
private static int |
LOCALREF
|
private static String |
OUTLINK_IMAGE
Name of the outlink image; relative path to the JSPWiki directory. |
static String |
PROP_ALLOWHTML
If set to "true", allows using raw HTML within Wiki text. |
static String |
PROP_CAMELCASELINKS
If true, consider CamelCase hyperlinks as well. |
static String |
PROP_INLINEIMAGEPTRN
This property defines the inline image pattern. |
static String |
PROP_PLAINURIS
If true, all hyperlinks are translated as well, regardless whether they are surrounded by brackets. |
static String |
PROP_RUNPLUGINS
If set to "true", enables plugins during parsing |
static String |
PROP_USEATTACHMENTIMAGE
If true, all outward attachment info links have a small link image appended. |
static String |
PROP_USEOUTLINKIMAGE
If true, all outward links (external links) have a small link image appended. |
static String |
PROP_USERELNOFOLLOW
If set to "true", all external links are tagged with 'rel="nofollow"' |
protected static String |
PUNCTUATION_CHARS_ALLOWED
Lists all punctuation characters allowed in WikiMarkup. |
protected static int |
PUSHBACK_BUFFER_SIZE
Allow this many characters to be pushed back in the stream. |
private static int |
READ
|
static String |
WIKIWORD_REGEX
|
static String[] |
c_externalLinks
This list contains all IANA registered URI protocol types as of September 2004 + a few well-known extra types. |
private static Comparator |
c_startingComparator
This Comparator is used to find an external link from c_externalLinks. |
private static Logger |
log
|
private boolean |
m_allowHTML
If true, allows raw HTML. |
private boolean |
m_allowPHPWikiStyleLists
|
protected ArrayList |
m_attachmentLinkMutatorChain
|
private boolean |
m_camelCaseLinks
If true, then considers CamelCase links as well. |
private org.apache.oro.text.regex.PatternMatcher |
m_camelCaseMatcher
|
private org.apache.oro.text.regex.Pattern |
m_camelCasePattern
|
private JSPWikiMarkupParser |
m_cleanTranslator
|
private org.apache.oro.text.regex.PatternCompiler |
m_compiler
|
private org.jdom.Element |
m_currentElement
|
protected ArrayList |
m_externalLinkMutatorChain
|
private StringBuffer |
m_genlistBulletBuffer
|
private int |
m_genlistlevel
|
protected ArrayList |
m_headingListenerChain
|
protected PushbackReader |
m_in
|
private ArrayList |
m_inlineImagePatterns
Keeps image regexp Patterns |
protected boolean |
m_inlineImages
|
private org.apache.oro.text.regex.PatternMatcher |
m_inlineMatcher
|
private boolean |
m_isEscaping
|
private boolean |
m_isOpenParagraph
|
private boolean |
m_isPre
|
private boolean |
m_isPreBlock
|
private boolean |
m_isbold
|
private boolean |
m_isdefinition
|
private boolean |
m_isitalic
|
private boolean |
m_istable
|
protected ArrayList |
m_linkMutators
|
protected ArrayList |
m_localLinkMutatorChain
Optionally stores internal wikilinks |
private String |
m_outlinkImageURL
Holds the image URL for the duration of this parser |
protected boolean |
m_parseAccessRules
|
private StringBuffer |
m_plainTextBuf
Keeps track of any plain text that gets put in the Text nodes |
private boolean |
m_plainUris
If true, consider URIs that have no brackets as well. |
private int |
m_pos
|
private boolean |
m_restartbold
|
private boolean |
m_restartitalic
Controls whether italic is restarted after a paragraph shift |
private int |
m_rowNum
|
private Stack |
m_styleStack
Contains style information, in multiple forms. |
private boolean |
m_useAttachmentImage
|
private boolean |
m_useOutlinkImage
If true, all outward links use a small link image. |
private boolean |
m_useRelNofollow
|
Constructor Summary | |
JSPWikiMarkupParser(Reader in)
Creates a markup parser. |
Method Summary | |
---|---|
private org.jdom.Element
|
addElement(org.jdom.Content e)
|
static String
|
cleanLink(String link)
Cleans a Wiki name. |
void
|
disableAccessRules()
//* Adds a hook for processing link texts. |
private void
|
disableOutputEscaping()
Emits a processing instruction that will disable markup escaping. |
void
|
enableImageInlining(boolean toggle)
Use this to turn on or off image inlining. |
private String
|
escapeHTMLEntities(StringBuffer buf)
Escapes XML entities in a HTML-compatible way (i.e. does not escape entities that are already escaped). |
private void
|
fillBuffer(org.jdom.Element startElement)
|
private String
|
findAttachment(String link)
|
private int
|
flushPlainText()
|
static boolean
|
getBooleanProperty(Properties props, String key, boolean defval)
Gets a boolean property from a standard Properties list. |
private JSPWikiMarkupParser
|
getCleanTranslator()
Does a lazy init. |
static Collection
|
getImagePatterns()
Figure out which image suffixes should be inlined. |
private static String
|
getListType(char c)
|
int
|
getPosition()
Return the current position in the reader stream. |
private org.jdom.Element
|
handleApostrophe()
For example: italics. |
private org.jdom.Element
|
handleBackslash()
|
private org.jdom.Element
|
handleBar(boolean newLine)
|
private org.jdom.Element
|
handleClosebrace()
Handles both }} and }}} |
private org.jdom.Element
|
handleDash()
|
private org.jdom.Element
|
handleDefinitionList()
|
private org.jdom.Element
|
handleDiv(boolean newLine)
Handles constructs of type %%(style) and %%class |
private org.jdom.Element
|
handleGeneralList()
Like original handleOrderedList() and handleUnorderedList() however handles both ordered ('#') and unordered ('*') mixed together. |
private org.jdom.Element
|
handleHeading(String pageName)
|
private org.jdom.Element
|
handleHyperlinks(String link, int pos)
Gobbles up all hyperlinks that are encased in square brackets. |
private org.jdom.Element
|
handleImageLink(String reallink, String link, boolean hasLinkText)
Image links are handled differently: 1. |
private org.jdom.Element
|
handleMetadata(String link)
Handles metadata setting [{SET foo=bar}] |
private org.jdom.Element
|
handleOpenbrace(boolean isBlock)
|
private org.jdom.Element
|
handleOpenbracket()
|
private org.jdom.Element
|
handleSlash(boolean newLine)
|
private org.jdom.Element
|
handleTilde()
Generic escape of next character or entity. |
private org.jdom.Element
|
handleUnderscore()
|
private void
|
initialize()
The WikiEngine this reader is attached to. |
private static boolean
|
isAccessRule(String link)
Returns true, if the link in question is an access rule. |
static boolean
|
isExternalLink(String link)
Figures out if a link is an off-site link. |
private boolean
|
isImageLink(String link)
Matches the given link to the list of image name patterns to determine whether it should be treated as an inline image or not. |
private static boolean
|
isMetadata(String link)
|
static boolean
|
isNumber(String s)
Returns true, if the argument contains a number, otherwise false. |
static boolean
|
isPositive(String val)
Returns true, if the string "val" denotes a positive string. |
private String
|
linkExists(String page)
Returns link name, if it exists; otherwise it returns null. |
private org.jdom.Element
|
makeCamelCaseLink(String wikiname)
When given a link to a WikiName, we just return a proper HTML link for it. |
private org.jdom.Element
|
makeDirectURILink(String url)
Takes an URL and turns it into a regular wiki link. |
static org.jdom.Element
|
makeError(String error)
Writes HTML for error message. |
org.jdom.Element
|
makeHeading(int level, String pageName, String title, Heading hd)
Returns XHTML for the start of the heading. |
private String
|
makeHeadingAnchor(String baseName, String title, Heading hd)
Modifies the "hd" parameter to contain proper values. |
private org.jdom.Element
|
makeLink(int type, String link, String text, String section)
|
private String
|
makeSectionTitle(String title)
|
protected int
|
nextToken()
|
private org.jdom.Element
|
outlinkImage()
Returns an element for the external link image (out.png). |
org.jdom.Document
|
parse()
|
private String
|
peekAheadLine()
This method peeks ahead in the stream until EOL and returns the result. |
private org.jdom.Element
|
popElement(String s)
|
protected void
|
pushBack(int c)
Push back any character to the current input. |
private void
|
pushBack(String s)
Pushes back any string that has been read. |
private org.jdom.Element
|
pushElement(org.jdom.Element e)
|
private String
|
readBraceContent(char opening, char closing)
Reads the stream until the current brace is closed or stream end. |
private String
|
readUntil(String endChars)
Reads the stream until it meets one of the specified ending characters, or stream end. |
private StringBuffer
|
readUntilEOL()
Reads the stream until the next EOL or EOF. |
private String
|
readWhile(String endChars)
Reads the stream while the characters that have been specified are in the stream, returning then the result as a String. |
Reader
|
setInputReader(Reader in)
Replaces the current input character stream with a new one. |
private void
|
startBlockLevel()
Starts a block level element, therefore closing a potential open paragraph tag. |
private org.jdom.Element
|
unwindGeneralList()
|
Methods inherited from class Object | |
---|---|
wait, wait, wait, hashCode, getClass, equals, toString, notify, notifyAll |
Field Detail |
---|
private static final int ATTACHMENT
static final String CLASS_EDITPAGE
static final String CLASS_INTERWIKI
static final String CLASS_WIKIPAGE
static final String DEFAULT_INLINEPATTERN
private static final int EDIT
private static final int EMPTY
private static final String[] EMPTY_ELEMENTS
private static final int EXTERNAL
private static final int IMAGE
private static final int IMAGELINK
private static final int IMAGEWIKILINK
private static final int INTERWIKI
private static final int LOCAL
private static final int LOCALREF
private static final String OUTLINK_IMAGE
static final String PROP_ALLOWHTML
static final String PROP_CAMELCASELINKS
static final String PROP_INLINEIMAGEPTRN
static final String PROP_PLAINURIS
static final String PROP_RUNPLUGINS
static final String PROP_USEATTACHMENTIMAGE
static final String PROP_USEOUTLINKIMAGE
static final String PROP_USERELNOFOLLOW
protected static final String PUNCTUATION_CHARS_ALLOWED
protected static final int PUSHBACK_BUFFER_SIZE
private static final int READ
static final String WIKIWORD_REGEX
static final String[] c_externalLinks
private static Comparator c_startingComparator
private static Logger log
private boolean m_allowHTML
private boolean m_allowPHPWikiStyleLists
protected ArrayList m_attachmentLinkMutatorChain
private boolean m_camelCaseLinks
private org.apache.oro.text.regex.PatternMatcher m_camelCaseMatcher
private org.apache.oro.text.regex.Pattern m_camelCasePattern
private JSPWikiMarkupParser m_cleanTranslator
private org.apache.oro.text.regex.PatternCompiler m_compiler
private org.jdom.Element m_currentElement
protected ArrayList m_externalLinkMutatorChain
private StringBuffer m_genlistBulletBuffer
private int m_genlistlevel
protected ArrayList m_headingListenerChain
protected PushbackReader m_in
private ArrayList m_inlineImagePatterns
protected boolean m_inlineImages
private org.apache.oro.text.regex.PatternMatcher m_inlineMatcher
private boolean m_isEscaping
private boolean m_isOpenParagraph
private boolean m_isPre
private boolean m_isPreBlock
private boolean m_isbold
private boolean m_isdefinition
private boolean m_isitalic
private boolean m_istable
protected ArrayList m_linkMutators
protected ArrayList m_localLinkMutatorChain
private String m_outlinkImageURL
protected boolean m_parseAccessRules
private StringBuffer m_plainTextBuf
private boolean m_plainUris
private int m_pos
private boolean m_restartbold
private boolean m_restartitalic
private int m_rowNum
private Stack m_styleStack
private boolean m_useAttachmentImage
private boolean m_useOutlinkImage
private boolean m_useRelNofollow
Constructor Detail |
---|
public JSPWikiMarkupParser(Reader in)
Method Detail |
---|
private org.jdom.Element addElement(org.jdom.Content e)
public static String cleanLink(String link)
[ This is a link ] -> ThisIsALink
public void disableAccessRules()
private void disableOutputEscaping()
public void enableImageInlining(boolean toggle)
private String escapeHTMLEntities(StringBuffer buf)
private void fillBuffer(org.jdom.Element startElement)
private String findAttachment(String link)
private int flushPlainText()
public static boolean getBooleanProperty(Properties props, String key, boolean defval)
The possible values for the property are "true"/"false", "yes"/"no", or "on"/"off". Any value not recognized is always defined as "false".
private JSPWikiMarkupParser getCleanTranslator()
public static Collection getImagePatterns()
private static String getListType(char c)
public int getPosition()
private org.jdom.Element handleApostrophe()
private org.jdom.Element handleBackslash()
private org.jdom.Element handleBar(boolean newLine)
private org.jdom.Element handleClosebrace()
private org.jdom.Element handleDash()
private org.jdom.Element handleDefinitionList()
private org.jdom.Element handleDiv(boolean newLine)
private org.jdom.Element handleGeneralList()
private org.jdom.Element handleHeading(String pageName)
private org.jdom.Element handleHyperlinks(String link, int pos)
private org.jdom.Element handleImageLink(String reallink, String link, boolean hasLinkText)
private org.jdom.Element handleMetadata(String link)
private org.jdom.Element handleOpenbrace(boolean isBlock)
private org.jdom.Element handleOpenbracket()
private org.jdom.Element handleSlash(boolean newLine)
private org.jdom.Element handleTilde()
private org.jdom.Element handleUnderscore()
private void initialize()
private static boolean isAccessRule(String link)
public static boolean isExternalLink(String link)
private boolean isImageLink(String link)
private static boolean isMetadata(String link)
public static boolean isNumber(String s)
public static boolean isPositive(String val)
private String linkExists(String page)
private org.jdom.Element makeCamelCaseLink(String wikiname)
private org.jdom.Element makeDirectURILink(String url)
What a crappy problem.
public static org.jdom.Element makeError(String error)
public org.jdom.Element makeHeading(int level, String pageName, String title, Heading hd)
private String makeHeadingAnchor(String baseName, String title, Heading hd)
private org.jdom.Element makeLink(int type, String link, String text, String section)
private String makeSectionTitle(String title)
protected int nextToken()
private org.jdom.Element outlinkImage()
public org.jdom.Document parse()
private String peekAheadLine()
private org.jdom.Element popElement(String s)
protected void pushBack(int c)
private void pushBack(String s)
private org.jdom.Element pushElement(org.jdom.Element e)
private String readBraceContent(char opening, char closing)
private String readUntil(String endChars)
private StringBuffer readUntilEOL()
private String readWhile(String endChars)
public Reader setInputReader(Reader in)
private void startBlockLevel()
private org.jdom.Element unwindGeneralList()
Groovy Documentation