A markdown processor written in Nemerle. It runs on the .NET library, so it can be used for any .NET project, C#, Visual Basic or otherwise.
This project can currently output to docx
word format, which can then be converted to pdf
format. The project has been designed to work with different outputs, so future outputs will be added. Here's some planned formats that will be supported:
HTML
- this is the normal output for markdown, so this project will support this as well.LaTeX
-LaTeX
is a very awesome format that can be styled and controlled very easily and instantly, and is used for typesetting books (mostly textbooks) and scientific papers. It is very complicated to use however, so having this output toLaTeX
will get all it's typesetting benefits without having to knowLaTeX
.PowerPoint
- divide slides based horizontal rules and headers, and build a slideshow from a markdown document. It will also supportLaTeX
slideshows as well, using a package likebeamer
.SVG
- A picture format that will leave the text perfectly crisp no matter how zoomed in it is. Other formats such asPNG
can be created from this format if needed. (PNG
and other picture formats may be supported directly in the future.
Markdown is simple to learn, but still rather large, and there's no actual standard format. There are many extensions to Markdown, and eventually this project will support most of the common ones (such as tables and automatic hyperlinking), however the core of Markdown must be implemented first. A specification (sort of) for the core can be found here. The major elements are listed below along with their progress:
- Paragraphs - Complete, not fully tested
- Line Breaks - Complete, not fully tested
- Headers - Complete, not fully tested
- Block Quotes - Not started
- Lists - Not started
- Code Blocks - Not started
- Horizontal Rules - Not started
As well the following inline elements:
- Bold - Complete, not fully tested
- Italics - Complete, not fully tested
- Links - Partially completed (inline complete, reference not started)
- Inline Code - Not started
If you'd like to contribute you need to have Nemerle installed. You may have to fix references to Nemerle.Peg
and Nemerle.Peg.Macro
(I've had weird issues with it).
You can contribute by extending the parser to support more of the core syntax