Your SlideShare is downloading. ×
The Radeox Wiki Render Engine
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

The Radeox Wiki Render Engine


Published on

This is the presentation for our talk at the Wiki Symposium 2006 presenting Radeox.

This is the presentation for our talk at the Wiki Symposium 2006 presenting Radeox.

Published in: Technology, Education

1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. The Radeox Wiki Render Engine Stephan Schmidt
  • 2. Stephan Schmidt • Computer Science and Philosophy • Project manager and development director in several SME • 1999 CTO neotis GmbH, Knowledge management with semantic wikis and weblogs • 2002 Fraunhofer FIRST, Knowledge management for software development with wikis • WikiSym 2005 Commitee Seite 2
  • 3. Radeox Render __Stephan__ <b>Stephan</b> Engine Seite 3
  • 4. Types Custom Parser Render Regex Engine Engine Generated Parser Seite 4
  • 5. Radeox Wiki Render Engine Regex • Regex based Java Render Engine Engine • Started as component in SnipSnap Wiki • Created component due to user requests • Relicensed from GPL to ASL • Used in several Java based Wikis Seite 5
  • 6. Wiki Architecture JSP, JSF, WebWork, Web Framework Struts, Wicket Markup Rendering Radeox Engine Glue Wiki Existence Manager Files, XML, Storage Backend JDBC, JCR Hibernate Seite 6
  • 7. Architecture with Render Pipeline Filter Macros Pipe Filter Macro Macro Macro Filter Render Engine Macro Filter Macro Component Container Filter (PicoContainer, Spring, J2EE) FilterContext MacroParameter Render Engine Seite 7
  • 8. Using the Radeox API • Java • Modularized, easy to extend • Filters and Macros • Easy API RenderContext context = new BaseRenderContext(); RenderEngine engine = new BaseRenderEngine(); String result = engine.render(quot;__Radeox__quot;, context); Seite 8
  • 9. Hello World Macro {hello} public class HelloWorldMacro extends BaseMacro { public String getName() { return quot;helloquot;; } public void execute(Writer writer, MacroParameter params) { writer.write(quot;Hello World!quot;); } } Seite X
  • 10. Customize filter.italic.match = ~~(.*?)~~ filter.italic.print = <i class=quot;italicquot;>$1</i> Seite 9
  • 11. Radeox Future • Standard markup? • Javascript render engine? • Parser based render engine with local contexts Seite 10
  • 12. Markups? h1. TextileHeader1 h2. TextileHeader2 h3. TextileHeader3 ==Wikipediasection== ===WikipediaSubsection=== ====WikipediaSub-subsection==== 1 RadeoxFirstOrderHeading 1.1 RadeoxSecondOrderHeading 1.1.1 RadeoxThirdOrderHeading Seite 11
  • 13. Javascript Render Engine • Client side Render Engine (Dojo widget?) • Works for all Wikis • With AJAX less server requests (edit) • Can be used on the server-side too Seite 12
  • 14. Wiki Content as an Abstract Syntax Tree (AST) • Better context awareness Article • Higher level manipulations Section Section Section (Refactoring...) • Template evolution Paragraph Paragraph • People do this already Text Bold Macro Text Seite 13
  • 15. Dynamic generated Parser name: bold • EBNF too complicated, quot;Parser Lingoquot; parents: text • Easy definition needed children: paragraph, text • Local, independent descriptions Local Description Local Unified Parser Parser Description Description Generator Local Description Seite 14
  • 16. Thanks Matthias L. Jugel Fraunhofer FIRST Stephan J. Schmidt Fraunhofer FIRST Seite 15