Monadic markdown parser written in Haskell, built from scratch without libraries.
Coming from Go and Python, Haskell's type system and purely functional approach was a different mental model. I wrote this to gain Haskell experience and learn how to structure a parser using only Functor, Applicative, and Monad instances.
- Headings
- Paragraphs
- Blockqotes
- Horizontal rules
- Bold
- Italic
- Inline code
- Links
- Strikethrough
- Ordered/Unordered lists
- Code blocks
Reads stdin
cabal run- Recursive list parsing
- Escape characters (e.g.
\*text\*) - HTML output