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
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
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
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
matthias.jugel@first.fraunhofer.de
Stephan J. Schmidt
Fraunhofer FIRST
stephan.schmidt@first.fraunhofer.de
Seite 15