# Showdown [![build status](https://secure.travis-ci.org/coreyti/showdown.png)](http://travis-ci.org/coreyti/showdown) A JavaScript port of Markdown ## Note > **Please note** that I, [Corey](https://github.com/coreyti), am not the author > of Showdown. Rather, I found it some time back at > (website removed, see: ) > and wanted to see it available on GitHub. > > All credit and praise for authoring this library should go to John Fraser. > > Oh, and John Gruber of course. > > That said, Showdown *is* evolving. See below for a list of contributors and an > overview of their contributions to the project. > > Apologies for any confusion or perceived misinformation. > > Cheers,
> Corey ## Original Attributions Showdown Copyright (c) 2007 John Fraser. Original Markdown Copyright (c) 2004-2005 John Gruber Redistributable under a BSD-style open source license. See license.txt for more information. ## Quick Example ```js var Showdown = require('showdown'); var converter = new Showdown.converter(); converter.makeHtml('#hello markdown!'); //

hello, markdown

``` ## What's it for? Developers can use Showdown to: * Add in-browser preview to existing Markdown apps Showdown's output is (almost always) identical to markdown.pl's, so the server can reproduce exactly the output that the user saw. (See below for exceptions.) * Add Markdown input to programs that don't support it Any app that accepts HTML input can now be made to speak Markdown by modifying the input pages's HTML. If your application lets users edit documents again later, then they won't have access to the original Markdown text. But this should be good enough for many uses -- and you can do it with just a two-line `onsubmit` function! * Add Markdown input to closed-source web apps You can write bookmarklets or userscripts to extend any standard textarea on the web so that it accepts Markdown instead of HTML. With a little more hacking, the same can probably be done with many rich edit controls. * Build new web apps from scratch A Showdown front-end can send back text in Markdown, HTML or both, so you can trade bandwidth for server load to reduce your cost of operation. If your app requires JavaScript, you won't need to do any Markdown processing on the server at all. (For most uses, you'll still need to sanitize the HTML before showing it to other users -- but you'd need to do that anyway if you're allowing raw HTML in your Markdown.) ## Browser Compatibility Showdown has been tested successfully with: * Firefox 1.5 and 2.0 * Internet Explorer 6 and 7 * Safari 2.0.4 * Opera 8.54 and 9.10 * Netscape 8.1.2 * Konqueror 3.5.4 In theory, Showdown will work in any browser that supports ECMA 262 3rd Edition (JavaScript 1.5). The converter itself might even work in things that aren't web browsers, like Acrobat. No promises. ## Extensions Showdown allows additional functionality to be loaded via extensions. ### Client-side Extension Usage ```js