skillfed

tree-sitter-markdown

Markdown grammar for tree-sitter

tree-sitter-markdown v0.5.1 2.1M downloads/30d#3,305 on PyPI615
Permissive license MIT Active released

What it is and what it does

tree-sitter-markdown is a Markdown parser grammar for the tree-sitter incremental parsing framework. It parses Markdown text into a syntax tree following the CommonMark specification, with optional support for extensions like GitHub flavored markdown, task lists, strikethrough, pipe tables, and YAML/TOML metadata blocks. The parser is designed primarily for syntax highlighting and syntactic analysis in editors like Neovim and Helix.

The package is distributed as precompiled wheels for Python 3.9 and later, with no runtime dependencies. However, the authors explicitly note that the parser has known inaccuracies due to the constraints of fitting Markdown into tree-sitter's parsing rules, and recommend against using it where correctness is critical. Standalone usage requires two-pass parsing: first with the block grammar, then with the inline grammar using included ranges to mark inline content.

Use it for:

  • Syntax highlighting for Markdown in text editors and IDE plugins that use tree-sitter
  • Extracting structural information from Markdown documents for linting or analysis tools
  • Building Markdown-aware code editors or documentation viewers with incremental parsing
  • Parsing Markdown with GitHub extensions (tables, task lists, strikethrough) for web or static site generators

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Provides a tree-sitter grammar for parsing Markdown documents, enabling syntactic analysis of Markdown text according to CommonMark with optional extensions like GitHub flavored markdown, task lists, and tables.

Yes, if you need tree-sitter-based Markdown parsing for syntax highlighting or structural analysis. The permissive MIT license, active maintenance, and precompiled wheels make it straightforward to install. However, do not use it where Markdown correctness is critical—the authors acknowledge known inaccuracies. For general-purpose Markdown parsing where fidelity matters, consider alternatives.

Install

tree-sitter-markdown on PyPI

pip

pip install tree-sitter-markdown

uv

uv add tree-sitter-markdown

poetry

poetry add tree-sitter-markdown

Installing tree-sitter-markdown

Before you install

Medium install friction due to compiled wheels; prebuilt binaries are available for common platforms (macOS, Linux, Windows on x86_64 and ARM64), reducing build requirements. Package is actively maintained with recent releases.

License in practice

MIT license is permissive; you can use, modify, and distribute this package with minimal restrictions, requiring only attribution and inclusion of the license notice.

Quickstart

pip install tree-sitter-markdown

import tree_sitter_markdown
# Use with tree-sitter bindings to parse Markdown text into a syntax tree

Requires Python 3.9 or later; tree-sitter Python bindings must be installed separately to use the grammar for actual parsing

Verify before relying

  • Whether the parser's known inaccuracies (noted in the description) are acceptable for your specific use case beyond syntax highlighting
  • Performance characteristics and parsing speed for large or deeply nested Markdown documents
  • Compatibility with tree-sitter bindings beyond the Python layer

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.9)
Install friction medium — platform-specific wheel
Runtime dependencies none
Maintenance actively maintained — 332 days since the last release
Last repo commit
First released
Downloads 2,085,173/month — #3,305 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: tree_sitter_markdown-0.5.1-cp39-abi3-macosx_10_9_x86_64.whl; tree_sitter_markdown-0.5.1-cp39-abi3-macosx_11_0_arm64.whl; tree_sitter_markdown-0.5.1-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; tree_sitter_markdown-0.5.1-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; tree_sitter_markdown-0.5.1-cp39-abi3-musllinux_1_2_aarch64.whl; tree_sitter_markdown-0.5.1-cp39-abi3-musllinux_1_2_x86_64.whl; tree_sitter_markdown-0.5.1-cp39-abi3-win_amd64.whl; tree_sitter_markdown-0.5.1-cp39-abi3-win_arm64.whl

Keywords: incremental, parsing, tree-sitter, markdown

Intended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseTopic :: Software Development :: CompilersTopic :: Text Processing :: LinguisticTyping :: Typed

Tags

markdown parser tree-sitterparse markdown syntax treemarkdown grammar analysiscommonmark parser pythonmarkdown ast extractionsyntax highlighting markdownmarkdown document parsing
parsingsyntax-highlightingtree-sitter

More Linguistic packages