Markdown Processor

The gist: Build a library and command-line tool that takes a Markdown file, converts it to HTML, and outputs it to stdout.

There will definitely be libraries out there that already do this for a given language, usually many of them. But the fun here is in taking a pretty manageable specification like CommonMark and writing your own parser and translator to HTML.


Let's call the program and lib marcus.

Command line:

marcus > foo.html

It'd be great if you could send it via pipes too, like cat | marcus > foo.html

If you're building the CLI out, it'd also be nice to have a library that you can use in that language as well.

Marus.to_html("# Hi\n[my link](/bye)\n")

Would output:


<p><a href="/bye">my link</a></p>


  • Parsing text into a data structure and converting it into HTML
  • Pipes and CLI if you go that route

Stretch Goals

  • Support converting HTML to MD
  • Support bulk converting multiple files
  • Add the ability to wrap the generated page in a template of HTML

See Also