Hi, We've had an interesting discussion with Thomas about the need to introduce a new onRawText() event in the rendering module to replace the current begin/endXML() events. Here's the need (discovered by Ludovic): * In some cases we want to inject rendered content directly in the renderer's output. For example there are some cases where we want to inject HTML directly (in order to bypass parsing) What we propose: * Remove the current XML events * Add a onRawText(Syntax syntax) event and a corresponding RawBlock block. A raw text is text injected directly in the rendered output without any parsing/modification. Note that the content depends completely on the rendered used hence the Syntax parameter. * Add a new {{raw syntax="syntaxId"}} macro so that users can inject content in the few cases where it's needed * Modify the HTML Macro to use RawBlock blocks instead of XMLBlock. Also add a new "clean=true|false" parameter (defaut is to clean). When clean = true, we pass the content to the HTML cleaner. <Implementation note>We still need to parse the content when wiki=true. We generate RawBlock blocks when we have startElement/ endElement/CDATA/Comment xml parser events.</Implementation note> This solves a number of issues: * We have a generic way to inject rendered content directly for the special cases when it's needed (ex: the user really wants to inject invalid HTML such as META tags in the body content) * We remove the XML events which were a bit weird to have in the first place. Note that we'll probably need to add some new events in the future such as one for demarcating a set of blocks (which would translate in DIV or SPAN in the XHTML renderer for example). This is needed for example for the Box Macro which is currently using XMLBlock but that's not completely correct. WDYT? Thanks -Vincent