From 84f1fa43310400d3d3d595cdf0f35e71d31e7ffc Mon Sep 17 00:00:00 2001 From: antmcc49 Date: Fri, 21 May 2021 14:05:47 +0100 Subject: [PATCH 1/4] fix: fix links to JSON from .md files closes #3561 It seems to be a common problem that many people are having see: https://stackoverflow.com/questions/65307533/link-to-static-json-file Co-authored-by: Anthony McCaigue Co-authored-by: Alois Klink --- packages/docusaurus/src/webpack/utils.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/docusaurus/src/webpack/utils.ts b/packages/docusaurus/src/webpack/utils.ts index 0ecf28f45bf8..95667079ab75 100644 --- a/packages/docusaurus/src/webpack/utils.ts +++ b/packages/docusaurus/src/webpack/utils.ts @@ -33,6 +33,7 @@ import { import { BABEL_CONFIG_FILE_NAME, OUTPUT_STATIC_ASSETS_DIR_NAME, + STATIC_DIR_NAME, } from '../constants'; import {memoize} from 'lodash'; @@ -122,6 +123,7 @@ export function getBabelOptions({ babelrc: false, configFile: babelOptions, caller: {name: isServer ? 'server' : 'client'}, + exclude: new RegExp(`"/${STATIC_DIR_NAME}/"`), // exclude static dir }; } else { return Object.assign( From e556b4f2fad348d4c2f4c0ef9f06e3e07afdee46 Mon Sep 17 00:00:00 2001 From: Josh-Cena Date: Sun, 21 Nov 2021 10:28:13 +0800 Subject: [PATCH 2/4] Add dogfooding examples --- website/_dogfooding/_pages tests/data.json | 3 +++ website/_dogfooding/_pages tests/markdown-tests.md | 6 ++++++ website/_dogfooding/_pages tests/script.js | 8 ++++++++ 3 files changed, 17 insertions(+) create mode 100644 website/_dogfooding/_pages tests/data.json create mode 100644 website/_dogfooding/_pages tests/script.js diff --git a/website/_dogfooding/_pages tests/data.json b/website/_dogfooding/_pages tests/data.json new file mode 100644 index 000000000000..f2a886f39de7 --- /dev/null +++ b/website/_dogfooding/_pages tests/data.json @@ -0,0 +1,3 @@ +{ + "hello": "world" +} diff --git a/website/_dogfooding/_pages tests/markdown-tests.md b/website/_dogfooding/_pages tests/markdown-tests.md index f1a417b9c3f2..bec14134d416 100644 --- a/website/_dogfooding/_pages tests/markdown-tests.md +++ b/website/_dogfooding/_pages tests/markdown-tests.md @@ -25,3 +25,9 @@ See [#3309](https://github.com/facebook/docusaurus/issues/3309) - [pathname://../dogfooding/javadoc](pathname://../dogfooding/javadoc) - [pathname://../dogfooding/javadoc/index.html](pathname://../dogfooding/javadoc/index.html) + +## Linking to JSON + +- [./script.js](./script.js) + +- [./data.json](./data.json) diff --git a/website/_dogfooding/_pages tests/script.js b/website/_dogfooding/_pages tests/script.js new file mode 100644 index 000000000000..fd076832c21f --- /dev/null +++ b/website/_dogfooding/_pages tests/script.js @@ -0,0 +1,8 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +export default 1; From a82d89271463efcc77a121542604bfbcf80d14cf Mon Sep 17 00:00:00 2001 From: Joshua Chen Date: Sun, 23 Jan 2022 11:25:23 +0800 Subject: [PATCH 3/4] actually fix --- .../remark/transformLinks/__tests__/__fixtures__/asset.md | 4 ++++ .../remark/transformLinks/__tests__/__fixtures__/data.json | 1 + .../__tests__/__fixtures__/static/staticjson.json | 1 + .../__tests__/__snapshots__/index.test.ts.snap | 4 ++++ .../src/remark/transformLinks/index.ts | 7 ++++++- 5 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__fixtures__/data.json create mode 100644 packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__fixtures__/static/staticjson.json diff --git a/packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__fixtures__/asset.md b/packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__fixtures__/asset.md index e0e041b47cac..a3808267d20f 100644 --- a/packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__fixtures__/asset.md +++ b/packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__fixtures__/asset.md @@ -35,3 +35,7 @@ [![Clickable Docusaurus logo](./static/staticAssetImage.png)](/staticAssetImage.png) [Stylized link to asset file](./asset.pdf) + +[json](./data.json) + +[static json](/staticjson.json) diff --git a/packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__fixtures__/data.json b/packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__fixtures__/data.json new file mode 100644 index 000000000000..56c8e280338e --- /dev/null +++ b/packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__fixtures__/data.json @@ -0,0 +1 @@ +{"hello": "world"} diff --git a/packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__fixtures__/static/staticjson.json b/packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__fixtures__/static/staticjson.json new file mode 100644 index 000000000000..b60e84d9eb62 --- /dev/null +++ b/packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__fixtures__/static/staticjson.json @@ -0,0 +1 @@ +{"static": ["json", 1]} diff --git a/packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__snapshots__/index.test.ts.snap b/packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__snapshots__/index.test.ts.snap index fcf9a94faf09..5f176b716cf3 100644 --- a/packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__snapshots__/index.test.ts.snap +++ b/packages/docusaurus-mdx-loader/src/remark/transformLinks/__tests__/__snapshots__/index.test.ts.snap @@ -47,5 +47,9 @@ exports[`transformAsset plugin transform md links to 1`] = ` {\\"Clickable Stylized link to asset file + +json + +static json " `; diff --git a/packages/docusaurus-mdx-loader/src/remark/transformLinks/index.ts b/packages/docusaurus-mdx-loader/src/remark/transformLinks/index.ts index 80a85a5c8dca..e674bb68695a 100644 --- a/packages/docusaurus-mdx-loader/src/remark/transformLinks/index.ts +++ b/packages/docusaurus-mdx-loader/src/remark/transformLinks/index.ts @@ -47,7 +47,12 @@ function toAssetRequireNode(node: Link, assetPath: string, filePath: string) { const hash = parsedUrl.hash ?? ''; const search = parsedUrl.search ?? ''; - const href = `require('${inlineMarkdownLinkFileLoader}${ + const href = `require('${ + // A hack to stop Webpack from using its built-in loader to parse JSON + path.extname(relativeAssetPath) === '.json' + ? `${relativeAssetPath.replace('.json', '.raw')}!=` + : '' + }${inlineMarkdownLinkFileLoader}${ escapePath(relativeAssetPath) + search }').default${hash ? ` + '${hash}'` : ''}`; const children = stringifyContent(node); From 091d97b6da3ca8ea748483dd680dd2f2b092fdde Mon Sep 17 00:00:00 2001 From: Joshua Chen Date: Sun, 23 Jan 2022 11:32:05 +0800 Subject: [PATCH 4/4] oops --- website/_dogfooding/_pages tests/{script.js => _script.js} | 0 website/_dogfooding/_pages tests/markdown-tests.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename website/_dogfooding/_pages tests/{script.js => _script.js} (100%) diff --git a/website/_dogfooding/_pages tests/script.js b/website/_dogfooding/_pages tests/_script.js similarity index 100% rename from website/_dogfooding/_pages tests/script.js rename to website/_dogfooding/_pages tests/_script.js diff --git a/website/_dogfooding/_pages tests/markdown-tests.md b/website/_dogfooding/_pages tests/markdown-tests.md index bec14134d416..80d9ea8bade0 100644 --- a/website/_dogfooding/_pages tests/markdown-tests.md +++ b/website/_dogfooding/_pages tests/markdown-tests.md @@ -28,6 +28,6 @@ See [#3309](https://github.com/facebook/docusaurus/issues/3309) ## Linking to JSON -- [./script.js](./script.js) +- [./script.js](./_script.js) - [./data.json](./data.json)