-
-
Notifications
You must be signed in to change notification settings - Fork 316
List of CommonMark Implementations
PANCHOHACK edited this page Sep 22, 2024
·
1 revision
## Recently maintained projects
### C
- [cmark](https://github.com/commonmark/cmark) (reference implementation, high performance executable and library)
- [cmark-gfm](https://github.com/github/cmark) - GitHub’s fork of cmark with extensions for tables, etc.
- [MD4C](https://github.com/mity/md4c) - very fast parser implementation with minimalistic interface (in XML-parsing analogy, it is more like a SAX parser, not DOM parser)
### C# ###
- [CommonMark.NET](https://github.com/Knagis/CommonMark.NET) - available on [NuGet](https://www.nuget.org/packages/CommonMark.NET/)
- [Markdig](https://github.com/lunet-io/markdig) - available on [NuGet](https://www.nuget.org/packages/Markdig/)
### Common Lisp
- [cl-cmark](https://gitlab.com/HiPhish/cl-cmark) (wraps the C library)
### Crystal
- [markd](https://github.com/icyleaf/markd) - written in Crystal
### D
- [commonmark-d](https://github.com/p0nce/commonmark-d) (port of MD4C)
- [hunt-markdown](https://github.com/huntlabs/hunt-markdown) (port of commonmark-java)
### Dart
- [markdown](https://github.com/dart-lang/markdown) - available on [Pub](https://pub.dev/packages/markdown)
### Elixir
- [Cmark](https://github.com/asaaki/cmark.ex) (wraps the C library)
### Emacs Lisp
- [cmark](https://github.com/taku0/cmark-el) (port of commonmark.js)
### Go
- [golang-commonmark/markdown](https://gitlab.com/golang-commonmark/markdown) - pure Go implementation
- [go-commonmark](https://github.com/rhinoman/go-commonmark) (wraps the C library)
- [goldmark](https://github.com/yuin/goldmark) - pure Go implementation
- [Lute](https://github.com/88250/lute) - pure Go implementation
### Haskell
- [cmark](http://hackage.haskell.org/package/cmark) (wraps the C library)
- [commonmark-hs](https://github.com/jgm/commonmark-hs) - pure Haskell implementation
### Haxe
- [necmark](https://github.com/ConstNW/necmark) (wraps the C library) - neko target
### Java
- [commonmark-java](https://github.com/commonmark/commonmark-java) - pure Java
- [flexmark-java](https://github.com/vsch/flexmark-java) - pure Java, with source level AST down to single characters
### JavaScript
- [commonmark.js](https://github.com/jgm/commonmark.js) (reference implementation) - [`npm install commonmark`](https://www.npmjs.org/package/commonmark)
- [markdown-it](https://github.com/markdown-it/markdown-it) (high speed pluggable implementation) - [`npm install markdown-it`](https://www.npmjs.org/package/markdown-it)
- [cmark-emscripten](https://github.com/mvasilkov/cmark-emscripten) (port of the C library to [WebAssembly](https://developer.mozilla.org/en-US/docs/WebAssembly)) - [`npm install cmark-emscripten`](https://www.npmjs.com/package/cmark-emscripten)
- [mdx](https://github.com/mdx-js/mdx) (superset of CommonMark that adds embedded JSX and import/export syntax)
- [ciceromark](https://github.com/accordproject/markdown-transform) - The CiceroMark DOM extends the CommonMark DOM for [smart legal contracts](https://www.accordproject.org); defining nodes for `Clause`, `Variable`, and `ComputedVariable`
### Julia
- [CommonMark.jl](https://github.com/MichaelHatherly/CommonMark.jl) (pure Julia implementation with extensions)
### Lua
- [cmark-lua](https://github.com/jgm/cmark-lua) (wraps the C library) - [`luarocks install cmark`](https://luarocks.org/modules/jgm/cmark)
- [lcmark](https://github.com/jgm/lcmark) (higher level interface around cmark, adding YAML metadata, filters, and templates)
### LuaTeX
- [The Markdown Package for TeX](https://github.com/witiko/markdown) (Rewrite of lunamark Lua library for typesetting CommonMark documents in TeX)
### OCaml
- [Cmarkit](https://erratique.ch/software/cmarkit) – pure OCaml implementation
### Perl
- [CommonMark](https://metacpan.org/release/CommonMark) (wraps the C library)
- [pmarkdown](https://metacpan.org/dist/Markdown-Perl) - pure Perl implementation
### PHP
- [league/commonmark](http://commonmark.thephpleague.com/) - Highly-extensible PHP implementation based on commonmark.js with support for custom extensions
- [cmark](http://docs.php.net/cmark) - PECL extension based on the original [cmark](https://github.com/jgm/cmark) implementation
### Python
- [markdown-it-py](https://github.com/ExecutableBookProject/markdown-it-py) - A pure Python port of the JS markdown-it library; High speed and pluggable
- [mistletoe](https://github.com/miyuchina/mistletoe) - Fastest, extensible implementation in pure Python
- [Marko](https://github.com/frostming/marko) - A pure Python implementation, focusing on easy extensibility
### Ruby/RubyMotion
- [CommonMarker](https://github.com/gjtorikian/commonmarker) (wraps the C library)
- [motion-markdown-it](https://github.com/digitalmoksha/motion-markdown-it/) - Based on the JS markdown-it library, ported to Ruby and RubyMotion
### R
- [commonmark](http://cran.r-project.org/package=commonmark) (wraps the C library)
### Racket
- [commonmark](https://lexi-lambda.github.io/racket-commonmark/) — native Racket, with full test coverage
### Rust
- [comrak](https://github.com/kivikakk/comrak) - Architecture based on cmark-gfm, with GitHub extensions.
- [pulldown-cmark](https://github.com/google/pulldown-cmark) - Novel, performance-oriented architecture.
- [markdown-rs](https://github.com/wooorm/markdown-rs) - CommonMark compliant markdown parser with ASTs and extensions
### Scala
- [cmark-scala](https://github.com/sparsetech/cmark-scala) (wraps the C library)
### Scheme
- [guile-commonmark](https://github.com/OrangeShark/guile-commonmark/) - GNU Guile Scheme
### Swift
- [Down](https://github.com/iwasrobbed/Down) (wraps reference cmark)
- [SwiftMark](https://github.com/Pyroh/SwiftMark) (wraps the C library)
- [MarkdownSyntax](https://github.com/hebertialmeida/MarkdownSyntax) (wraps reference C library for AST access)
### Tcl
- [tcl-cmark](https://github.com/apnadkarni/tcl-cmark) - wraps cmark-gfm
### TypeScript
- [DefinitelyTyped](https://github.com/DefinitelyTyped/DefinitelyTyped) (JS library bindings, [NuGet](https://www.nuget.org/packages/commonmark.TypeScript.DefinitelyTyped))
- [FlavorMark](https://github.com/AnyhowStep/flavormark) (Rewrite of commonmark.js with focus on modularizing parsing logic, [npm](https://www.npmjs.com/package/flavormark))
### Zig
- [koino](https://github.com/kivikakk/koino) - Architecture based on Comrak/cmark-gfm, with GitHub extensions
## Not recently maintained
These projects are based on earlier versions of CommonMark and are now obsolete. But they might be good starting points for new work.
### Dart
- [mdown](https://github.com/dikmax/mdown)
### Idris
- [idris-commonmark](https://github.com/soimort/idris-commonmark)
### Haxe
- [comark](https://github.com/ConstNW/comark)
### Lua
- [luacmark](https://github.com/jgm/luacmark)
- [commonmark-lua](https://github.com/jgm/commonmark-lua) - luajit + FFI
### Python
- [pycommonmark](https://github.com/bpabel/pycommonmark)
- [commonmark.py](https://github.com/rtfd/commonmark.py) - deprecated in favor of [markdown-it-py](https://github.com/ExecutableBookProject/markdown-it-py)
### Swift
- [CommonMark.swift](https://github.com/bnickel/CommonMark.swift)
- [SmarkDown.swft](https://github.com/SwiftStudies/SmarkDown) - Pure Swift