What is the most mature and maintained Markdown processor?
I need to Process Markdown at the command line, so there is no real language restriction.
Extra features such as pretty quotes and dashes are a welcome addition. Code blocks开发者_如何学编程 are a must, but they are part of the core I think.
I want to output to HTML only, and I'm on a Unix environment.
Pandoc allows you convert Markdown to HTML (and back!) and much more.
$ pandoc --help
pandoc [OPTIONS] [FILES]
Input formats:
native, json, markdown, markdown+lhs, rst, rst+lhs,
textile, html, latex, latex+lhs
Output formats:
native, json, html, html+lhs, s5, slidy, docbook,
opendocument, latex, latex+lhs, context, texinfo,
man, markdown, markdown+lhs, plain, rst, rst+lhs,
mediawiki, textile, rtf, org, odt, epub
Options:
-f FORMAT, -r FORMAT --from=FORMAT, --read=FORMAT
-t FORMAT, -w FORMAT --to=FORMAT, --write=FORMAT
-s --standalone
-o FILENAME --output=FILENAME
-p --preserve-tabs
--tab-stop=NUMBER
--strict
--normalize
--reference-links
-R --parse-raw
-S --smart
-5 --html5
-m[URL] --latexmathml[=URL], --asciimathml[=URL]
--mathml[=URL]
--mimetex[=URL]
--webtex[=URL]
--jsmath[=URL]
--mathjax[=URL]
--gladtex
-i --incremental
--offline
--xetex
--chapters
-N --number-sections
--listings
--section-divs
--no-wrap
--columns=NUMBER
--ascii
--email-obfuscation=none|javascript|references
--id-prefix=STRING
--indented-code-classes=STRING
--toc, --table-of-contents
--base-header-level=NUMBER
--template=FILENAME
-V KEY:VALUE --variable=KEY:VALUE
-c URL --css=URL
-H FILENAME --include-in-header=FILENAME
-B FILENAME --include-before-body=FILENAME
-A FILENAME --include-after-body=FILENAME
-T STRING --title-prefix=STRING
--reference-odt=FILENAME
--epub-stylesheet=FILENAME
--epub-cover-image=FILENAME
--epub-metadata=FILENAME
-D FORMAT --print-default-template=FORMAT
--bibliography=FILENAME
--csl=FILENAME
--natbib
--biblatex
--data-dir=DIRECTORY
--dump-args
--ignore-args
-v --version
-h --help
$ pandoc --version
pandoc 1.8.2
Compiled with citeproc support.
Compiled with syntax highlighting support for:
Actionscript, Ada, Alert, Alert_indent, Ansys, Apache,
Asn1, Asp, Awk, Bash, Bibtex, Boo, C, Changelog, Cisco,
Cmake, Coffeescript, Coldfusion, Commonlisp, Cpp, Cs,
Css, Cue, D, Desktop, Diff, Djangotemplate, Doxygen,
Doxygenlua, Dtd, Eiffel, Email, Erlang, Fortran, Fsharp,
Fstab, Gap, Gdb, Gettext, Gnuassembler, Go, Haskell,
Haxe, Html, Idl, Ilerpg, Ini, Java, Javadoc, Javascript,
Json, Jsp, Latex, Lex, LiterateHaskell, Lua, M3u,
Makefile, Mandoc, Matlab, Maxima, Mediawiki, Metafont,
Mips, Modula2, Modula3, Monobasic, Nasm, Noweb,
Objectivec, Objectivecpp, Ocaml, Octave, Pango, Pascal,
Perl, Php, Pike, Postscript, Prolog, Python, R,
Relaxngcompact, Rhtml, Ruby, Scala, Scheme, Sci, Sed,
Sgml, Sql, SqlMysql, SqlPostgresql, Tcl, Texinfo,
Verilog, Vhdl, Winehq, Wml, Xharbour, Xml, Xorg, Xslt,
Xul, Yacc, Yaml
Copyright (C) 2006-2011
I've been using python with http://www.freewisdom.org/projects/python-markdown/ without any problem so far, and it has a simple extension mechanism.
There's also Discount, David Parsons' C implementation of John Gruber's Markdown text to html language. Discount consists of several command-line tools including markdown
, mkd2html
, makepage
, mktags
and theme
.
http://www.pell.portland.or.us/~orc/Code/discount/
Also recommend Pandoc with below benefit:
- code syntax highlighting in pandoc markdown is great for html, and it is growing !
- pandoc markdown support is similar to github flavored markdown
- more output format besides html, which probably you need in later like ebook
It is powerful!
I'm not sure what the most maintained is, and I'm certainly biased by using it here most, but the one SO uses is also available on github, it's the markdownsharp project, written in C# and pretty well maintained.
It fixes many of the bugs in the original markdown implementation, found by SO users as questions were asked, like most things, just a project that came out of a necessity. That being said, some of how markdown works is as designed per the spec, but isn't necessarily intuitive, it's the maintainers prerogative there as to what action to take there, intuitive vs spec...so you may have to adjust any implementation a bit to get exactly what you want in some edge cases.
精彩评论