remark-math

A unified remark plugin that adds LaTeX math syntax to markdown, ready to render with KaTeX or MathJax.

Library
npm
v6.0.0
520 stars
MIT License

Repository Health

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

Technical Analysis

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

remark-math is a plugin for the unified/remark ecosystem that teaches markdown to understand math. It parses inline math wrapped in single dollar signs and block equations wrapped in double dollars, adding the syntax extension and the mdast nodes needed to carry LaTeX through the processing pipeline.

Because it only annotates the syntax tree, remark-math pairs cleanly with a rendering plugin such as rehype-katex or rehype-mathjax, which turn the parsed math into HTML at compile time. This keeps client bundles free of runtime math libraries and makes it a natural fit for static sites, documentation, and scientific writing.

What You Get

  • A remark plugin that parses inline ($...$) and block ($$...$$) math in markdown
  • mdast inlineMath and math nodes that flow through the unified pipeline
  • Seamless pairing with rehype-katex and rehype-mathjax for compile-time HTML rendering
  • Configurable options (such as singleDollarTextMath) passed through to the underlying math extension
  • Full TypeScript type definitions shipped via JSDoc and generated .d.ts files

Common Use Cases

  • Rendering LaTeX equations in documentation sites built on Astro, Next.js, or Gatsby
  • Adding math support to markdown-driven blogs and scientific writing
  • Producing static HTML math with no client-side JavaScript by rendering at build time
  • Feeding parsed math nodes into custom remark/rehype transforms

Under The Hood

Architecture - remark-math is a thin, delegation-first plugin. The published entry index.js simply re-exports lib/index.js, whose default remarkMath(options) function attaches three extension arrays to the unified processor’s shared data(): micromarkExtensions, fromMarkdownExtensions, and toMarkdownExtensions. It pushes math() from micromark-extension-math for tokenizing, and mathFromMarkdown()/mathToMarkdown() from mdast-util-math for building and serializing the math and inlineMath mdast nodes. All real parsing lives in those sibling packages, so remark-math itself is essentially wiring.

Tech Stack - The package is pure ES-module JavaScript (type: module, single exports entry) targeting unified 11. Its runtime dependencies are mdast-util-math, micromark-extension-math, unified, and @types/mdast. Types are authored as JSDoc annotations and emitted to .d.ts; tooling is xo plus prettier, and it declares sideEffects: false for tree-shaking.

Code Quality - Quality is high for its size. The core lib/index.js is a few dozen well-commented lines with careful null-handling of the options object and defensive initialization of the extension arrays. The package ships a substantial test.js (~24KB) exercising parsing and stringifying across inline and block cases, and every export is fully typed. Naming follows unified conventions consistently.

API Design - The developer experience is idiomatic unified: a single default-exported plugin registered with .use(remarkMath, options) and one optional configuration object. There is no boilerplate beyond composing it into a processor alongside a rehype renderer, and the readme documents installation, usage, options, syntax, security, and related plugins thoroughly, making it approachable for anyone already using remark.

Used by 68 apps in this directory

Go
72%
MIT

Ollama

AI Development · Developer Tools

184,509

Run Llama, Gemma, DeepSeek, and other open LLMs on your own machine with one command and an OpenAI-compatible API.

View details
92
Repo Health
85
Technical
67
Dependency
Built with
Go 72%
C 19%
Updated 1 weeks ago
Go
72%
MIT

Ollama

AI Development · Developer Tools

184,509

Run Llama, Gemma, DeepSeek, and other open LLMs on your own machine with one command and an OpenAI-compatible API.

View details
92
Repo Health
85
Technical
67
Dependency
Built with
Go 72%
C 19%
Updated 1 weeks ago
Python
64%
Other

Onyx

AI Agents · AI Assistants · Knowledge Management

32,935

Self-hostable AI platform with agentic RAG, 50+ connectors, deep research, code execution, and support for every major LLM provider.

View details
92
Repo Health
83
Technical
68
Dependency
Built with
Python 64%
TypeScript 26%
Updated 6 days ago
Python
64%
Other

Onyx

AI Agents · AI Assistants · Knowledge Management

32,935

Self-hostable AI platform with agentic RAG, 50+ connectors, deep research, code execution, and support for every major LLM provider.

View details
92
Repo Health
83
Technical
68
Dependency
Built with
Python 64%
TypeScript 26%
Updated 6 days ago
TypeScript
97%
GPL 3.0

OpenKnowledge

Code Editors · Knowledge Management · Note Taking

4,674

A beautiful, local-first markdown IDE that turns any git repo into a live collaborative workspace for humans and AI coding agents like Claude, Codex, and OpenCode.

View details
80
Repo Health
89
Technical
64
Dependency
Built with
TypeScript 97%
Updated 6 days ago
TypeScript
56%
MIT

open-notebook

AI Assistants · Note Taking

40,513

A privacy-first, self-hosted AI research notebook with 18+ model providers, multi-speaker podcast generation, and full REST API—your open-source alternative to Google Notebook LM.

View details
89
Repo Health
84
Technical
71
Dependency
Built with
TypeScript 56%
Python 42%
Updated 1 weeks ago
TypeScript
56%
MIT

open-notebook

AI Assistants · Note Taking

40,513

A privacy-first, self-hosted AI research notebook with 18+ model providers, multi-speaker podcast generation, and full REST API—your open-source alternative to Google Notebook LM.

View details
89
Repo Health
84
Technical
71
Dependency
Built with
TypeScript 56%
Python 42%
Updated 1 weeks ago
TypeScript
91%
AGPL 3.0

OpenPanel

Analytics

7,187

Open-source Mixpanel alternative with session replay, MCP integration, and privacy-first product analytics you fully control.

View details
83
Repo Health
74
Technical
64
Dependency
Built with
TypeScript 91%
Updated 1 weeks ago
TypeScript
91%
AGPL 3.0

OpenPanel

Analytics

7,187

Open-source Mixpanel alternative with session replay, MCP integration, and privacy-first product analytics you fully control.

View details
83
Repo Health
74
Technical
64
Dependency
Built with
TypeScript 91%
Updated 1 weeks ago

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