Recently maintained projects
C
- cmark (reference implementation, high performance executable and library)
- cmark-gfm - GitHub's fork of cmark with extensions for tables, etc.
- 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 - available on NuGet
- Markdig - available on NuGet
Common Lisp
- cl-cmark (wraps the C library)
Crystal
- markd - written in Crystal
D
- commonmark-d (port of MD4C)
- hunt-markdown (port of commonmark-java)
Dart
Elixir
- Cmark (wraps the C library)
Emacs Lisp
- cmark (port of commonmark.js)
Go
- golang-commonmark/markdown - pure Go implementation
- go-commonmark (wraps the C library)
- goldmark - pure Go implementation
- Lute - pure Go implementation
Haskell
- cmark (wraps the C library)
- commonmark-hs - pure Haskell implementation
Haxe
- necmark (wraps the C library) - neko target
Java
- commonmark-java - pure Java
- flexmark-java - pure Java, with source level AST down to single characters
JavaScript
-
commonmark.js (reference
implementation) -
npm install commonmark -
markdown-it (high speed pluggable implementation) -
npm install markdown-it -
cmark-emscripten (port of the C library to WebAssembly) -
npm install cmark-emscripten - mdx (superset of CommonMark that adds embedded JSX and import/export syntax)
-
ciceromark - The CiceroMark DOM extends the CommonMark DOM for smart legal contracts; defining nodes for
Clause,Variable, andComputedVariable
Julia
- CommonMark.jl (pure Julia implementation with extensions)
Lua
-
cmark-lua (wraps the C library) -
luarocks install cmark - lcmark (higher level interface around cmark, adding YAML metadata, filters, and templates)
LuaTeX
- The Markdown Package for TeX (Rewrite of lunamark Lua library for typesetting CommonMark documents in TeX)
OCaml
- Cmarkit โ pure OCaml implementation
Perl
- CommonMark (wraps the C library)
- pmarkdown - pure Perl implementation
PHP
- league/commonmark - Highly-extensible PHP implementation based on commonmark.js with support for custom extensions
- cmark - PECL extension based on the original cmark implementation
Python
- markdown-it-py - A pure Python port of the JS markdown-it library; High speed and pluggable
- mistletoe - Fastest, extensible implementation in pure Python
- Marko - A pure Python implementation, focusing on easy extensibility
Ruby/RubyMotion
- CommonMarker (wraps the C library)
- motion-markdown-it - Based on the JS markdown-it library, ported to Ruby and RubyMotion
R
- commonmark (wraps the C library)
Racket
- commonmark โ native Racket, with full test coverage
Rust
- comrak - Architecture based on cmark-gfm, with GitHub extensions.
- pulldown-cmark - Novel, performance-oriented architecture.
- markdown-rs - CommonMark compliant markdown parser with ASTs and extensions
Scala
- cmark-scala (wraps the C library)
Scheme
- guile-commonmark - GNU Guile Scheme
Swift
- Down (wraps reference cmark)
- SwiftMark (wraps the C library)
- MarkdownSyntax (wraps reference C library for AST access)
Tcl
- tcl-cmark - wraps cmark-gfm
TypeScript
- DefinitelyTyped (JS library bindings, NuGet)
- FlavorMark (Rewrite of commonmark.js with focus on modularizing parsing logic, npm)
Zig
- 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
Idris
Haxe
Lua
- luacmark
- commonmark-lua - luajit + FFI
Python
- pycommonmark
- commonmark.py - deprecated in favor of markdown-it-py
Swift
- CommonMark.swift
- SmarkDown.swft - Pure Swift