eslint-plugin-mdx has 211,154 recorded weekly downloads on npm, a decrease of 52.3% over the past 30 days.
It ranks #371 of 2,251 tracked npm listings by weekly downloads.
Over 90 days, weekly downloads changed by -59.8%.
PluginStats has 542 daily observations since Apr 24, 2025; the latest is from Oct 17, 2026.
About eslint-plugin-mdx
[ESLint][] Parser/Plugin for [MDX][], helps you lint all ES syntaxes. Linting code blocks can be enabled with mdx/code-blocks setting too! Work perfectly with eslint-plugin-import, eslint-plugin-prettier or any other eslint plugins. And also can be integrated with [remark-lint][] plugins to lint markdown syntaxes.
TOC
• VSCode Extension • Packages • Install • Notice • Usage • Classic Config • Flat Config • Parser Options • Parser API • MDXCode • MDXHeading • Typings • Rules • mdx/remark • Prettier Integration • Sponsors and Backers • Sponsors • Backers • Changelog • License
VSCode Extension
[VSCode MDX][]: Integrates with [VSCode ESLint][], syntaxes highlighting and error reporting.
Packages
This repository is a monorepo managed by [changesets][] what means we actually publish several packages to npm from same codebase, including:
| Package | Description | Version |
| eslint-mdx | ESLint Parser for MDX | | | eslint-plugin-mdx | ESLint Plugin, Configuration and Rules for MDX | |
Install
Notice
1. If you're using multi languages, js/jsx/ts/tsx/vue, etc for example, you'd better to always use overrides (Classic Config) or files (Flag Config) feature of ESLint, because configs may be overridden by following configs.
See #251 for more details.
2. If you're using {/* eslint-disable-line mdx/remark */} with prettier, this won't work because prettier will add a blank line after the comment, which makes it invalid. You can use {/* eslint-disable mdx/remark */} paired with {/* eslint-enable mdx/remark */} instead:
Usage
Classic Config
.eslintrc file:
Flat Config
eslint.config.js file:
Then, make sure ESLint knows to run on .md or .mdx files:
Parser Options
1. extensions (string | string[]): eslint-mdx will only resolve .mdx files by default, if you want to resolve other extensions as like .mdx, you can use this option.
2. markdownExtensions (string | string[]): eslint-mdx will only treat .md files as plain markdown by default, and will lint them via remark plugins. If you want to resolve other extensions as like .md, you can use this option.
3. ignoreRemarkConfig (boolean): Ignore the remark configuration defined in the project.
4. remarkConfigPath (string): Specify the path to the remark configuration file, could be relative to CWD or absolute path.
Parser API
MDXCode
A new MDXCode estree node type is exported from eslint-mdx which represents code blocks in mdx like the following:
js export function foo() { return 'bar' } `
See also
MDXHeading
A new MDXHeading estree node type is exported from eslint-mdx which represents markdown heading in mdx like the following:
See also
Typings
Rules
mdx/remark
_possible fixable depends on your remark plugins_:
Integration with [remark-lint][] plugins, it will read remark's configuration automatically via [unified-engine][]. But .remarkignore will not be respected, you should use .eslintignore instead.
If you want to disable or change severity of some related rules, it won't work by setting rules in eslint config like 'remark-lint-no-duplicate-headings': 0, you should change your remark config instead like following:
Prettier Integration
If you're using [remark-lint][] feature with [Prettier][] both together, you can try [remark-preset-prettier][] which helps you to _turn off all rules that are unnecessary or might conflict with [Prettier][]_.
Sponsors and Backers
Sponsors
| 1stG | RxTS | UnRS | UnTS |
| | | | |
Backers
| 1stG | RxTS | UnRS | UnTS |
| | | | |
Changelog
Detailed changes for each release are documented in CHANGELOG.md.
License
[MIT][] © [JounQin][]@[1stG.me][]
Description from the npm listing.
- eslint
- eslint-mdx
- eslint-plugin
- eslint-plugin-mdx
- mdx
Where eslint-plugin-mdx sits in the listing
Each band is one page of 20. Weekly downloads on a log scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Recent observations
Full history (542)Similar npm ESLint plugins plugins
Data source
Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.
Listing: https://www.npmjs.com/package/eslint-plugin-mdx. First seen Oct 16, 2026; last successful collection Oct 18, 2026. See the methodology.