Project Description
Wiki .NET Parser, Open Source project powered by ANTLR. Syntax defined in 3(4) files Lexer, Grammar, AST Parser.

Now available on

Wiki .NET Parser portal
The Wiki .NET Parser is an Open Source (free) tool, which converts the text written with Wiki .NET Syntax into the HTML.
The underlying engine is the ANTLR - the ultimate tool for text parsing.

Wiki .NET Parser has in fact only one public method ConvertToHtml():

var result = ProjectBase.Tools.Wiki.WikiProvider.ConvertToHtml(sourceText);

The Wiki .NET Parser needs:
- Only one ANTLR run-time library (one .dll), which is distributed with NHiberante anyway!
- One library with the Wiki .NET Parser generated code; or nothing if you'll include these classes into your own code!!!

Wiki .NET Parser - history

During the development of the Catharsis framework (latest release based web-applications we were often facing customer requirement:
User: Create documentation for us!
Developer: But we do not have a knowledge about your business processes..., we said.
User: OK, then we (users) will assemble these documents and you will publish them in the web-application (convert them to the HTML). And of course, change them when we will have new versions...

A bit scaring and frustrating after few runs. We realized that we need a tool which will do this job for us. We were searching for some Open Source Wiki .NET Parser, but either it was brutally robust or it was not for free.

Then NHibernate in version 2.1 introduced the ANTLR - really ultimate text parser tool. It was used for the HQL syntax parsing, so there was the real proof of the concept in the NHibernate library, which we was using anyway.

The decision was clear: If there is such a powerful parser like ANTLR distributed with our application anyway - why should not we reuse it for another parsing?

Wiki .NET Syntax

The goal was clear, use the common Wiki syntax for our users. But surprisingly - there is NO general Wiki syntax. Sad. But the reality. We could choose one of the existing syntax, or to create another one - the one more suitable for:
- easy to learn for users !!!
- easy to implement with the ANTLR
The result is, well, cool:! And what's more:
  • Syntax is easy to implement with the ANTLR parser.
  • The definition is placed in 3 files (plus one with the partial C# class)
  • Users are happy with the syntax;

Last edited Jan 29, 2013 at 12:29 PM by Radim, version 4