commonmark/commonmark-spec

CommonMark spec, with reference implementations in C and JavaScript

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 19 minutes ago
Added to GitGenius on September 13th, 2026
Created on August 14th, 2014
Open Issues & Pull Requests: 130 (+0)
GitHub issues: Enabled
Number of forks: 358
Total Stargazers: 5,142 (+0)
Total Subscribers: 140 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 4.5 hours
Mean response time: 25.6 days
90th percentile: 37.2 hours
Tracked items: 51

Most active contributors

Sign in to see contributor activity.

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 6% of issues opened in the past year have been closed. Three people close 92% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 30
New in 7 days: 1
Closed in 7 days: 1
Avg open age: 855 days
Stale 30+ days: 27
Stale 90+ days: 25

Recent activity

Opened in 7 days: 1
Closed in 7 days: 1
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

Detailed Description

CommonMark is a specification for Markdown syntax with reference implementations in C and JavaScript.

The original Markdown specification left many aspects of syntax undetermined, leading to incompatible implementations across different tools. CommonMark addresses this by providing a precise, declarative specification that describes what constitutes each structural element—block quotes, code blocks, lists, and others—without prescribing a particular parsing algorithm. The specification is written from the perspective of a human writer rather than as a computer program, and it makes explicit decisions about ambiguous cases by appealing to existing conventions and principles of simplicity, readability, and consistency. The goal is to ensure that documents written for one Markdown implementation render as their authors intended across different tools.

Developers should adopt CommonMark if they need a stable, well-defined standard for Markdown parsing rather than relying on implementation-specific behavior. The specification suits projects that require interoperability across multiple Markdown processors or that need to build new implementations with confidence in their correctness. The repository itself contains the specification source, over 500 embedded conformance test examples, and tooling to validate implementations against the spec. Reference implementations are maintained separately in dedicated repositories, and third-party libraries implementing CommonMark exist across numerous programming languages.

The project maintains the specification as a declarative document in plain text form, with tooling to extract test cases in JSON format and to generate HTML and PDF versions. The specification deliberately limits itself to core Markdown elements described in the original syntax, including visible line break syntax and fenced code blocks, while excluding extensions like footnotes and definition lists. The repository provides Python-based test infrastructure that allows any executable to be validated against the full test suite, and JavaScript developers can access the test data through an npm package published from the repository.