Hi,
I'd like to propose refactoring the Listener/Renderer classes for the
following reasons:
* too hard to write renderers since they're using a "streaming" API
which makes it very difficult to have lookaheads
* streaming api not required since we're using a XDOM object which
"breaks" streaming anyway
Thus I'm proposing to:
* Remove Listener interface
* Modify Renderer interface to have a single method: render(XDOM,
WikiPrinter)
* Rewrite existing Renderers and make them components (it would now be
possible)
I have brainstormed on this with Thomas Mortagne and we have both
agreed that we don't see any problems with this since we absolutely
need the XDOM object for:
* ability to have macro priorities (TOC, Include macro, etc) and
powerful transformations in general
* ability to cache parsed content
Let me know what you think quickly since I'd like to start the
refactoring ASAP since it's a prerequisite for doing another
refactoring (moving the XWikiXhtmlEscapeHandler to the
XWikiSyntaxRenderer) which itself is required for solving this issue:
http://jira.xwiki.org/jira/browse/XWIKI-2851
Thanks
-Vincent