A binding to Discount, a fast C implementation of the Markdown text to HTML markup system.
C Lua
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cmake
.travis.yml
CMakeLists.txt
LICENSE
Makefile
README.mkd
amalloc.h
bench.lua
config.h
cstring.h
discount.def
dist.info
docheader.c
dumptree.c
generate.c
ldiscount.c
lua-discount-dev-1.rockspec
markdown.c
markdown.h
mkdio.c
mkdio.h
resource.c
test_discount.lua

README.mkd

lua-discount

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

  • lua-discount-1.2.10.1 (2008-09-22)
    • Windows is now a supported platform (thanks to contributions from Tim Channon)
  • lua-discount-1.2.10 (2008-09-03)
    • update to upstream Discount 1.2.10
    • support the "nohtml" option, to disable embedded html.
    • compile to use relaxed emphasis, meaning underscores don't count when they're in the middle of a word.
    • add some tests
    • include results of a simple benchmark in the readme
  • lua-discount-1.2.7 (2008-08-03)
    • first public release

See also

Performance

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

Usage

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](http://example.com).
  ]]
  
  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:

="nolinks"= do not allow <a or expand Markdown links. ="noimages"= do not allow <img or expand Markdown images. ="nopants"= disable SmartyPants processing. ="nohtml"= disallow embedded html by replacing all < with &lt;. ="tagtext"= don't expand * or _ when used for emphasis. ="noext"= do not process pseudo-protocols ="cdata"= generate output suitable for use as data in an XML document. = "embed"= 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.

Contact

Author: A.S. Bradbury
Email: asb@asbradbury.org
Homepage: http://asbradbury.org/