Package org.apache.wiki.parser
Class MarkupParser
java.lang.Object
org.apache.wiki.parser.MarkupParser
- Direct Known Subclasses:
JSPWikiMarkupParser
,MarkdownParser
Provides an abstract class for the parser instances.
- Since:
- 2.4
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
The value for anchor element class attributes when used for attachments.static final String
The value for anchor element class attributes when used for edit page links.static final String
The value for anchor element class attributes when used for external links.static final String
The value for anchor element class attributes when used for footnote links.static final String
The value for anchor element class attributes when used for footnote links.static final String
The value for anchor element class attributes when used for interwiki page links.static final String[]
static final String
The value for anchor element class attributes when used for wiki page (normal) links.static final String
protected final ArrayList<StringTransmutator>
protected final Context
protected final Engine
protected final ArrayList<StringTransmutator>
protected final ArrayList<HeadingListener>
protected PushbackReader
protected List<org.apache.oro.text.regex.Pattern>
Keeps image regexp Patternsprotected boolean
protected final ArrayList<StringTransmutator>
protected final LinkParsingOperations
protected final ArrayList<StringTransmutator>
Optionally stores internal wikilinksprotected boolean
static final String
Outlink css class.static final String
Name of the outlink image; relative path to the JSPWiki directory.static final String
If set to "true", allows using raw HTML within Wiki text.static final String
If true, consider CamelCase hyperlinks as well.static final String
If true, all hyperlinks are translated as well, regardless whether they are surrounded by brackets.static final String
If set to "true", enables plugins during parsingstatic final String
If true, all outward attachment info links have a small link image appended.static final String
If true, all outward links (external links) have a small link image appended.static final String
If set to "true", all external links are tagged with 'rel="nofollow"'protected static final int
Allow this many characters to be pushed back in the stream. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
MarkupParser
(Context context, Reader in) Constructs a MarkupParser. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addAttachmentLinkHook
(StringTransmutator mutator) Adds a hook for processing attachment links.void
addExternalLinkHook
(StringTransmutator mutator) Adds a hook for processing external links.void
addHeadingListener
(HeadingListener listener) Adds a HeadingListener to the parser chain.void
addLinkTransmutator
(StringTransmutator mutator) Adds a hook for processing link texts.void
addLocalLinkHook
(StringTransmutator mutator) Adds a hook for processing local links.static String
Cleans a Wiki name.void
Disables access rule parsing.void
enableImageInlining
(boolean toggle) Use this to turn on or off image inlining.List<org.apache.oro.text.regex.Pattern>
int
Return the current position in the reader stream.protected final void
boolean
boolean
static org.jdom2.Element
Writes HTML for error message.protected final int
Returns the next token in the stream.abstract WikiDocument
parse()
Parses the document.protected void
pushBack
(int c) Push back any character to the current input.setInputReader
(Reader in) Replaces the current input character stream with a new one.static String
wikifyLink
(String link) Cleans away extra legacy characters.
-
Field Details
-
PUSHBACK_BUFFER_SIZE
Allow this many characters to be pushed back in the stream. In effect, this limits the size of a single line.- See Also:
-
m_in
-
m_engine
-
m_context
-
m_localLinkMutatorChain
Optionally stores internal wikilinks -
m_externalLinkMutatorChain
-
m_attachmentLinkMutatorChain
-
m_linkMutators
-
m_headingListenerChain
-
m_inlineImages
-
m_parseAccessRules
-
m_inlineImagePatterns
Keeps image regexp Patterns -
m_linkParsingOperations
-
PROP_ALLOWHTML
If set to "true", allows using raw HTML within Wiki text. Be warned, this is a VERY dangerous option to set - never turn this on in a publicly allowable Wiki, unless you are absolutely certain of what you're doing.- See Also:
-
PROP_RUNPLUGINS
If set to "true", enables plugins during parsing- See Also:
-
PROP_USEOUTLINKIMAGE
If true, all outward links (external links) have a small link image appended.- See Also:
-
PROP_USERELNOFOLLOW
If set to "true", all external links are tagged with 'rel="nofollow"'- See Also:
-
PROP_CAMELCASELINKS
If true, consider CamelCase hyperlinks as well.- See Also:
-
PROP_PLAINURIS
If true, all hyperlinks are translated as well, regardless whether they are surrounded by brackets.- See Also:
-
PROP_USEATTACHMENTIMAGE
If true, all outward attachment info links have a small link image appended.- See Also:
-
HASHLINK
- See Also:
-
OUTLINK_IMAGE
Name of the outlink image; relative path to the JSPWiki directory.- See Also:
-
OUTLINK
Outlink css class.- See Also:
-
CLASS_WIKIPAGE
The value for anchor element class attributes when used for wiki page (normal) links. The value is "wikipage".- See Also:
-
CLASS_EDITPAGE
The value for anchor element class attributes when used for edit page links. The value is "createpage".- See Also:
-
CLASS_INTERWIKI
The value for anchor element class attributes when used for interwiki page links. The value is "interwiki".- See Also:
-
CLASS_FOOTNOTE
The value for anchor element class attributes when used for footnote links. The value is "footnote".- See Also:
-
CLASS_FOOTNOTE_REF
The value for anchor element class attributes when used for footnote links. The value is "footnote".- See Also:
-
CLASS_EXTERNAL
The value for anchor element class attributes when used for external links. The value is "external".- See Also:
-
CLASS_ATTACHMENT
The value for anchor element class attributes when used for attachments. The value is "attachment".- See Also:
-
CLASS_TYPES
-
-
Constructor Details
-
MarkupParser
Constructs a MarkupParser. The subclass must call this constructor to set up the necessary bits and pieces.- Parameters:
context
- The WikiContext.in
- The reader from which we are reading the bytes from.
-
-
Method Details
-
setInputReader
Replaces the current input character stream with a new one.- Parameters:
in
- New source for input. If null, this method does nothing.- Returns:
- the old stream
-
addLinkTransmutator
Adds a hook for processing link texts. This hook is called when the link text is written into the output stream, and you may use it to modify the text. It does not affect the actual link, only the user-visible text.- Parameters:
mutator
- The hook to call. Null is safe.
-
addLocalLinkHook
Adds a hook for processing local links. The engine transforms both non-existing and existing page links.- Parameters:
mutator
- The hook to call. Null is safe.
-
addExternalLinkHook
Adds a hook for processing external links. This includes all http:// ftp://, etc. links, including inlined images.- Parameters:
mutator
- The hook to call. Null is safe.
-
addAttachmentLinkHook
Adds a hook for processing attachment links.- Parameters:
mutator
- The hook to call. Null is safe.
-
addHeadingListener
Adds a HeadingListener to the parser chain. It will be called whenever a parsed header is found.- Parameters:
listener
- The listener to add.
-
disableAccessRules
Disables access rule parsing. -
isParseAccessRules
-
enableImageInlining
Use this to turn on or off image inlining.- Parameters:
toggle
- If true, images are inlined (as per set in jspwiki.properties) If false, then images won't be inlined; instead, they will be treated as standard hyperlinks.- Since:
- 2.2.9
-
isImageInlining
-
initInlineImagePatterns
-
getInlineImagePatterns
-
parse
Parses the document.- Returns:
- the parsed document, as a WikiDocument
- Throws:
IOException
- If something goes wrong.
-
getPosition
Return the current position in the reader stream. The value will be -1 prior to reading.- Returns:
- the reader position as an int.
-
nextToken
Returns the next token in the stream. This is the most called method in the entire parser, so it needs to be lean and mean.- Returns:
- The next token in the stream; or, if the stream is ended, -1.
- Throws:
IOException
- If something bad happensNullPointerException
- If you have not yet created an input document.
-
pushBack
Push back any character to the current input. Does not push back a read EOF, though.- Parameters:
c
- Character to push back.- Throws:
IOException
- In case the character cannot be pushed back.
-
makeError
Writes HTML for error message. Does not add it to the document, you have to do it yourself.- Parameters:
error
- The error string.- Returns:
- An Element containing the error.
-
cleanLink
Cleans a Wiki name. The functionality of this method was changed in 2.6 so that the list of allowed characters is much larger. UsewikifyLink(String)
to get the legacy behaviour.[ This is a link ] -> This is a link
- Parameters:
link
- Link to be cleared. Null is safe, and causes this to return null.- Returns:
- A cleaned link.
- Since:
- 2.0
-
wikifyLink
Cleans away extra legacy characters. This method functions exactly like pre-2.6 cleanLink()[ This is a link ] -> ThisIsALink
- Parameters:
link
- Link to be cleared. Null is safe, and causes this to return null.- Returns:
- A cleaned link.
- Since:
- 2.6
-