From efac02acf7947c8a1910fa8476f4ee913005f0fb Mon Sep 17 00:00:00 2001 From: Ned Zimmerman Date: Tue, 15 Aug 2023 17:09:40 -0300 Subject: [PATCH] feat: lint JavaScript in Markdown (#17) --- .eslintrc.js | 11 +++++++++-- package-lock.json | 25 +++++++++++++++++++++++++ package.json | 8 ++++++-- 3 files changed, 40 insertions(+), 4 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 511c38d..0dc77eb 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -3,7 +3,8 @@ module.exports = { extends: [ "fluid", - "plugin:yml/standard" + "plugin:yml/standard", + "plugin:markdown/recommended" ], ignorePatterns: ["_site/", "!.*.cjs", "!.*.js", "!.github/"], env: { @@ -14,5 +15,11 @@ module.exports = { }, parserOptions: { ecmaVersion: 2020 - } + }, + overrides: [ + { + files: ["**/*.md"], + processor: "markdown/markdown" + } + ] }; diff --git a/package-lock.json b/package-lock.json index 7d9b1d6..b8b70e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,6 +27,7 @@ "eslint": "8.47.0", "eslint-config-fluid": "2.1.1", "eslint-plugin-jsdoc": "46.4.6", + "eslint-plugin-markdown": "3.0.1", "eslint-plugin-yml": "1.8.0", "husky": "8.0.3", "image-size": "1.0.2", @@ -5388,6 +5389,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint-plugin-markdown": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.1.tgz", + "integrity": "sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==", + "dev": true, + "dependencies": { + "mdast-util-from-markdown": "^0.8.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, "node_modules/eslint-plugin-yml": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.8.0.tgz", @@ -20555,6 +20571,15 @@ } } }, + "eslint-plugin-markdown": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.1.tgz", + "integrity": "sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==", + "dev": true, + "requires": { + "mdast-util-from-markdown": "^0.8.5" + } + }, "eslint-plugin-yml": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-1.8.0.tgz", diff --git a/package.json b/package.json index 306293b..06bcbf2 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "dev": "cross-env NODE_ENV=development eleventy --serve", "lint": "run-s -l lint:*", "lint:css": "stylelint \"**/*.css\"", - "lint:js": "eslint \"**/*.js\"", + "lint:js": "eslint \"**/*.{js,md}\"", "lint:markdown": "markdownlint-cli2 \"**/*.md\"", "lint:yml": "eslint \"**/*.yml\"", "start": "npm-run-all -l clean -p start:*", @@ -47,6 +47,7 @@ "eslint": "8.47.0", "eslint-config-fluid": "2.1.1", "eslint-plugin-jsdoc": "46.4.6", + "eslint-plugin-markdown": "3.0.1", "eslint-plugin-yml": "1.8.0", "husky": "8.0.3", "image-size": "1.0.2", @@ -64,6 +65,9 @@ "lint-staged": { "*.css": "stylelint --fix", "*.{js,yml}": "eslint --fix", - "*.md": "markdownlint-cli2 --fix" + "*.md": [ + "markdownlint-cli2 --fix", + "eslint --fix" + ] } }