A binding to Discount, a fast C implementation of the Markdown text to HTML markup system. Discount passes the Markdown test suite.

Project links

Release history

See also


Thanks to the underlying Discount implementation, lua-discount is incredibly fast. Benchmarking markdown.lua 0.32 against lua-discount 1.2.10 by parsing the Markdown syntax document 100 times gives the following result (all figures are in seconds):

                   user     system      total       real
lua-discount   0.170000   0.000000   0.170000   0.177374
markdown.lua  48.530000   0.000000  48.530000  48.524910


Note that require("discount") returns a single function, which you are responsible for giving a suitable name. Example:

discount = require("discount")

local markdown_string = [[
  # Demonstration
  This is a demonstration of lua-discount. Passing the options `"nolinks"` 
  disables links such as [this](

  local html_string = discount(markdown_string, "nolinks")

The discount function takes as its first argument the Markdown string to convert, and for its subsequent arguments takes any combination of the following strings as options:

do not allow <a or expand Markdown links.
do not allow <img or expand Markdown images.
disable SmartyPants processing.
disallow embedded html by replacing all < with &lt;.
don't expand * or _ when used for emphasis.
do not process pseudo-protocols
generate output suitable for use as data in an XML document.
equivalent to specifying "nolinks", "noimages" and "tagtext".

License and acknowledgements

lua-discount is distributed under a BSD-style license.

Thanks to Tim Channon for Windows support.

This product includes software developed by David Loren Parsons.


Author: A.S. Bradbury