8.0.1 (2026-03-30)
8.0.0 (2026-03-24)
- add fenced-code-meta rule (#512) (f30e1c9)
- add option to no-duplicate/unused-definitions rules (#616) (d189c5e)
- fix incorrect regex pattern in
no-multiple-h1(#624) (e57e398) - fix incorrect regex pattern in
require-alt-textandno-html(#604) (cd264d0) - Require Node.js ^20.19.0 || ^22.13.0 || >=24 (#561) (f6d2a22)
- support Math (#617) (cc03b5f)
- false positive triggered by comments in
no-html(a2ccff8) - false positive triggered by HTML inside comments in
no-html(#592) (a2ccff8) - false positives for inline elements in
no-reversed-media-syntax(#597) (8538c10) - recognize
Definitionnode inno-missing-link-fragments(#603) (9b58e36) - recognize HTML heading in
no-missing-link-fragments(#583) (bd9dfa3) - remove
/typesexport (#564) (28eecf6) - update dependency @eslint/plugin-kit to ^0.6.0 (#584) (be16763)
- update eslint (#629) (4c75af0)
- use types from
@eslint/plugin-kitand update@eslint/core(#607) (f5d4ce0)
7.5.1 (2025-11-04)
- false positives in
no-reversed-media-syntax(#521) (bee20dd) - wrong location reporting in
require-alt-text(#574) (bd69254)
7.5.0 (2025-10-22)
7.4.1 (2025-10-20)
- handle CR in
MarkdownSourceCodeand Front Matter util (#554) (d1ad828) - handle CR in rules to follow CommonMark spec (#493) (20e88fe)
7.4.0 (2025-10-06)
- add support for
getLocFromIndexandgetIndexFromLoc(#376) (d634f82) - export
MarkdownLanguagefromindex.js(#538) (a5d78d5)
- add
nullcheck and usegetLocFromIndexinrequire-alt-text(#543) (41ae6c8) - correct the return type of
applyInlineConfig(#548) (d6621a7) - report locations in
no-multiple-h1andrequire-alt-text(#551) (ec30c7d) - wrong location reporting in
no-invalid-label-refs(#545) (e0f7d23)
7.3.0 (2025-09-22)
- add allowLabels option to no-missing-label-refs (#513) (f6d6b76)
- add no-reference-like-urls rule (#433) (65251ec)
- export types from main entry point (#520) (915837c)
- fix false positives and negatives for consecutive backslashes (#490) (3067607)
exactOptionalPropertyTypescauses type errors when using plugins (#524) (15014a4)- handle consecutive backslashes in
no-reference-like-urls(#523) (762712d) - no-*-definitions rules show original label and identifier (#515) (f80a9e1)
- report locations with <CR> linebreaks in
no-reference-like-urls(#525) (28723c2) - wrong location reporting in
fenced-code-language(#518) (c532194)
7.2.0 (2025-08-22)
- add allowedIgnoreCase option to no-html (#500) (06ac53d)
- add checkClosedHeadings option to no-missing-atx-heading-space (#452) (a9675aa)
- add frontmatterTitle option to heading-increment (#454) (614ef3e)
- add no-space-in-emphasis rule (#403) (e4b8de4)
- Expose identifiers in messages for no-duplicate-definitions (#506) (9f54c1b)
- expose identifiers in messages for no-empty-definitions (#507) (738f366)
- verify identifier data in no-empty-definitions (#499) (738f366)
- allow any type for
meta.docs.recommendedin custom rules (#502) (604a4b9) - detect errors after comments in no-multiple-h1 and require-alt-text (#468) (c9de444)
- false negatives and positives in
no-reversed-media-syntax(#473) (c7a4d64) - fenced-code-language highlights only relevant parts (#487) (bb48ae2)
- handle multiline setext headings in
no-duplicate-headings(#469) (99beea6) - improve HTML id/name regex for unquoted values and spaces (#480) (6c35261)
- improve no-html rule's tag location reporting (#491) (5e6e94e)
- make
metaproperty optional inBlocktype (#461) (15c93a6) - normalize definition identifiers in no-*-definitions rules (#488) (b248383)
7.1.0 (2025-07-22)
- bump
plugin-kitto latest to resolve security vulnerabilities (#485) (c5398ca) - case-insensitive attribute checks in
no-missing-link-fragment(#465) (094a59d) - case-insensitive checks for HTML attributes in
no-missing-link-fragment(094a59d) - no-reversed-media-syntax add missing offset for code spans (#460) (af7736c)
- potential super-linear regular expressions (#463) (bc82567)
- remove unused types from
types.ts(#462) (466f80e)
7.0.0 (2025-07-11)
- move certain types to import them from
@eslint/markdown/types(#446) - set no-missing-link-fragments default ignoreCase to true (#447)
- remove rollup and extraneous types (#383)
- add allowDefinitions & allowFootnoteDefinitions opts to no-empty-definitions (#455) (e09eba6)
- add checkFootnoteDefinitions option to no-empty-definitions (#442) (4d504e5)
- create
no-unused-definitionsrule (#425) (6b43333) - set no-missing-link-fragments default ignoreCase to true (#447) (925191e)
- handle URL-encoded link fragments in no-missing-link-fragments rule (#437) (76685c5)
- move certain types to import them from
@eslint/markdown/types(#446) (0dc6220) - remove rollup and extraneous types (#383) (e7ccd2e)
- skip HTML nodes in heading slugs for no-missing-link-fragments (#445) (e4dcf6a)
- update
no-duplicate-headingsto align with CommonMark spec (#438) (2bc0a38)
6.6.0 (2025-06-20)
- add checkSiblingsOnly option to no-duplicate-headings rule (#393) (2512729)
- add JSON frontmatter support (#411) (8b77e69)
- add no-bare-urls rule (#418) (5149927)
- add no-missing-link-fragments rule (#380) (70e7dac)
- add no-reversed-media-syntax rule (#398) (ae547ab)
- update
no-multiple-h1rule to recognize JSON frontmatter (#413) (33dda18)
6.5.0 (2025-06-04)
- add
no-missing-atx-heading-spacerule (#371) (84c87c4) - add no-empty-definitions rule (#364) (cb5a956)
- add no-multiple-h1 rule (#377) (d7c88e8)
- add require-alt-text rule (#368) (32d8cbd)
- added new rule
table-column-count(#392) (c685139) - create
no-duplicate-definitions(#360) (18c7d77) - create
no-empty-images(#357) (23e4ff0)
no-invalid-label-refsdo not report correct position (#366) (ed01747)no-missing-label-refsrule does not respect escaping (#348) (cb6b437)- update
require-alt-textrule to ignore commented images (#385) (b2fc801)
6.4.0 (2025-04-17)
- add missing
mdasttypes toMarkdownRuleVisitor(#334) (fc8ba03) - Create type definitions for rules (#324) (5f11a3d)
- export
MarkdownRuleDefinitiontype (#333) (13dfd5e) - support
eslintconfig comments (#332) (f697540) - support front matter (#328) (35a979c)
- enhance fenced code language rule to support tilde as a delimiter (#344) (852645e)
- replace
IMarkdownSourceCodewithMarkdownSourceCode(#336) (ec2846b)
6.3.0 (2025-03-04)
6.2.2 (2025-01-17)
- add type tests (#305) (ea60127)
- adjust suggestion fix ranges in processor (#309) (f164e66)
- Update markdown-language.js (#314) (10e8535)
6.2.1 (2024-10-16)
6.2.0 (2024-10-03)
6.1.1 (2024-09-26)
6.1.0 (2024-09-02)
6.0.0 (2024-08-21)
- Add Markdown languages (#268) (d79c42b)
- Add type checking and type definitions (#266) (0503748)
- Convert to ESM (#259) (e0da221)
- Rename to @eslint/markdown (#265) (e0b5457)
5.1.0 (2024-07-05)
5.0.0 (2024-05-01)
- map known code block languages to respective file extensions (#246)
- run tests in Node.js 22, with ESLint 9 (#250) (085e6d5)
- switch to eslint v9, eslint-config-eslint v10 (#251) (a76cdf5)
4.0.1 (2024-03-06)
4.0.0 (2024-03-01)
- add
metaproperty (#233) (eedda96) - drop eslint < 8 & Node.js < 18 (#238) (f14f6a5)
- Switch to flat config (#232) (7a27eef)
- add
.vscodeto.gitignore(#236) (cbb8e3a) - bump setup-node and checkout actions to v4 in release workflow (#239) (3fd99ad)
- remove unused
@eslint/eslintrcin test examples (#234) (4e2e160) - run tests in Node.js 21 (#225) (4d9f36f)
- standardize npm script names (#223) (6bdff60)
- use latest
typescript-eslintin examples (#235) (313959b)
3.0.1 (2023-07-15)
- add Node v19 (#212) (81ff967)
- add triage action (#213) (ef7dcdc)
- generate provenance statements when release (#222) (30ae649)
- run tests on Node.js v20 (#215) (f5ce090)
- set up release-please (#219) (311c626)
v3.0.0 - July 16, 2022
558ae3cchore: add node v18 (#205) (Amaresh S M)071fa66feat!: drop node v8 and v10 (#203) (Amaresh S M)f186730ci: update github actions (#207) (Deepshika S)6570c82ci: Work around npm behavior changes to fix CI on main (#206) (Brandon Mills)87c2b53docs: update badges (#202) (Milos Djermanovic)2fd5b89chore: add tests for ESLint 8 (#195) (Michaël De Boey)8db0978chore: Check for package.json in examples (#200) (Brandon Mills)b695396test: test withESLintinstead ofCLIEnginewhen available (#198) (Michaël De Boey)e1ddcc5ci: use nodev16(#199) (Nitin Kumar)8f590fcchore: updatedevDependencies(#197) (Michaël De Boey)3667566chore: test all supported ESLint versions (#196) (Michaël De Boey)ecae4feChore: ignore pnpm-lock.yaml (#193) (Nitin Kumar)ffdb245Chore: useactions/setup-node@v2in CI (#192) (Nitin Kumar)
v2.2.1 - September 11, 2021
3a40160Fix:message.linecould beundefined(#191) (JounQin)
v2.2.0 - May 26, 2021
32203f6Update: Replace Markdown parser (fixes #125, fixes #186) (#188) (Brandon Mills)
v2.1.0 - April 25, 2021
f1e153bUpdate: Upgrade remark-parse to v7 (fixes #77, fixes #78) (#175) (Brandon Mills)
v2.0.1 - April 5, 2021
d23d5f7Fix: use blocksCache instead of single blocks instance (fixes #181) (#183) (JounQin)a09a645Chore: add yarn.lock and package-lock.json into .gitignore (#184) (JounQin)1280ac1Docs: improve jsdoc, better for typings (#182) (JounQin)79be776Fix: More reliable comment attachment (fixes #76) (#177) (Brandon Mills)
v2.0.0 - February 14, 2021
53dc0e5Docs: Remove prerelease README notes (#173) (Brandon Mills)140adf42.0.0-rc.2 (ESLint Jenkins)15d7aa6Build: changelog update for 2.0.0-rc.2 (ESLint Jenkins)f6a3fadFix: overrides pattern for virtual filenames in recommended config (#169) (Milos Djermanovic)390d5082.0.0-rc.1 (ESLint Jenkins)e05d6ebBuild: changelog update for 2.0.0-rc.1 (ESLint Jenkins)1dd7089Fix: npm prepare script on Windows (refs #166) (#168) (Brandon Mills)23ac2b9Fix: Ignore words in info string after syntax (fixes #166) (#167) (Brandon Mills)8f729d3Chore: Switch to main for primary branch (fixes #161) (#165) (Brandon Mills)d30c50fChore: Automatically install example dependencies (#164) (Brandon Mills)2749b4d2.0.0-rc.0 (ESLint Jenkins)922a00eBuild: changelog update for 2.0.0-rc.0 (ESLint Jenkins)d94c22fBuild: Install example test dependencies in Jenkins (#160) (Brandon Mills)7f26cb9Docs: Reference recommended config disabled rules (#159) (Brandon Mills)bf7648fDocs: Add TypeScript example (#155) (Brandon Mills)d80be9eNew: Add rules to recommended config (#157) (Nikolay Stoynov)fc4d7aaChore: run CI in Node 14.x (#158) (Kai Cataldo)f2d4923Docs: Add React example (#152) (Brandon Mills)eb66833New: Add recommended config (fixes #151) (#153) (Brandon Mills)0311640Fix: Don't require message end locations (fixes #112) (#154) (Brandon Mills)2bc93522.0.0-alpha.0 (ESLint Jenkins)c0ba401Build: changelog update for 2.0.0-alpha.0 (ESLint Jenkins)51e48c6Docs: Revamp documentation for v2 (#149) (Brandon Mills)b221391Docs: Dogfood plugin by linting readme (#145) (Brandon Mills)7423610Docs: Explain use of --ext option in ESLint v7 (#146) (Brandon Mills)0d4dbe8Breaking: Implement new processor API (fixes #138) (#144) (Brandon Mills)7eeafb8Chore: Update ESLint config and plugins (#143) (Brandon Mills)f483343Breaking: Require ESLint v6 (#142) (Brandon Mills)9aa1fdcChore: Use ES2018 object spread syntax (#141) (Brandon Mills)f584cc6Build: Remove Travis (#140) (Brandon Mills)35f9a11Breaking: Drop support for Node.js v6 (refs #138) (#137) (Brandon Mills)6f02ef5Chore: Add npm version and build status badges (#139) (Brandon Mills)
v2.0.0-rc.2 - January 30, 2021
f6a3fadFix: overrides pattern for virtual filenames in recommended config (#169) (Milos Djermanovic)
v2.0.0-rc.1 - December 20, 2020
1dd7089Fix: npm prepare script on Windows (refs #166) (#168) (Brandon Mills)23ac2b9Fix: Ignore words in info string after syntax (fixes #166) (#167) (Brandon Mills)8f729d3Chore: Switch to main for primary branch (fixes #161) (#165) (Brandon Mills)d30c50fChore: Automatically install example dependencies (#164) (Brandon Mills)
v2.0.0-rc.0 - August 19, 2020
d94c22fBuild: Install example test dependencies in Jenkins (#160) (Brandon Mills)7f26cb9Docs: Reference recommended config disabled rules (#159) (Brandon Mills)bf7648fDocs: Add TypeScript example (#155) (Brandon Mills)d80be9eNew: Add rules to recommended config (#157) (Nikolay Stoynov)fc4d7aaChore: run CI in Node 14.x (#158) (Kai Cataldo)f2d4923Docs: Add React example (#152) (Brandon Mills)eb66833New: Add recommended config (fixes #151) (#153) (Brandon Mills)0311640Fix: Don't require message end locations (fixes #112) (#154) (Brandon Mills)
v2.0.0-alpha.0 - April 12, 2020
51e48c6Docs: Revamp documentation for v2 (#149) (Brandon Mills)b221391Docs: Dogfood plugin by linting readme (#145) (Brandon Mills)7423610Docs: Explain use of --ext option in ESLint v7 (#146) (Brandon Mills)0d4dbe8Breaking: Implement new processor API (fixes #138) (#144) (Brandon Mills)7eeafb8Chore: Update ESLint config and plugins (#143) (Brandon Mills)f483343Breaking: Require ESLint v6 (#142) (Brandon Mills)9aa1fdcChore: Use ES2018 object spread syntax (#141) (Brandon Mills)f584cc6Build: Remove Travis (#140) (Brandon Mills)35f9a11Breaking: Drop support for Node.js v6 (refs #138) (#137) (Brandon Mills)6f02ef5Chore: Add npm version and build status badges (#139) (Brandon Mills)
v1.0.2 - February 24, 2020
52e0984Upgrade: Update devDeps and change istanbul -> nyc (#130) (Brett Zamir)d52988fChore: Remove call to lint absentMakefile.js(#129) (Brett Zamir)5640ea6Fix: Apply base indent to multiple line breaks (fixes #127) (#128) (Brett Zamir)
v1.0.1 - October 21, 2019
fb0b5a3Fix: Indent multiline fixes (fixes #120) (#124) (Brandon Mills)07c9017Chore: Use GitHub Actions (#123) (Brandon Mills)b5bf014Chore: Add Node 12 to Travis (#122) (Brandon Mills)dc90961Fix: Support autofix at the very start of blocks (fixes #117) (#119) (Simon Lydell)2de2490Docs: Syntax highlight Markdown (#116) (Brett Zamir)fdacf0cChore: Upgrade to eslint-config-eslint@5.0.1 (#110) (Brandon Mills)
v1.0.0 - January 2, 2019
2a8482eFix:overridesgeneral docs and Atom linter-eslint tips (fixes #109) (#111) (Brett Zamir)
v1.0.0-rc.1 - November 5, 2018
- a2f4492 Fix: Allowing eslint-plugin-prettier to work (fixes #101) (#107) (simlu)
v1.0.0-rc.0 - October 27, 2018
- 8fe9a0e New: Enable autofix with --fix (fixes #58) (#97) (Bohdan Khodakivskyi)
- a5d0cce Fix: Ignore anything after space in code fence's language (fixes #98) (#99) (Francisco Ryan Tolmasky I)
- 6fd340d Upgrade: eslint-release@1.0.0 (#100) (Teddy Katz)
- dff8e9c Fix: Emit correct endLine numbers (#88) (Paul Murray)
- 83f00d0 Docs: Suggest disabling strict in .md files (fixes #94) (#95) (Brandon Mills)
- 3b4ff95 Build: Test against Node v10 (#96) (Brandon Mills)
- 6777977 Breaking: required node version 6+ (#89) (薛定谔的猫)
- 5582fce Docs: Updating CLA link (#93) (Pablo Nevares)
- 24070e6 Build: Upgrade to eslint-release@0.11.1 (#92) (Brandon Mills)
- 6cfd1f0 Docs: Add unicode-bom to list of unsatisfiable rules (#91) (Brandon Mills)
v1.0.0-beta.8 - April 8, 2018
- a1544c2 Chore: Add .npmrc to disable creating package-lock.json (#90) (Brandon Mills)
- 47ad3f9 Chore: Replace global comment integration test with unit test (refs #81) (#85) (Brandon Mills)
- e34acc6 Fix: Add unicode-bom to unsatisfiable rules (refs #75) (#84) (Brandon Mills)
- 7c19f8b Fix: Support globals (fixes #79) (#81) (Anders D. Johnson)
v1.0.0-beta.7 - July 2, 2017
- f8ba18a New: Custom eslint-skip HTML comment skips blocks (fixes #69) (#73) (Brandon Mills)
- 249904f Chore: Add test for code fences without blank lines (#72) (Brandon Mills)
- 3abc569 Chore: Un-disable strict and eol-last in repository (#71) (Brandon Mills)
- 132ea5b Chore: Add test ensuring config comments do not fall through (#70) (Brandon Mills)
v1.0.0-beta.6 - April 29, 2017
- c5e9d67 Build: Explicitly specify package.json files (#67) (Brandon Mills)
v1.0.0-beta.5 - April 29, 2017
- 7bd0f6e Build: Install eslint-release (#66) (Brandon Mills)
- 48122eb Build: Dogfood plugin without npm link (#65) (Brandon Mills)
- cc7deea Chore: Increase code coverage (#64) (Brandon Mills)
- 29f2f05 Build: Use eslint-release (#63) (Brandon Mills)
- d2f2962 Upgrade: remark (#62) (Titus)