I am considering implementing a custom XWikiRenderer that uses FreeMarker (http://www.freemarker.org/) to render the xwiki templates (src\main\web\templates) and documents, as an alternative to velocity. 

 

I thought that it would be as simple as implementing a custom XWikiRenderer, however I discovered that

* the XWikiVelocityRenderer exposes some static methods, which is used within a few different xwiki classes

* VelocityContext instances are constructed and manipulated outside from the XWikiVelocityRenderer

 

Are there any plans to refactor the code base to support custom XWikiRenderer implementations.

 

My ideal goal would be to enable a mix of rendering engines - freemarker, velocity, or any other template language.  However some metadata would be needed to inform the rendering api which template engine to use.

 

To begin with – I’d like to be able to reuse all of the existing templates, but specify for a wiki, or for a space, that freemarker is the default rendering engine.  Then an enhancement could be to allow each document to override this.

 

Then – the next step could be to allow the templates to be written in freemarker.

 

I am fairly experienced with freemarker having used it on a few web sites over the last few years.  I also implemented the integration code for freemarker in webwork.

 

Thanks,

 

Cameron.