diff --git a/.editorconfig b/.editorconfig index 53a646e2741c..12b66846f4c9 100644 --- a/.editorconfig +++ b/.editorconfig @@ -7,7 +7,7 @@ trim_trailing_whitespace = true insert_final_newline = true # Format Source Code -[*.{md,js,jsx,json,scss,hbs}] +[*.{md,mdx,js,jsx,json,scss,hbs}] charset = utf-8 indent_style = space indent_size = 2 diff --git a/.eslintignore b/.eslintignore index 6d073b549b55..df2b84d48eef 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,4 +1,4 @@ dist/ examples/ -src/content/loaders/_*.md -src/content/plugins/_*.md +src/content/loaders/_*.mdx +src/content/plugins/_*.mdx diff --git a/.eslintrc.js b/.eslintrc.js index 1b163dd9bc9e..8d01e4cfb22c 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -9,7 +9,7 @@ module.exports = { jest: true, 'cypress/globals': true, }, - plugins: ['markdown', 'cypress', 'react-hooks'], + plugins: ['cypress', 'react-hooks'], rules: { 'no-console': 'off', semi: ['error', 'always'], @@ -41,11 +41,7 @@ module.exports = { }, }, { - files: ['**/*.md'], - processor: 'markdown/markdown', - }, - { - files: ['**/*.{md,mdx}/*.{js,javascript}'], // we don't lint ts at the moment + files: ['**/*.mdx/*.{js,javascript}'], // we don't lint ts at the moment rules: { indent: ['error', 2], quotes: ['error', 'single', { allowTemplateLiterals: true }], diff --git a/.gitignore b/.gitignore index e1ad0f31030a..b677660e7acc 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ node_modules dist !examples/**/dist src/**/_*.json -src/**/_*.md +src/**/_*.mdx .vscode .idea .DS_Store diff --git a/package.json b/package.json index 6fe35cd7012f..290bbcd1298b 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "clean-dist": "rimraf ./dist", "clean-printable": "rimraf src/content/**/printable.mdx", "preclean": "run-s clean-dist clean-printable", - "clean": "rimraf src/content/**/_*.md src/**/_*.json repositories/*.json", + "clean": "rimraf src/content/**/_*.mdx src/**/_*.json repositories/*.json", "start": "npm run clean-dist && webpack serve --config webpack.dev.js --env dev --progress --node-env development", "content": "node src/scripts/build-content-tree.js ./src/content ./src/_content.json", "bundle-analyze": "run-s clean fetch content && webpack --config webpack.prod.js --node-env production && run-s printable content && webpack --config webpack.ssg.js --node-env production --env ssg --profile --json > stats.json && webpack-bundle-analyzer stats.json", @@ -43,8 +43,8 @@ "lint": "run-s lint:*", "lint:js": "npm run lint-js .", "lint-js": "eslint --cache --cache-location .cache/.eslintcache", - "lint:markdown": "npm run lint-markdown *.md ./src/content/**/*.md", - "lint-markdown": "markdownlint --config ./.markdownlint.json --ignore './src/content/**/_*.md' --ignore '.vale/**/*.md' --ignore '.github/**/*.md'", + "lint:markdown": "npm run lint-markdown *.md", + "lint-markdown": "markdownlint --config ./.markdownlint.json --ignore '.vale/**/*.md' --ignore '.github/**/*.md'", "lint:prose": "vale --config='.vale.ini' src/content", "lint:links": "hyperlink -c 8 --root dist -r dist/index.html --canonicalroot https://webpack.js.org/ --internal --skip /plugins/extract-text-webpack-plugin/ --skip /printable --skip https:// --skip http:// --skip sw.js > internal-links.tap; cat internal-links.tap | tap-spot", "sitemap": "cd dist && sitemap-static --ignore-file=../sitemap-ignore.json --pretty --prefix=https://webpack.js.org/ > sitemap.xml", @@ -92,12 +92,10 @@ "eslint": "^7.32.0", "eslint-config-prettier": "^8.3.0", "eslint-plugin-cypress": "^2.11.3", - "eslint-plugin-markdown": "^2.2.0", "eslint-plugin-mdx": "^1.15.0", "eslint-plugin-react": "^7.24.0", "eslint-plugin-react-hooks": "^4.2.0", "front-matter": "^4.0.2", - "html-loader": "^2.1.2", "html-webpack-plugin": "^5.3.2", "http-server": "^13.0.1", "husky": "^7.0.1", @@ -123,9 +121,8 @@ "remark-extract-anchors": "1.1.1", "remark-frontmatter": "^3.0.0", "remark-gfm": "^1.0.0", - "remark-html": "^13.0.1", - "remark-loader": "^4.0.0", - "remark-refractor": "git://github.com/montogeek/remark-refractor.git", + "remark-html": "^13.0.0", + "remark-refractor": "montogeek/remark-refractor", "remark-slug": "^6.1.0", "rimraf": "^3.0.2", "sass": "^1.38.0", diff --git a/src/content/configuration/index.mdx b/src/content/configuration/index.mdx index d837d6f8f5c8..3a94b752bdf2 100644 --- a/src/content/configuration/index.mdx +++ b/src/content/configuration/index.mdx @@ -1171,5 +1171,3 @@ found 0 vulnerabilities Congratulations! Your new webpack configuration file has been created! ``` - - diff --git a/src/content/migrate/5.mdx b/src/content/migrate/5.mdx index b2e6eca90d27..5b2862166284 100644 --- a/src/content/migrate/5.mdx +++ b/src/content/migrate/5.mdx @@ -256,7 +256,7 @@ Create an [issue](https://github.com/webpack/webpack/issues/new?template=Bug_rep ## Something missing in this guide? -Please open a [Pull Request](https://github.com/webpack/webpack.js.org/edit/master/src/content/migrate/5.md) to help the next person using this guide. +Please open a [Pull Request](https://github.com/webpack/webpack.js.org/edit/master/src/content/migrate/5.mdx) to help the next person using this guide. ## Changes to internals diff --git a/src/utilities/content-tree-enhancers.js b/src/utilities/content-tree-enhancers.js index 307580cba60f..673264efa2e4 100644 --- a/src/utilities/content-tree-enhancers.js +++ b/src/utilities/content-tree-enhancers.js @@ -15,7 +15,7 @@ const enhance = (tree, options) => { const dir = path.normalize(options.dir).replace(/^(\.\/)/gm, ''); tree.url = tree.path - // delete `.md` extensions + // delete `.mdx` extensions .replace(tree.extension, '') // delete source content directory .replace(dir, '') diff --git a/webpack.common.js b/webpack.common.js index f8a86792a8a3..03f1912544c4 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -60,22 +60,6 @@ module.exports = ({ ssg = false }) => ({ }, ], }, - { - test: /\.md$/, - use: [ - { - loader: 'html-loader', - }, - { - loader: 'remark-loader', - options: { - remarkOptions: { - plugins: [...mdPlugins, require('remark-html')], - }, - }, - }, - ], - }, { test: /\.jsx?$/, exclude: /node_modules/, diff --git a/yarn.lock b/yarn.lock index 497b93c08652..84365d8e890d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5913,9 +5913,9 @@ hast-util-parse-selector@^2.0.0: integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ== hast-util-sanitize@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/hast-util-sanitize/-/hast-util-sanitize-3.0.0.tgz#4cdc26b2991b3bf90ee74b5c932e14d907549312" - integrity sha512-gxsM24ARtuulsrWEj8QtVM6FNeAEHklF/t7TEIWvX1wuQcoAQtJtEUcT8t0os4uxCUqh1epX/gTi8fp8gNKvCA== + version "3.0.2" + resolved "https://registry.yarnpkg.com/hast-util-sanitize/-/hast-util-sanitize-3.0.2.tgz#b0b783220af528ba8fe6999f092d138908678520" + integrity sha512-+2I0x2ZCAyiZOO/sb4yNLFmdwPBnyJ4PBkVTUMKMqBwYNA+lXSgOmoRXlJFazoyid9QPogRRKgKhVEodv181sA== dependencies: xtend "^4.0.0" @@ -5935,9 +5935,9 @@ hast-util-to-estree@^1.1.0: zwitch "^1.0.0" hast-util-to-html@^7.0.0: - version "7.1.1" - resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-7.1.1.tgz#39818b8bbfcb8eaa87846a120b3875487b27d094" - integrity sha512-Ujqj0hGuo3dIQKilkbauAv5teOqPvhaSLEgs1lgApFT0812e114KiffV8XfE4ttR8dRPqxNOIJOMu6SKOVOGlg== + version "7.1.3" + resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-7.1.3.tgz#9f339ca9bea71246e565fc79ff7dbfe98bb50f5e" + integrity sha512-yk2+1p3EJTEE9ZEUkgHsUSVhIpCsL/bvT8E5GzmWc+N1Po5gBw+0F8bo7dpxXR0nu0bQVxVZGX2lBGF21CmeDw== dependencies: ccount "^1.0.0" comma-separated-tokens "^1.0.0" @@ -6046,15 +6046,7 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -html-loader@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/html-loader/-/html-loader-2.1.2.tgz#17eb111441e863a9308071ed876b4ba861f143df" - integrity sha512-XB4O1+6mpLp4qy/3qg5+1QPZ/uXvWtO64hNAX87sKHwcHkp1LJGU7V3sJ9iVmRACElAZXQ4YOO/Lbkx5kYfl9A== - dependencies: - html-minifier-terser "^5.1.1" - parse5 "^6.0.1" - -html-minifier-terser@^5.0.1, html-minifier-terser@^5.1.1: +html-minifier-terser@^5.0.1: version "5.1.1" resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054" integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg== @@ -6574,7 +6566,7 @@ is-date-object@^1.0.1: resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== -is-decimal@^1.0.0, is-decimal@^1.0.2: +is-decimal@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== @@ -8090,21 +8082,7 @@ mdast-util-mdxjs-esm@~0.1.0: resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-0.1.1.tgz#69134a0dad71a59a9e0e9cfdc0633dde31dff69a" integrity sha512-kBiYeashz+nuhfv+712nc4THQhzXIH2gBFUDbuLxuDCqU/fZeg+9FAcdRBx9E13dkpk1p2Xwufzs3wsGJ+mISQ== -mdast-util-to-hast@^10.0.0: - version "10.0.1" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.0.1.tgz#0cfc82089494c52d46eb0e3edb7a4eb2aea021eb" - integrity sha512-BW3LM9SEMnjf4HXXVApZMt8gLQWVNXc3jryK0nJu/rOXPOnlkUjmdkDlmxMirpbU9ILncGFIwLH/ubnWBbcdgA== - dependencies: - "@types/mdast" "^3.0.0" - "@types/unist" "^2.0.0" - mdast-util-definitions "^4.0.0" - mdurl "^1.0.0" - unist-builder "^2.0.0" - unist-util-generated "^1.0.0" - unist-util-position "^3.0.0" - unist-util-visit "^2.0.0" - -mdast-util-to-hast@^10.1.0: +mdast-util-to-hast@^10.0.0, mdast-util-to-hast@^10.1.0: version "10.2.0" resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-10.2.0.tgz#61875526a017d8857b71abc9333942700b2d3604" integrity sha512-JoPBfJ3gBnHZ18icCwHR50orC9kNH81tiR1gs01D8Q5YpV6adHNO9nKNuFBCJQ941/32PT1a63UF/DitmS3amQ== @@ -8974,7 +8952,7 @@ parse-json@^5.0.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse5@6.0.1, parse5@^6.0.1: +parse5@6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== @@ -10303,7 +10281,7 @@ remark-gfm@^1.0.0: mdast-util-gfm "^0.1.0" micromark-extension-gfm "^0.3.0" -remark-html@^13.0.1: +remark-html@^13.0.0: version "13.0.1" resolved "https://registry.yarnpkg.com/remark-html/-/remark-html-13.0.1.tgz#d5b2d8be01203e61fc37403167ca7584879ad675" integrity sha512-K5KQCXWVz+harnyC+UVM/J9eJWCgjYRqFeZoZf2NgP0iFbuuw/RgMZv3MA34b/OEpGnstl3oiOUtZzD3tJ+CBw== @@ -10312,14 +10290,6 @@ remark-html@^13.0.1: hast-util-to-html "^7.0.0" mdast-util-to-hast "^10.0.0" -remark-loader@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/remark-loader/-/remark-loader-4.0.0.tgz#a8afa003ce53726adbe5dc09a349b75e846db349" - integrity sha512-Bg+fQtqOAx3wCaHZxuLjN43JR9ducG/KO4ru+Adj6U8CuI7NsBQQkOfnf1YtxiPf4JP2Pt9FeJIbPWcVHWJqvw== - dependencies: - front-matter "^4.0.2" - vfile-reporter "^6.0.2" - remark-mdx@2.0.0-next.9: version "2.0.0-next.9" resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-2.0.0-next.9.tgz#3e2088550ddd4264ce48bca15fb297569d369e65" @@ -10372,9 +10342,9 @@ remark-parse@^9.0.0: dependencies: mdast-util-from-markdown "^0.8.0" -"remark-refractor@git://github.com/montogeek/remark-refractor.git": +remark-refractor@montogeek/remark-refractor: version "1.0.0" - resolved "git://github.com/montogeek/remark-refractor.git#9b6048f89739b27f9de701d29d29d980b3ea18d7" + resolved "https://codeload.github.com/montogeek/remark-refractor/tar.gz/9b6048f89739b27f9de701d29d29d980b3ea18d7" dependencies: refractor "^3.1.0" unist-util-visit "1.3.1" @@ -10442,7 +10412,7 @@ renderkid@^2.0.6: lodash "^4.17.21" strip-ansi "^3.0.1" -repeat-string@^1.0.0, repeat-string@^1.5.0, repeat-string@^1.5.4: +repeat-string@^1.0.0, repeat-string@^1.5.4: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= @@ -11239,7 +11209,7 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== @@ -11321,7 +11291,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -stringify-entities@^3.0.0, stringify-entities@^3.1.0: +stringify-entities@^3.0.0, stringify-entities@^3.0.1, stringify-entities@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-3.1.0.tgz#b8d3feac256d9ffcc9fa1fefdcf3ca70576ee903" integrity sha512-3FP+jGMmMV/ffZs86MoghGqAoqXAdxLrJP4GUdrDN1aIScYih5tuIO3eF4To5AJZ79KDZ8Fpdy7QJnK8SsL1Vg== @@ -11330,17 +11300,6 @@ stringify-entities@^3.0.0, stringify-entities@^3.1.0: character-entities-legacy "^1.0.0" xtend "^4.0.0" -stringify-entities@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-3.0.1.tgz#32154b91286ab0869ab2c07696223bd23b6dbfc0" - integrity sha512-Lsk3ISA2++eJYqBMPKcr/8eby1I6L0gP0NlxF8Zja6c05yr/yCYyb2c9PwXjd08Ib3If1vn1rbs1H5ZtVuOfvQ== - dependencies: - character-entities-html4 "^1.0.0" - character-entities-legacy "^1.0.0" - is-alphanumerical "^1.0.0" - is-decimal "^1.0.2" - is-hexadecimal "^1.0.0" - stringify-object@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" @@ -11464,7 +11423,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^6.0.0, supports-color@^6.1.0: +supports-color@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== @@ -12321,28 +12280,6 @@ vfile-message@^2.0.0: "@types/unist" "^2.0.0" unist-util-stringify-position "^2.0.0" -vfile-reporter@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/vfile-reporter/-/vfile-reporter-6.0.2.tgz#cbddaea2eec560f27574ce7b7b269822c191a676" - integrity sha512-GN2bH2gs4eLnw/4jPSgfBjo+XCuvnX9elHICJZjVD4+NM0nsUrMTvdjGY5Sc/XG69XVTgLwj7hknQVc6M9FukA== - dependencies: - repeat-string "^1.5.0" - string-width "^4.0.0" - supports-color "^6.0.0" - unist-util-stringify-position "^2.0.0" - vfile-sort "^2.1.2" - vfile-statistics "^1.1.0" - -vfile-sort@^2.1.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/vfile-sort/-/vfile-sort-2.2.2.tgz#720fe067ce156aba0b411a01bb0dc65596aa1190" - integrity sha512-tAyUqD2R1l/7Rn7ixdGkhXLD3zsg+XLAeUDUhXearjfIcpL1Hcsj5hHpCoy/gvfK/Ws61+e972fm0F7up7hfYA== - -vfile-statistics@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/vfile-statistics/-/vfile-statistics-1.1.4.tgz#b99fd15ecf0f44ba088cc973425d666cb7a9f245" - integrity sha512-lXhElVO0Rq3frgPvFBwahmed3X03vjPF8OcjKMy8+F1xU/3Q3QU3tKEDp743SFtb74PdF0UWpxPvtOP0GCLheA== - vfile@^4.0.0, vfile@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624"