micromark-extension-gfm

Bundles all six GitHub Flavored Markdown micromark extensions—tables, footnotes, strikethrough, autolinks, tag filtering, and task lists—into a single drop-in plugin.

Library
npm
v3.0.0
40stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
28/100Needs Attention
Development Activity0
Maintenance20
Community20
Maturity60
Momentum12

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
60/100Good
Architecture65
Code Quality90
Innovation40
Learning Curve45

micromark-extension-gfm is the aggregator package for GitHub Flavored Markdown (GFM) support in micromark, the CommonMark-compliant markdown parser at the core of the unified/remark/rehype ecosystem. Rather than implementing GFM parsing itself, it composes six sibling packages — micromark-extension-gfm-autolink-literal, -footnote, -strikethrough, -table, -tagfilter, and -task-list-item — into two ready-to-use extensions, gfm() for syntax and gfmHtml() for HTML serialization, using micromark-util-combine-extensions.

This makes it the one dependency most projects need instead of wiring up six separate micromark extensions by hand, and it’s the extension layer that remark-gfm relies on internally to give remark and its plugin ecosystem full GFM support (tables, footnotes, strikethrough, task lists, autolinked URLs, and disallowed-tag filtering) on top of plain CommonMark.

What You Get

  • gfm(options?) — a single micromark Extension enabling autolink literals, footnotes, strikethrough, tables, and task lists in one call
  • gfmHtml(options?) — the matching HtmlExtension for serializing all of the above to HTML, including GitHub’s disallowed-tag filtering
  • Full TypeScript types (Options, HtmlOptions) re-exported from the underlying strikethrough and footnote packages, with 100% type coverage enforced at build time
  • ESM-only, tree-shakeable package (sideEffects: false) with zero runtime dependencies outside the micromark ecosystem
  • Drop-in compatibility with micromark’s extensions/htmlExtensions options, so it works anywhere a raw micromark extension is accepted

Common Use Cases

  • Parsing GFM markdown directly with micromark - pass gfm()/gfmHtml() into micromark() calls to get GitHub-style tables, task lists, and strikethrough without hand-assembling six extensions
  • Powering remark-gfm - the package that gives the remark/unified ecosystem its GFM support, letting downstream tools produce a GFM-aware syntax tree via mdast-util-gfm
  • Building custom markdown renderers - static site generators or CMS pipelines that need GitHub-compatible markdown rendering without pulling in a full alternative parser
  • Rendering user-generated content safely - combined with allowDangerousHtml, the tagfilter extension strips disallowed raw HTML the way GitHub does for issue/PR comments

Under The Hood

Architecture This package is a thin façade over six independently published micromark GFM extensions — micromark-extension-gfm-autolink-literal, -footnote, -strikethrough, -table, -tagfilter, and -task-list-item — combined via micromark-util-combine-extensions’ combineExtensions/combineHtmlExtensions helpers inside lib/index.js, with index.js and index.d.ts doing nothing more than re-exporting gfm/gfmHtml and layering typed Options/HtmlOptions interfaces on top of the strikethrough and footnote packages’ own option types. There is no internal state, class hierarchy, or dependency injection; the entire behavior surface is composition-by-import, so the only way this package’s output changes is if one of the six wrapped extensions changes or a new one is added to the combine call — the real logic lives one level down, in six tightly coupled sibling packages within the same micromark/unified organization.

Tech Stack The runtime is pure ESM (type: module) JavaScript with zero framework dependencies — its only dependencies are other micromark-ecosystem packages (the six GFM extensions plus micromark-util-combine-extensions and micromark-util-types for typing). Development tooling is TypeScript-heavy despite being a JS-only package: tsc --build with checkJs, strict, and exactOptionalPropertyTypes type-checks the plain JavaScript source and emits declarations only, type-coverage enforces 100% type coverage as a build gate, and xo (an ESLint preset) plus prettier and remark-preset-wooorm handle linting and formatting. There is no bundler, database, or web framework involved — this is a small leaf library in the unified collective’s shared tooling chain, tested with Node’s built-in node:test runner and measured with c8.

