|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.maven.doxia.parser.AbstractParser org.apache.maven.doxia.parser.AbstractXmlParser org.apache.maven.doxia.parser.XhtmlBaseParser
public class XhtmlBaseParser
Common base parser for xhtml events.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.apache.maven.doxia.parser.AbstractXmlParser |
---|
AbstractXmlParser.CachedFileEntityResolver |
Field Summary |
---|
Fields inherited from interface org.apache.maven.doxia.markup.HtmlMarkup |
---|
A, ABBR, ACRONYM, ADDRESS, APPLET, AREA, B, BASE, BASEFONT, BDO, BIG, BLOCKQUOTE, BODY, BR, BUTTON, CAPTION, CDATA_TYPE, CENTER, CITE, CODE, COL, COLGROUP, DD, DEL, DFN, DIR, DIV, DL, DT, EM, ENTITY_TYPE, FIELDSET, FONT, FORM, FRAME, FRAMESET, H1, H2, H3, H4, H5, H6, HEAD, HR, HTML, I, IFRAME, IMG, INPUT, INS, ISINDEX, KBD, LABEL, LEGEND, LI, LINK, MAP, MENU, META, NOFRAMES, NOSCRIPT, OBJECT, OL, OPTGROUP, OPTION, P, PARAM, PRE, Q, S, SAMP, SCRIPT, SELECT, SMALL, SPAN, STRIKE, STRONG, STYLE, SUB, SUP, TABLE, TAG_TYPE_END, TAG_TYPE_SIMPLE, TAG_TYPE_START, TBODY, TD, TEXTAREA, TFOOT, TH, THEAD, TITLE, TR, TT, U, UL, VAR |
Fields inherited from interface org.apache.maven.doxia.markup.XmlMarkup |
---|
BANG, CDATA, DOCTYPE_START, ENTITY_START, XML_NAMESPACE |
Fields inherited from interface org.apache.maven.doxia.markup.Markup |
---|
COLON, EOL, EQUAL, GREATER_THAN, LEFT_CURLY_BRACKET, LEFT_SQUARE_BRACKET, LESS_THAN, MINUS, PLUS, QUOTE, RIGHT_CURLY_BRACKET, RIGHT_SQUARE_BRACKET, SEMICOLON, SLASH, SPACE, STAR |
Fields inherited from interface org.apache.maven.doxia.parser.Parser |
---|
ROLE, TXT_TYPE, UNKNOWN_TYPE, XML_TYPE |
Constructor Summary | |
---|---|
XhtmlBaseParser()
|
Method Summary | |
---|---|
protected boolean |
baseEndTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Goes through a common list of possible html end tags. |
protected boolean |
baseStartTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Goes through a common list of possible html start tags. |
protected void |
consecutiveSections(int newLevel,
Sink sink)
Make sure sections are nested consecutively. |
protected int |
getSectionLevel()
Return the current section level. |
protected void |
handleCdsect(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Handles CDATA sections. |
protected void |
handleComment(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Handles comments. |
protected void |
handleEndTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Goes through the possible end tags. Just calls baseEndTag(XmlPullParser,Sink) , this should be
overridden by implementing parsers to include additional tags. |
protected void |
handleStartTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Goes through the possible start tags. Just calls baseStartTag(XmlPullParser,Sink) , this should be
overridden by implementing parsers to include additional tags. |
protected void |
handleText(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Handles text events. |
protected void |
init()
Initialize the parser. |
protected boolean |
isScriptBlock()
Checks if we are currently inside a <script> tag. |
protected boolean |
isVerbatim()
Checks if we are currently inside a <pre> tag. |
void |
parse(Reader source,
Sink sink)
Parses the given source model and emits Doxia events into the given sink. |
protected void |
setSectionLevel(int newLevel)
Set the current section level. |
protected String |
validAnchor(String id)
Checks if the given id is a valid Doxia id and if not, returns a transformed one. |
protected void |
verbatim_()
Stop verbatim mode. |
protected void |
verbatim()
Start verbatim mode. |
Methods inherited from class org.apache.maven.doxia.parser.AbstractXmlParser |
---|
getAttributesFromParser, getLocalEntities, getText, getType, handleEntity, handleUnknown, isCollapsibleWhitespace, isIgnorableWhitespace, isTrimmableWhitespace, isValidate, parse, setCollapsibleWhitespace, setIgnorableWhitespace, setTrimmableWhitespace, setValidate |
Methods inherited from class org.apache.maven.doxia.parser.AbstractParser |
---|
doxiaVersion, enableLogging, executeMacro, getBasedir, getLog, getMacroManager, isSecondParsing, setSecondParsing |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public XhtmlBaseParser()
Method Detail |
---|
public void parse(Reader source, Sink sink) throws ParseException
parse
in interface Parser
parse
in class AbstractXmlParser
source
- not null reader that provides the source document.
You could use newReader
methods from ReaderFactory
.sink
- A sink that consumes the Doxia events.
ParseException
- if the model could not be parsed.protected boolean baseStartTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink)
Goes through a common list of possible html start tags. These include only tags that can go into the body of a xhtml document and so should be re-usable by different xhtml-based parsers.
The currently handled tags are:
<h2>, <h3>, <h4>, <h5>, <h6>, <p>, <pre>,
<ul>, <ol>, <li>, <dl>, <dt>, <dd>, <b>, <strong>,
<i>, <em>, <code>, <samp>, <tt>, <a>, <table>, <tr>,
<th>, <td>, <caption>, <br/>, <hr/>, <img/>.
parser
- A parser.sink
- the sink to receive the events.
protected boolean baseEndTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink)
Goes through a common list of possible html end tags.
These should be re-usable by different xhtml-based parsers.
The tags handled here are the same as for baseStartTag(XmlPullParser,Sink)
,
except for the empty elements (<br/>, <hr/>, <img/>
).
parser
- A parser.sink
- the sink to receive the events.
protected void handleStartTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, MacroExecutionException
baseStartTag(XmlPullParser,Sink)
, this should be
overridden by implementing parsers to include additional tags.
handleStartTag
in class AbstractXmlParser
parser
- A parser, not null.sink
- the sink to receive the events.
org.codehaus.plexus.util.xml.pull.XmlPullParserException
- if there's a problem parsing the model
MacroExecutionException
- if there's a problem executing a macroprotected void handleEndTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, MacroExecutionException
baseEndTag(XmlPullParser,Sink)
, this should be
overridden by implementing parsers to include additional tags.
handleEndTag
in class AbstractXmlParser
parser
- A parser, not null.sink
- the sink to receive the events.
org.codehaus.plexus.util.xml.pull.XmlPullParserException
- if there's a problem parsing the model
MacroExecutionException
- if there's a problem executing a macroprotected void handleText(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException
This is a default implementation, if the parser points to a non-empty text element, it is emitted as a text event into the specified sink.
handleText
in class AbstractXmlParser
parser
- A parser, not null.sink
- the sink to receive the events. Not null.
org.codehaus.plexus.util.xml.pull.XmlPullParserException
- if there's a problem parsing the modelprotected void handleComment(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException
This is a default implementation, all data are emitted as comment events into the specified sink.
handleComment
in class AbstractXmlParser
parser
- A parser, not null.sink
- the sink to receive the events. Not null.
org.codehaus.plexus.util.xml.pull.XmlPullParserException
- if there's a problem parsing the modelprotected void handleCdsect(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException
This is a default implementation, all data are emitted as text events into the specified sink.
handleCdsect
in class AbstractXmlParser
parser
- A parser, not null.sink
- the sink to receive the events. Not null.
org.codehaus.plexus.util.xml.pull.XmlPullParserException
- if there's a problem parsing the modelprotected void consecutiveSections(int newLevel, Sink sink)
HTML doesn't have any sections, only sectionTitles (<h2> etc), that means we have to open close any sections that are missing in between.
For instance, if the following sequence is parsed:
<h3></h3> <h6></h6>we have to insert two section starts before we open the
<h6>
.
In the following sequence
<h6></h6> <h3></h3>we have to close two sections before we open the
<h3>
.
The current level is set to newLevel afterwards.
newLevel
- the new section level, all upper levels have to be closed.sink
- the sink to receive the events.protected int getSectionLevel()
protected void setSectionLevel(int newLevel)
newLevel
- the new section level.protected void verbatim_()
protected void verbatim()
protected boolean isVerbatim()
protected boolean isScriptBlock()
<script>
tags.protected String validAnchor(String id)
id
- The id to validate.
DoxiaUtils.encodeId(String)
protected void init()
Parser.parse(java.io.Reader, org.apache.maven.doxia.sink.Sink)
and can be used
to set the parser into a clear state so it can be re-used.
init
in class AbstractParser
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |