remark-gfm

Add GitHub Flavored Markdown support to remark for tables, task lists, footnotes, and strikethrough.

Library
npm
v4.0.1
1,249 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
40 /100 Fair
Development Activity 0
Maintenance 20
Community 40
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
84 /100 Excellent
Architecture 82
Code Quality 85
Innovation 90
Learning Curve 80

remark-gfm is a plugin for the remark markdown processor that adds support for GitHub Flavored Markdown (GFM) extensions: autolink literals, footnotes, strikethrough, tables, and task lists. It plugs into the unified/remark ecosystem via unified().use(remarkGfm), extending both the markdown parser and the serializer so GFM syntax round-trips correctly through the syntax tree.

Maintained by the unified collective (the same team behind remark, rehype, and mdast), it’s the standard way to make markdown content match how GitHub renders READMEs, issues, and pull requests. It’s ESM-only, fully typed via JSDoc-driven TypeScript, and ships with 100%-enforced test coverage across dedicated fixtures for each GFM feature.

What You Get

  • Support for GFM tables, task lists, strikethrough, footnotes, and autolink literals in one plugin
  • Full round-trip support: parsing GFM markdown into an mdast syntax tree and serializing it back out
  • Configurable options (singleTilde, tablePipeAlign, tableCellPadding, stringLength, firstLineBlank) for fine-tuning parsing and output
  • TypeScript types included out of the box, no separate @types package needed
  • Drop-in compatibility with the wider unified/remark/rehype pipeline (remark-rehype, rehype-stringify, etc.)

Common Use Cases

  • Rendering user-authored markdown (READMEs, docs, comments) with the same GFM features GitHub supports
  • Building static site generators or MDX pipelines that need GitHub-flavored tables and task lists
  • Powering markdown editors and previewers that must match GitHub’s rendering behavior
  • Processing markdown content in CMS or documentation tooling built on unified/remark

Under The Hood

Architecture — remark-gfm follows the unified/remark plugin architecture: a single default-exported attacher function (lib/index.js, 41 lines) that runs in a Processor context (this) and mutates the processor’s data() bag to register three extension arrays — micromarkExtensions (tokenizer-level parsing via micromark-extension-gfm), fromMarkdownExtensions (mdast tree-building via mdast-util-gfm’s gfmFromMarkdown), and toMarkdownExtensions (serialization via gfmToMarkdown). It implements no parsing logic itself, purely composing micromark-extension-gfm and mdast-util-gfm, consistent with the unified ecosystem’s “attacher registers extensions on host processor” pattern. index.js/index.d.ts re-export the default and the Options type, which itself extends MicromarkOptions & MdastOptions from the two delegate packages.

Tech Stack — Pure ESM ("type": "module"), targets Node.js 16+, with types authored via JSDoc @import annotations compiled by tsc under checkJs/strict/exactOptionalPropertyTypes rather than hand-written .d.ts files. Runtime dependencies are all first-party unified-collective packages (mdast-util-gfm, micromark-extension-gfm, @types/mdast, unified/remark-parse/remark-stringify). Dev tooling includes xo (ESLint preset) + prettier, c8 for 100%-enforced coverage, type-coverage for full type-coverage enforcement, remark-cli/remark-preset-wooorm to lint its own docs, and GitHub Actions CI running the test suite across two Node LTS lines with Codecov upload.

Code Quality — Testing is fixture-driven rather than unit-test-heavy: 8 fixture directories (autolink-literal, strikethrough-default/not-one, table, table-no-align, table-no-padding, table-string-length, tasklist), each with input.md/output.md/tree.json compared via node:assert against the parsed tree and round-tripped markdown, with coverage enforced at 100% via c8. Error handling is minimal by design — the attacher does no runtime validation of the options object, appropriate for a small, 41-line compositional plugin. Naming follows unified ecosystem conventions consistently (attacher functions, data() bag, *Extensions arrays), and types are 100%-covered per the type-coverage config.

API Design — Extremely low-boilerplate: a single .use(remarkGfm) call with no required configuration enables all five GFM extensions at once, matching how most consumers actually want it (mirroring github.com’s own rendering). Optional fine-tuning (singleTilde, tablePipeAlign, tableCellPadding, stringLength, firstLineBlank) is exposed via one flat Options object rather than per-feature configuration. Documentation (518-line readme) is thorough, with a worked end-to-end example and two runnable option examples (singleTilde, stringLength) shown as diffs. Naming (remarkGfm) matches ecosystem convention exactly, making it immediately recognizable to anyone who has used other remark plugins.

Used by 149 apps in this directory

TypeScript
91%
Apache 2.0

Helicone

AI Development · Analytics · Monitoring

6,211

An open-source AI gateway and LLM observability platform that routes requests to 100+ models while logging cost, latency, and full traces for every call.

View details
72
Repo Health
81
Technical
65
Dependency
Built with
TypeScript 91%
Updated today
TypeScript
71%
Other

highlight.io

Analytics · Developer Tools · Monitoring

9,384

Open-source full-stack monitoring that unifies session replay, error tracking, logging, and distributed tracing so you can stop context-switching between tools.

View details
71
Repo Health
78
Technical
65
Dependency
Built with
TypeScript 71%
Go 16%
Updated 1 weeks ago
TypeScript
100%
Apache 2.0

ILLA Builder

Design Tools · Developer Tools · Low Code Platforms

12,328

Open-source low-code platform for building internal tools with drag-and-drop UI, reactive data bindings, and real-time collaboration.

View details
55
Repo Health
71
Technical
63
Dependency
Built with
TypeScript 100%
Updated 4 months ago
TypeScript
55%
Other

Jaaz

AI Agents · AI Design Tools

6,698

Open-source AI creative agent that turns visual sketches and canvas gestures into images and videos — no text prompts required.

View details
46
Repo Health
59
Technical
71
Dependency
Built with
TypeScript 55%
Python 34%
JavaScript 10%
Updated 7 months ago
Rust
56%
Other

Jan

AI Assistants

44,867

Run LLMs 100% locally with full privacy, or connect to cloud AI — your machine, your data, your control.

View details
90
Repo Health
81
Technical
65
Dependency
Built with
Rust 56%
TypeScript 39%
Updated today
TypeScript
98%
AGPL 3.0

Karakeep

Bookmarks Archiving

29,564

Self-hosted bookmark manager that captures links, notes, images, and PDFs with AI tagging, full-text search, and automatic archiving.

View details
88
Repo Health
76
Technical
66
Dependency
Built with
TypeScript 98%
Updated 3 days ago
Python
64%
Other

Keep

Automation · Devops · Monitoring

12,381

The open-source AIOps and alert management platform that unifies 130+ monitoring tools into a single pane of glass with AI-powered correlation, deduplication, and workflow automation.

View details
87
Repo Health
79
Technical
66
Dependency
Built with
Python 64%
TypeScript 36%
Updated 1 weeks ago
Java
57%
Apache 2.0

Kestra

Automation · Data Engineering · Devops

29,461

Event-driven orchestration platform for data, AI, and infrastructure workflows — define everything in YAML, run anywhere at scale.

View details
94
Repo Health
81
Technical
72
Dependency
Built with
Java 57%
TypeScript 27%
Vue 14%
Updated yesterday
TypeScript
98%
Other

Kibana

Analytics · Monitoring

21,308

Your open source window into the Elastic Stack — query, visualize, and act on data stored in Elasticsearch with real-time dashboards, AI-assisted search, and automated alerting.

View details
98
Repo Health
87
Technical
62
Dependency
Built with
TypeScript 98%
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