Code Quality Tests in test/index.js exercise the published GFM spec (test/spec.js) plus generated fixtures (via the create-gfm-fixtures dev dependency), comparing micromark’s HTML output against rehype-normalized expectations for both syntax and rendering; the test suite runs twice, once under Node’s development export condition and once under production, to verify both code paths. Coverage is enforced via c8 --100, meaning the build fails below full statement/branch coverage. Combined with type-coverage’s 100% requirement and strict TypeScript checking of the JSDoc-annotated JavaScript, this gives strong quality guarantees for a package with no visible production bugs history; a GitHub Actions workflow runs the full test suite plus Codecov upload on every push and pull request across two Node.js release lines.

What Makes It Unique The package introduces no new parsing technique of its own — its entire value is aggregation: bundling six separately versioned and separately publishable GFM micromark extensions behind two functions so that consumers don’t need to independently discover, install, and manually combine each one. That convenience is genuinely useful for anyone building on raw micromark, and it’s exactly the seam remark-gfm builds on to give the broader unified ecosystem GFM support, but architecturally it’s a standard facade/aggregator pattern rather than a novel algorithm or abstraction.

Used by 8 apps in this directory

TypeScript
75%
Apache 2.0

Fern

Developer Tools

3,772

Fern turns a single OpenAPI, AsyncAPI, or Protobuf definition into type-safe SDKs for nine languages and a hosted API documentation site, all from one CLI and one source of truth.

View details
90
Repo Health
86
Technical
66
Dependency
Built with
TypeScript75%
Updated yesterday
TypeScript
81%
MIT

LibreChat

Developer Tools · AI Assistants

42,871

Unite every major AI model in one self-hosted chat platform with agents, code execution, MCP tools, and enterprise authentication.

View details
93
Repo Health
81
Technical
65
Dependency
Built with
TypeScript81%
JavaScript18%
Updated today
Go
51%
MIT

memos

Note Taking

62,805

Open-source, self-hosted note-taking built for quick capture — Markdown-native, lightweight, and fully yours.

View details
91
Repo Health
78
Technical
66
Dependency
Built with
Go51%
TypeScript48%
Updated yesterday
Go
61%
MIT

Obot

AI Agents

985

An open-source MCP platform for organizations — host MCP servers, run MCP registries, monitor usage, and build agents and chatbots on top of the Model Context Protocol from one self-hosted deployment.

View details
85
Repo Health
70
Technical
70
Dependency
Built with
Go61%
Svelte29%
Updated 3 days ago
TypeScript
67%
Apache 2.0

open-design

Design Tools

94,473

Local-first, open-source Claude Design alternative that turns your existing coding agent CLI into a full agentic design studio — with 259+ skills, 142+ design systems, and sandboxed artifact delivery across web, desktop, and mobile surfaces.

View details
85
Repo Health
86
Technical
72
Dependency
Built with
TypeScript67%
HTML25%
Updated yesterday
TypeScript
71%
Apache 2.0

Supabase

Developer Tools · Databases · Search

108,912

The open-source Postgres development platform that replaces Firebase with authentication, real-time APIs, edge functions, storage, and vector embeddings — all built on PostgreSQL.

View details
90
Repo Health
91
Technical
62
Dependency
Built with
TypeScript71%
MDX26%
Updated today
TypeScript
98%
Apache 2.0

TinaCMS

CMS

13,780

An open-source, Git-backed headless CMS that gives editors a live visual editing UI over Markdown, MDX, JSON, and YAML content while developers keep everything in version control.

View details
92
Repo Health
74
Technical
59
Dependency
Built with
TypeScript98%
Updated today
TypeScript
99%
AGPL 3.0

Webstudio

Design Tools · No Code Platforms

8,910

Open source visual development platform with complete CSS control, headless CMS integration, and full infrastructure ownership

View details
91
Repo Health
79
Technical
60
Dependency
Built with
TypeScript99%
Updated today

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search