{"id":19682,"library":"eslint-markdown","title":"eslint-markdown","description":"An ESLint plugin for linting Markdown files, providing rules for consistent code style, list style, inline code style, no tabs, no URL trailing slashes, and more. Current stable version is 0.6.1, with active development on GitHub. It requires ESLint ^9.31.0 or ^10.0.0-rc.0 (ESLint flat config only). Unlike @eslint/markdown which parses MD for JS linting, this plugin lints the Markdown syntax itself. Release cadence is monthly with minor breaking changes on minor versions.","status":"active","version":"0.6.1","language":"javascript","source_language":"en","source_url":"https://github.com/lumirlumir/npm-eslint-markdown","tags":["javascript","eslint","eslintplugin","eslint-plugin","plugin","markdown","mark","md","commonmark"],"install":[{"cmd":"npm install eslint-markdown","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-markdown","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-markdown","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency: ESLint v9.31+ or v10 beta","package":"eslint","optional":false}],"imports":[{"note":"ESM-only package. Requires ESLint flat config.","wrong":"const eslintMarkdown = require('eslint-markdown')","symbol":"eslint-markdown","correct":"import eslintMarkdown from 'eslint-markdown'"},{"note":"Access to individual rule definitions. Use only if you need to customize rule configuration.","wrong":null,"symbol":"rules","correct":"import { rules } from 'eslint-markdown'"},{"note":"Predefined flat configs: 'recommended' and 'stylistic'. Import from main entry.","wrong":"import configs from 'eslint-markdown/configs'","symbol":"configs","correct":"import { configs } from 'eslint-markdown'"},{"note":"Default export is the plugin object with `rules` and `configs`. No named constructor.","wrong":"import { default as eslintMarkdown } from 'eslint-markdown'","symbol":"plugin object","correct":"import eslintMarkdown from 'eslint-markdown'"}],"quickstart":{"code":"// eslint.config.js (flat config only)\nimport eslintMarkdown from 'eslint-markdown';\n\nexport default [\n  // Add Markdown linting rules\n  eslintMarkdown.configs.recommended,\n  {\n    plugins: {\n      'eslint-markdown': eslintMarkdown\n    },\n    files: ['**/*.md'],\n    rules: {\n      'eslint-markdown/no-tab': 'error',\n      'eslint-markdown/consistent-code-style': ['warn', { style: 'fenced' }]\n    }\n  }\n];\n","lang":"javascript","description":"Sets up eslint-markdown plugin with recommended config and custom rules in ESLint flat config."},"warnings":[{"fix":"Migrate to eslint.config.js flat config file.","message":"ESLint flat config only (no .eslintrc). Requires ESLint ^9.31.0.","severity":"breaking","affected_versions":">=0.1.0"},{"fix":"Replace import 'eslint-plugin-mark' with 'eslint-markdown' and update rule prefixes from 'mark/' to 'md/'.","message":"Plugin renamed from 'eslint-plugin-mark' to 'eslint-markdown' in v0.1.0-canary.12.","severity":"breaking","affected_versions":">=0.1.0-canary.12"},{"fix":"Update all rule references to use 'md/' prefix.","message":"Rule identifiers changed from 'mark/' to 'md/' (e.g., 'mark/no-tab' -> 'md/no-tab') in v0.1.0-canary.12.","severity":"breaking","affected_versions":">=0.1.0-canary.12"},{"fix":"Review rule configuration options; defaults may have changed.","message":"The option 'consistent-code-style' rule's previous options may be deprecated; check migration guide.","severity":"deprecated","affected_versions":">=0.5.0"},{"fix":"Ensure ESLint version matches peer requirement: ^9.31.0 or ^10.0.0-rc.0.","message":"Peer dependency on ESLint v10 pre-release may not be compatible with stable ESLint v9.","severity":"gotcha","affected_versions":">=0.3.0"},{"fix":"Upgrade Node.js to a supported version.","message":"Node.js engine requirement: ^20.19.0 || ^22.13.0 || >=24.0.0. Older versions not supported.","severity":"gotcha","affected_versions":">=0.1.0-canary.11"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Use import statement instead of require(), or set type: 'module' in package.json.","cause":"Using require() to load an ESM-only package.","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module from not supported."},{"fix":"Ensure you import eslintMarkdown from 'eslint-markdown' and include it in the config array.","cause":"Missing import or incorrect config format in eslint.config.js.","error":"ESLint couldn't find the plugin 'eslint-markdown'."},{"fix":"Replace 'mark/' with 'md/' in rule names.","cause":"Using old rule prefix 'mark/' instead of 'md/'.","error":"Configuration for rule 'md/no-tab' is invalid."},{"fix":"Run npm install eslint-markdown --save-dev and ensure eslint ^9.31.0 is installed.","cause":"Package not installed or missing peer dependency eslint.","error":"Cannot find module 'eslint-markdown'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}