From 189b325f19bc91691cf7ee24484de86f1c3c8a73 Mon Sep 17 00:00:00 2001 From: Devin Torres Date: Fri, 20 Sep 2013 01:09:52 -0500 Subject: Begin code reorganization --- README.md | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 README.md (limited to 'README.md') diff --git a/README.md b/README.md new file mode 100644 index 0000000..39979eb --- /dev/null +++ b/README.md @@ -0,0 +1,135 @@ +Hoedown +======= + +`Hoedown` is a revived fork of [Sundown](https://github.com/vmg/sundown), +the Markdown parser based on the original code of the +[Upskirt library](http://fossil.instinctive.eu/libupskirt/index) +by Natacha Porté. + +Features +-------- + +* **Fully standards compliant** + + `Hoedown` passes out of the box the official Markdown v1.0.0 and v1.0.3 + test suites, and has been extensively tested with additional corner cases + to make sure its output is as sane as possible at all times. + +* **Massive extension support** + + `Hoedown` has optional support for several (unofficial) Markdown extensions, + such as non-strict emphasis, fenced code blocks, tables, autolinks, + strikethrough and more. + +* **UTF-8 aware** + + `Hoedown` is fully UTF-8 aware, both when parsing the source document and when + generating the resulting (X)HTML code. + +* **Tested & Ready to be used on production** + + `Sundown` has been extensively security audited, and includes protection against + all possible DOS attacks (stack overflows, out of memory situations, malformed + Markdown syntax...) and against client attacks through malicious embedded HTML. + + We've worked very hard to make `Hoedown` never crash or run out of memory + under *any* input. `Hoedown` renders all the Markdown content in GitHub and so + far hasn't crashed a single time. + +* **Customizable renderers** + + `Hoedown` is not stuck with XHTML output: the Markdown parser of the library + is decoupled from the renderer, so it's trivial to extend the library with + custom renderers. A fully functional (X)HTML renderer is included. + +* **Optimized for speed** + + `Hoedown` is written in C, with a special emphasis on performance. When wrapped + on a dynamic language such as Python or Ruby, it has shown to be up to 40 + times faster than other native alternatives. + +* **Zero-dependency** + + `Hoedown` is a zero-dependency library composed of 3 `.c` files and their headers. + No dependencies, no bullshit. Only standard C99 that builds everywhere. + +Credits +------- + +`Hoedown` is a fork of `Sundown`. + +`Sundown` is based on the original Upskirt parser by Natacha Porté, with many additions +by Vicent Marti (@vmg) and contributions from the following authors: + + Ben Noordhuis, Bruno Michel, Joseph Koshy, Krzysztof Kowalczyk, Samuel Bronson, + Shuhei Tanuma + +Bindings +-------- + +`Hoedown` is available from other programming languages thanks to these bindings developed +by our awesome contributors. + +- [Redcarpet](https://github.com/vmg/redcarpet) (Ruby) +- [RobotSkirt](https://github.com/benmills/robotskirt) (Node.js) +- [Misaka](https://github.com/FSX/misaka) (Python) +- [ffi-sundown](https://github.com/postmodern/ffi-sundown) (Ruby FFI) +- [Sundown HS](https://github.com/bitonic/sundown) (Haskell) +- [Goskirt](https://github.com/madari/goskirt) (Go) +- [Upskirt.go](https://github.com/buu700/upskirt.go) (Go) +- [MoonShine](https://github.com/brandonc/moonshine) (.NET) +- [PHP-Sundown](https://github.com/chobie/php-sundown) (PHP) +- [Sundown.net](https://github.com/txdv/sundown.net) (.NET) + +Help us +------- + +`Hoedown` is all about security. If you find a (potential) security vulnerability in the +library, or a way to make it crash through malicious input, please report it to us, +either directly via email or by opening an Issue on GitHub, and help make the web safer +for everybody. + +Unicode character handling +-------------------------- + +Given that the Markdown spec makes no provision for Unicode character handling, `Hoedown` +takes a conservative approach towards deciding which extended characters trigger Markdown +features: + +* Punctuation characters outside of the U+007F codepoint are not handled as punctuation. + They are considered as normal, in-word characters for word-boundary checks. + +* Whitespace characters outside of the U+007F codepoint are not considered as + whitespace. They are considered as normal, in-word characters for word-boundary checks. + +Install +------- + +There is nothing to install. `Hoedown` is composed of 3 `.c` files (`markdown.c`, +`buffer.c` and `array.c`), so just throw them in your project. Zero-dependency means +zero-dependency. You might want to include `render/html.c` if you want to use the +included XHTML renderer, or write your own renderer. Either way, it's all fun and joy. + +If you are hardcore, you can use the included `Makefile` to build `Hoedown` into a dynamic +library, or to build the sample `sundown` executable, which is just a commandline +Markdown to XHTML parser. (If gcc gives you grief about `-fPIC`, e.g. with MinGW, try +`make MFLAGS=` instead of just `make`.) + +License +------- + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + + + + -- cgit v1.2.1