lua-discount
lua-discount copied to clipboard
Lua binding to the discount C implementation of the Markdown text-to-html markup system
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.3.1 (unreleased)
- update to updstream Discount 1.3.1
- new language extensions: class blocks, superscripts and alphabetic ordered lists.
- support the
"toc"option for table of contents generation - headers will include anidattribute. - support the
"strict"option, to disable relaxed emphasis and superscripts.
- 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 <.
="strict"=
disable relaxed emphasis and superscripts.
="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.
="toc"=
generate table-of-contents headers - each generated <h1>, <h2>, etc
will include an id attribute.
="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: [email protected]
Homepage: http://asbradbury.org/