node package manager


Lightweight Markdown publishing with multiple outputs.


Murdoc is a lightweight publishing framework where you write in Markdown and can export to multiple formats. I wrote it primarily as a tool for writing technical documentation that I could then publish as a site and as a PDF.

The output can be styled but for this you'll need some expertise in HTML, CSS and LaTex.


  • Write everything in Kramdown, a superset of Markdown.
  • Simple folder-based structure. Murdoc takes care of stitching everything together. Anyone familiar with should feel right at home.
  • Wiki-style links based on kramdowns automatic generation of header IDs.
  • Output to multiple formats:
    • static HTML using Jekyll
    • PDF (using LaTeX).
    • ePub support will be available in the near future.
  • Templates: customize each output format by providing your own HTML, CSS or LaTeX code.
  • Built-in webserver using express.
  • Built-in folder watching using chokidar: any changes made to the documentation or the templates will automatically re-build the outputs.


Murdoc is available through npm.

npm install -g murdoc


Make sure the following tools are also installed:

Getting Started

Create a new Murdoc project and publish it to html.

murdoc --create --docs folder-name --watch --serve --output=html

Next direct your browser to http://localhost:4000 and you will see the Murdoc documentation. The next time you want to work on a project you can use:

murdoc --docs folder-name --watch --serve --output=html

In 'folder-name' you will now find three folders:

  • docs: the content of your document. We've already put the documentation for Murdoc here, so you have a good example to start from.
  • build: any build output is found here. The static sites end up in build/jekyll/_site. The PDF is written to build/latex/main.pdf.
  • templates: When creating the project we copied in our default templates. Feel free to modify them to your needs, that's what they are there for.