WikiRenderer is a library that converts text marked up via WikiFormatting rules to HTML. It has no dependency on any specific web app implementation, which means it is very easy to reuse in multiple wiki clones. This SampleWiki is just one such clone.

Unlike many other wiki clone implementations, WikiRenderer is not built as a series of regular expressions. In order to minimize memory usage, the HTML is produced by a single pass over the input wiki marked up text. This approach minimizes the number of interim representations of the wiki text are created while generating the final HTML markup.

The original version (v0.2) of WikiRenderer interpreted the wiki text on the fly. This rendering code is based on Eddie Edwards' WikiServer. WikiServer was originally written in C++, but I ported the code to C# so I can use it with ASP.NET.

The current version (v0.5) of WikiRenderer uses a a lexical scanner (generated with Brad Merril's CsLex) to parse the wiki text. HTML markup can be generated directly or the wiki text can be used to generate a compiled class similar to how ASP.NET WebForm pages are compiled.

WikiRenderer consists of the following classes: