@docusaurus/mdx-loader 2.0.0-beta.16 → 2.0.0-beta.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/lib/index.d.ts +25 -16
  2. package/lib/index.d.ts.map +1 -1
  3. package/lib/index.js +2 -169
  4. package/lib/index.js.map +1 -1
  5. package/lib/loader.d.ts +39 -0
  6. package/lib/loader.d.ts.map +1 -0
  7. package/lib/loader.js +194 -0
  8. package/lib/loader.js.map +1 -0
  9. package/lib/remark/headings/index.d.ts.map +1 -1
  10. package/lib/remark/headings/index.js +3 -5
  11. package/lib/remark/headings/index.js.map +1 -1
  12. package/lib/remark/toc/index.d.ts +2 -2
  13. package/lib/remark/toc/index.d.ts.map +1 -1
  14. package/lib/remark/toc/index.js +7 -7
  15. package/lib/remark/toc/index.js.map +1 -1
  16. package/lib/remark/transformImage/index.d.ts.map +1 -1
  17. package/lib/remark/transformImage/index.js +18 -15
  18. package/lib/remark/transformImage/index.js.map +1 -1
  19. package/lib/remark/transformLinks/index.d.ts.map +1 -1
  20. package/lib/remark/transformLinks/index.js +14 -14
  21. package/lib/remark/transformLinks/index.js.map +1 -1
  22. package/lib/remark/unwrapMdxCodeBlocks/index.js +2 -2
  23. package/lib/remark/unwrapMdxCodeBlocks/index.js.map +1 -1
  24. package/lib/remark/utils/index.d.ts.map +1 -1
  25. package/lib/remark/utils/index.js +4 -4
  26. package/lib/remark/utils/index.js.map +1 -1
  27. package/package.json +17 -17
  28. package/src/deps.d.ts +16 -15
  29. package/src/index.ts +23 -213
  30. package/src/loader.ts +253 -0
  31. package/src/remark/headings/index.ts +3 -6
  32. package/src/remark/toc/index.ts +7 -7
  33. package/src/remark/transformImage/index.ts +12 -5
  34. package/src/remark/transformLinks/index.ts +8 -3
  35. package/src/remark/unwrapMdxCodeBlocks/index.ts +1 -1
  36. package/src/remark/utils/index.ts +1 -2
  37. package/src/mdx-loader.d.ts +0 -18
@@ -8,23 +8,22 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  const tslib_1 = require("tslib");
10
10
  const utils_1 = require("@docusaurus/utils");
11
- const unist_util_visit_1 = (0, tslib_1.__importDefault)(require("unist-util-visit"));
12
- const path_1 = (0, tslib_1.__importDefault)(require("path"));
13
- const url_1 = (0, tslib_1.__importDefault)(require("url"));
14
- const fs_extra_1 = (0, tslib_1.__importDefault)(require("fs-extra"));
15
- const escape_html_1 = (0, tslib_1.__importDefault)(require("escape-html"));
16
- const image_size_1 = (0, tslib_1.__importDefault)(require("image-size"));
11
+ const unist_util_visit_1 = tslib_1.__importDefault(require("unist-util-visit"));
12
+ const path_1 = tslib_1.__importDefault(require("path"));
13
+ const url_1 = tslib_1.__importDefault(require("url"));
14
+ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
15
+ const escape_html_1 = tslib_1.__importDefault(require("escape-html"));
16
+ const image_size_1 = tslib_1.__importDefault(require("image-size"));
17
17
  const util_1 = require("util");
18
- const logger_1 = (0, tslib_1.__importDefault)(require("@docusaurus/logger"));
18
+ const logger_1 = tslib_1.__importDefault(require("@docusaurus/logger"));
19
19
  const { loaders: { inlineMarkdownImageFileLoader }, } = (0, utils_1.getFileLoaderUtils)();
20
20
  async function toImageRequireNode(node, imagePath, filePath) {
21
- var _a, _b;
22
21
  const jsxNode = node;
23
22
  let relativeImagePath = (0, utils_1.posixPath)(path_1.default.relative(path_1.default.dirname(filePath), imagePath));
24
23
  relativeImagePath = `./${relativeImagePath}`;
25
24
  const parsedUrl = url_1.default.parse(node.url);
26
- const hash = (_a = parsedUrl.hash) !== null && _a !== void 0 ? _a : '';
27
- const search = (_b = parsedUrl.search) !== null && _b !== void 0 ? _b : '';
25
+ const hash = parsedUrl.hash ?? '';
26
+ const search = parsedUrl.search ?? '';
28
27
  const alt = node.alt ? `alt={"${(0, escape_html_1.default)(node.alt)}"} ` : '';
29
28
  const src = `require("${inlineMarkdownImageFileLoader}${(0, utils_1.escapePath)(relativeImagePath) + search}").default${hash ? ` + '${hash}'` : ''}`;
30
29
  const title = node.title ? ` title="${(0, escape_html_1.default)(node.title)}"` : '';
@@ -40,12 +39,16 @@ async function toImageRequireNode(node, imagePath, filePath) {
40
39
  }
41
40
  }
42
41
  catch (err) {
43
- logger_1.default.error `The image at path=${imagePath} can't be read correctly. Please ensure it's a valid image.
42
+ // Workaround for https://github.com/yarnpkg/berry/pull/3889#issuecomment-1034469784
43
+ // TODO remove this check once fixed in Yarn PnP
44
+ if (!process.versions.pnp) {
45
+ logger_1.default.warn `The image at path=${imagePath} can't be read correctly. Please ensure it's a valid image.
44
46
  ${err.message}`;
47
+ }
45
48
  }
46
49
  Object.keys(jsxNode).forEach((key) => delete jsxNode[key]);
47
50
  jsxNode.type = 'jsx';
48
- jsxNode.value = `<img loading="lazy" ${alt}src={${src}}${title}${width}${height} />`;
51
+ jsxNode.value = `<img ${alt}src={${src}}${title}${width}${height} />`;
49
52
  }
50
53
  async function ensureImageFileExist(imagePath, sourceFilePath) {
51
54
  const imageExists = await fs_extra_1.default.pathExists(imagePath);
@@ -60,7 +63,7 @@ async function getImageAbsolutePath(imagePath, { siteDir, filePath, staticDirs }
60
63
  return imageFilePath;
61
64
  }
62
65
  else if (path_1.default.isAbsolute(imagePath)) {
63
- // absolute paths are expected to exist in the static folder
66
+ // Absolute paths are expected to exist in the static folder.
64
67
  const possiblePaths = staticDirs.map((dir) => path_1.default.join(dir, imagePath));
65
68
  const imageFilePath = await (0, utils_1.findAsyncSequential)(possiblePaths, fs_extra_1.default.pathExists);
66
69
  if (!imageFilePath) {
@@ -70,8 +73,8 @@ async function getImageAbsolutePath(imagePath, { siteDir, filePath, staticDirs }
70
73
  }
71
74
  return imageFilePath;
72
75
  }
73
- // relative paths are resolved against the source file's folder
74
- const imageFilePath = path_1.default.join(path_1.default.dirname(filePath), imagePath);
76
+ // Relative paths are resolved against the source file's folder.
77
+ const imageFilePath = path_1.default.join(path_1.default.dirname(filePath), decodeURIComponent(imagePath));
75
78
  await ensureImageFileExist(imageFilePath, filePath);
76
79
  return imageFilePath;
77
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/transformImage/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/transformImage/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/transformLinks/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAOzC,aAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA4GF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,CAQlE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/transformLinks/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAOzC,aAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAiHF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,CAQlE"}
@@ -8,23 +8,24 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  const tslib_1 = require("tslib");
10
10
  const utils_1 = require("@docusaurus/utils");
11
- const unist_util_visit_1 = (0, tslib_1.__importDefault)(require("unist-util-visit"));
12
- const path_1 = (0, tslib_1.__importDefault)(require("path"));
13
- const url_1 = (0, tslib_1.__importDefault)(require("url"));
14
- const fs_extra_1 = (0, tslib_1.__importDefault)(require("fs-extra"));
15
- const escape_html_1 = (0, tslib_1.__importDefault)(require("escape-html"));
11
+ const unist_util_visit_1 = tslib_1.__importDefault(require("unist-util-visit"));
12
+ const path_1 = tslib_1.__importDefault(require("path"));
13
+ const url_1 = tslib_1.__importDefault(require("url"));
14
+ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
15
+ const escape_html_1 = tslib_1.__importDefault(require("escape-html"));
16
16
  const utils_2 = require("../utils");
17
17
  const { loaders: { inlineMarkdownLinkFileLoader }, } = (0, utils_1.getFileLoaderUtils)();
18
- // transform the link node to a jsx link with a require() call
18
+ /**
19
+ * Transforms the link node to a JSX `<a>` element with a `require()` call.
20
+ */
19
21
  function toAssetRequireNode(node, assetPath, filePath) {
20
- var _a, _b;
21
22
  const jsxNode = node;
22
23
  let relativeAssetPath = (0, utils_1.posixPath)(path_1.default.relative(path_1.default.dirname(filePath), assetPath));
23
24
  // require("assets/file.pdf") means requiring from a package called assets
24
25
  relativeAssetPath = `./${relativeAssetPath}`;
25
26
  const parsedUrl = url_1.default.parse(node.url);
26
- const hash = (_a = parsedUrl.hash) !== null && _a !== void 0 ? _a : '';
27
- const search = (_b = parsedUrl.search) !== null && _b !== void 0 ? _b : '';
27
+ const hash = parsedUrl.hash ?? '';
28
+ const search = parsedUrl.search ?? '';
28
29
  const href = `require('${
29
30
  // A hack to stop Webpack from using its built-in loader to parse JSON
30
31
  path_1.default.extname(relativeAssetPath) === '.json'
@@ -65,12 +66,11 @@ async function getAssetAbsolutePath(assetPath, { siteDir, filePath, staticDirs }
65
66
  return null;
66
67
  }
67
68
  async function processLinkNode(node, context) {
68
- var _a, _b, _c;
69
69
  if (!node.url) {
70
- // try to improve error feedback
70
+ // Try to improve error feedback
71
71
  // see https://github.com/facebook/docusaurus/issues/3309#issuecomment-690371675
72
- const title = node.title || ((_a = node.children[0]) === null || _a === void 0 ? void 0 : _a.value) || '?';
73
- const line = ((_c = (_b = node === null || node === void 0 ? void 0 : node.position) === null || _b === void 0 ? void 0 : _b.start) === null || _c === void 0 ? void 0 : _c.line) || '?';
72
+ const title = node.title || node.children[0]?.value || '?';
73
+ const line = node?.position?.start?.line || '?';
74
74
  throw new Error(`Markdown link URL is mandatory in "${(0, utils_1.toMessageRelativeFilePath)(context.filePath)}" file (title: ${title}, line: ${line}).`);
75
75
  }
76
76
  const parsedUrl = url_1.default.parse(node.url);
@@ -84,7 +84,7 @@ async function processLinkNode(node, context) {
84
84
  if (!hasSiteAlias && !hasAssetLikeExtension) {
85
85
  return;
86
86
  }
87
- const assetPath = await getAssetAbsolutePath(parsedUrl.pathname, context);
87
+ const assetPath = await getAssetAbsolutePath(decodeURIComponent(parsedUrl.pathname), context);
88
88
  if (assetPath) {
89
89
  toAssetRequireNode(node, assetPath, context.filePath);
90
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/transformLinks/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/transformLinks/index.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  const tslib_1 = require("tslib");
10
- const unist_util_visit_1 = (0, tslib_1.__importDefault)(require("unist-util-visit"));
10
+ const unist_util_visit_1 = tslib_1.__importDefault(require("unist-util-visit"));
11
11
  // This plugin is mostly to help integrating Docusaurus with translation systems
12
12
  // that do not support well MDX embedded JSX syntax (like Crowdin).
13
13
  // We wrap the JSX syntax in code blocks so that translation tools don't mess up
@@ -16,7 +16,7 @@ const unist_util_visit_1 = (0, tslib_1.__importDefault)(require("unist-util-visi
16
16
  // See https://github.com/facebook/docusaurus/pull/4278
17
17
  function plugin() {
18
18
  return (root) => {
19
- (0, unist_util_visit_1.default)(root, 'code', (node, _index, parent) => {
19
+ (0, unist_util_visit_1.default)(root, 'code', (node, index, parent) => {
20
20
  if (node.lang === 'mdx-code-block') {
21
21
  const newChildren = this.parse(node.value).children;
22
22
  // Replace the mdx code block by its content, parsed
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/unwrapMdxCodeBlocks/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,qFAAqC;AAIrC,gFAAgF;AAChF,mEAAmE;AACnE,gFAAgF;AAChF,uEAAuE;AACvE,mBAAmB;AACnB,uDAAuD;AACvD,SAAwB,MAAM;IAC5B,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,IAAA,0BAAK,EAAC,IAAI,EAAE,MAAM,EAAE,CAAC,IAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE;gBAClC,MAAM,WAAW,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAY,CAAC,QAAQ,CAAC;gBAEhE,oDAAoD;gBACpD,MAAO,CAAC,QAAQ,CAAC,MAAM,CACrB,MAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAC9B,CAAC,EACD,GAAG,WAAW,CACf,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAfD,yBAeC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/unwrapMdxCodeBlocks/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,gFAAqC;AAIrC,gFAAgF;AAChF,mEAAmE;AACnE,gFAAgF;AAChF,uEAAuE;AACvE,mBAAmB;AACnB,uDAAuD;AACvD,SAAwB,MAAM;IAC5B,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,IAAA,0BAAK,EAAC,IAAI,EAAE,MAAM,EAAE,CAAC,IAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAChD,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE;gBAClC,MAAM,WAAW,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAY,CAAC,QAAQ,CAAC;gBAEhE,oDAAoD;gBACpD,MAAO,CAAC,QAAQ,CAAC,MAAM,CACrB,MAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAC9B,CAAC,EACD,GAAG,WAAW,CACf,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAfD,yBAeC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAC,eAAe,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAEpD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,GAAG,MAAM,CAoB/D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAC,eAAe,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAEpD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,GAAG,MAAM,CAmB/D"}
@@ -8,14 +8,14 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.toValue = exports.stringifyContent = void 0;
10
10
  const tslib_1 = require("tslib");
11
- const escape_html_1 = (0, tslib_1.__importDefault)(require("escape-html"));
12
- const mdast_util_to_string_1 = (0, tslib_1.__importDefault)(require("mdast-util-to-string"));
11
+ const escape_html_1 = tslib_1.__importDefault(require("escape-html"));
12
+ const mdast_util_to_string_1 = tslib_1.__importDefault(require("mdast-util-to-string"));
13
13
  function stringifyContent(node) {
14
14
  return node.children.map(toValue).join('');
15
15
  }
16
16
  exports.stringifyContent = stringifyContent;
17
17
  function toValue(node) {
18
- switch (node === null || node === void 0 ? void 0 : node.type) {
18
+ switch (node?.type) {
19
19
  case 'text':
20
20
  return (0, escape_html_1.default)(node.value);
21
21
  case 'heading':
@@ -31,8 +31,8 @@ function toValue(node) {
31
31
  case 'link':
32
32
  return stringifyContent(node);
33
33
  default:
34
+ return (0, mdast_util_to_string_1.default)(node);
34
35
  }
35
- return (0, mdast_util_to_string_1.default)(node);
36
36
  }
37
37
  exports.toValue = toValue;
38
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,2EAAqC;AACrC,6FAA4C;AAI5C,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAQ,IAAI,CAAC,QAA8B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC;AAFD,4CAEC;AAED,SAAgB,OAAO,CAAC,IAA+B;IACrD,QAAQ,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE;QAClB,KAAK,MAAM;YACT,OAAO,IAAA,qBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChC,KAAK,YAAY;YACf,OAAO,SAAS,IAAA,qBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAClD,KAAK,UAAU;YACb,OAAO,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9C,KAAK,QAAQ;YACX,OAAO,WAAW,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;QACtD,KAAK,QAAQ;YACX,OAAO,QAAQ,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChD,KAAK,MAAM;YACT,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChC,QAAQ;KACT;IAED,OAAO,IAAA,8BAAQ,EAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AApBD,0BAoBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,sEAAqC;AACrC,wFAA4C;AAI5C,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,OAAQ,IAAI,CAAC,QAA8B,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpE,CAAC;AAFD,4CAEC;AAED,SAAgB,OAAO,CAAC,IAA+B;IACrD,QAAQ,IAAI,EAAE,IAAI,EAAE;QAClB,KAAK,MAAM;YACT,OAAO,IAAA,qBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChC,KAAK,YAAY;YACf,OAAO,SAAS,IAAA,qBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAClD,KAAK,UAAU;YACb,OAAO,OAAO,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9C,KAAK,QAAQ;YACX,OAAO,WAAW,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC;QACtD,KAAK,QAAQ;YACX,OAAO,QAAQ,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC;QAChD,KAAK,MAAM;YACT,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAChC;YACE,OAAO,IAAA,8BAAQ,EAAC,IAAI,CAAC,CAAC;KACzB;AACH,CAAC;AAnBD,0BAmBC"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@docusaurus/mdx-loader",
3
- "version": "2.0.0-beta.16",
3
+ "version": "2.0.0-beta.19",
4
4
  "description": "Docusaurus Loader for MDX",
5
5
  "main": "lib/index.js",
6
- "types": "src/mdx-loader.d.ts",
6
+ "types": "lib/index.d.ts",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -18,32 +18,32 @@
18
18
  },
19
19
  "license": "MIT",
20
20
  "dependencies": {
21
- "@babel/parser": "^7.17.3",
22
- "@babel/traverse": "^7.17.3",
23
- "@docusaurus/logger": "2.0.0-beta.16",
24
- "@docusaurus/utils": "2.0.0-beta.16",
21
+ "@babel/parser": "^7.17.10",
22
+ "@babel/traverse": "^7.17.10",
23
+ "@docusaurus/logger": "2.0.0-beta.19",
24
+ "@docusaurus/utils": "2.0.0-beta.19",
25
25
  "@mdx-js/mdx": "^1.6.22",
26
26
  "escape-html": "^1.0.3",
27
27
  "file-loader": "^6.2.0",
28
- "fs-extra": "^10.0.1",
28
+ "fs-extra": "^10.1.0",
29
29
  "image-size": "^1.0.1",
30
30
  "mdast-util-to-string": "^2.0.0",
31
- "remark-emoji": "^2.1.0",
31
+ "remark-emoji": "^2.2.0",
32
32
  "stringify-object": "^3.3.0",
33
- "tslib": "^2.3.1",
34
- "unist-util-visit": "^2.0.2",
33
+ "tslib": "^2.4.0",
34
+ "unist-util-visit": "^2.0.3",
35
35
  "url-loader": "^4.1.1",
36
- "webpack": "^5.69.1"
36
+ "webpack": "^5.72.0"
37
37
  },
38
38
  "devDependencies": {
39
- "@docusaurus/types": "2.0.0-beta.16",
40
- "@types/escape-html": "^1.0.1",
41
- "@types/mdast": "^3.0.7",
39
+ "@docusaurus/types": "2.0.0-beta.19",
40
+ "@types/escape-html": "^1.0.2",
41
+ "@types/mdast": "^3.0.10",
42
42
  "@types/stringify-object": "^3.3.1",
43
43
  "@types/unist": "^2.0.6",
44
- "remark": "^12.0.0",
44
+ "remark": "^12.0.1",
45
45
  "remark-mdx": "^1.6.21",
46
- "to-vfile": "^6.0.0",
46
+ "to-vfile": "^6.1.0",
47
47
  "unist-builder": "^2.0.3",
48
48
  "unist-util-remove-position": "^3.0.0"
49
49
  },
@@ -54,5 +54,5 @@
54
54
  "engines": {
55
55
  "node": ">=14"
56
56
  },
57
- "gitHead": "eb43c4d4f95a4fb97dc9bb9dc615413e0dc2e1e7"
57
+ "gitHead": "a71e60a49cce93c1006ef10c41ac03187f057102"
58
58
  }
package/src/deps.d.ts CHANGED
@@ -7,24 +7,25 @@
7
7
 
8
8
  // TODO Types provided by MDX 2.0 https://github.com/mdx-js/mdx/blob/main/packages/mdx/types/index.d.ts
9
9
  declare module '@mdx-js/mdx' {
10
- import type {Processor} from 'unified';
11
- import type {RemarkOrRehypePlugin} from '@docusaurus/mdx-loader';
10
+ import type {Processor, Plugin} from 'unified';
12
11
 
13
- namespace mdx {
14
- interface Options {
15
- filepath?: string;
16
- skipExport?: boolean;
17
- wrapExport?: string;
18
- remarkPlugins?: RemarkOrRehypePlugin[];
19
- rehypePlugins?: RemarkOrRehypePlugin[];
20
- }
12
+ type MDXPlugin =
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ [Plugin<any[]>, any] | Plugin<any[]>;
21
15
 
22
- function sync(content: string, options?: Options): string;
23
- function createMdxAstCompiler(options?: Options): Processor;
24
- function createCompiler(options?: Options): Processor;
25
- }
16
+ type Options = {
17
+ filepath?: string;
18
+ skipExport?: boolean;
19
+ wrapExport?: string;
20
+ remarkPlugins?: MDXPlugin[];
21
+ rehypePlugins?: MDXPlugin[];
22
+ };
23
+
24
+ export function sync(content: string, options?: Options): string;
25
+ export function createMdxAstCompiler(options?: Options): Processor;
26
+ export function createCompiler(options?: Options): Processor;
26
27
  export default function mdx(
27
28
  content: string,
28
- options?: mdx.Options,
29
+ options?: Options,
29
30
  ): Promise<string>;
30
31
  }
package/src/index.ts CHANGED
@@ -5,221 +5,31 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import fs from 'fs-extra';
9
- import mdx from '@mdx-js/mdx';
10
- import logger from '@docusaurus/logger';
11
- import emoji from 'remark-emoji';
12
- import {
13
- parseFrontMatter,
14
- parseMarkdownContentTitle,
15
- escapePath,
16
- getFileLoaderUtils,
17
- } from '@docusaurus/utils';
18
- import stringifyObject from 'stringify-object';
19
- import headings from './remark/headings';
20
- import toc from './remark/toc';
21
- import unwrapMdxCodeBlocks from './remark/unwrapMdxCodeBlocks';
22
- import transformImage from './remark/transformImage';
23
- import transformLinks from './remark/transformLinks';
24
- import type {RemarkAndRehypePluginOptions} from '@docusaurus/mdx-loader';
25
- import type {LoaderContext} from 'webpack';
8
+ import {mdxLoader} from './loader';
26
9
 
27
- const {
28
- loaders: {inlineMarkdownImageFileLoader},
29
- } = getFileLoaderUtils();
10
+ export default mdxLoader;
30
11
 
31
- const DEFAULT_OPTIONS: RemarkAndRehypePluginOptions = {
32
- rehypePlugins: [],
33
- remarkPlugins: [unwrapMdxCodeBlocks, emoji, headings, toc],
34
- beforeDefaultRemarkPlugins: [],
35
- beforeDefaultRehypePlugins: [],
12
+ export type TOCItem = {
13
+ readonly value: string;
14
+ readonly id: string;
15
+ readonly level: number;
36
16
  };
37
17
 
38
- type Options = RemarkAndRehypePluginOptions & {
39
- staticDirs: string[];
40
- siteDir: string;
41
- isMDXPartial?: (filePath: string) => boolean;
42
- isMDXPartialFrontMatterWarningDisabled?: boolean;
43
- removeContentTitle?: boolean;
44
- metadataPath?: string | ((filePath: string) => string);
45
- createAssets?: (metadata: {
46
- frontMatter: Record<string, unknown>;
47
- metadata: Record<string, unknown>;
48
- }) => Record<string, unknown>;
49
- filepath: string;
18
+ export type LoadedMDXContent<FrontMatter, Metadata, Assets = undefined> = {
19
+ /** As verbatim declared in the MDX document. */
20
+ readonly frontMatter: FrontMatter;
21
+ /** As provided by the content plugin. */
22
+ readonly metadata: Metadata;
23
+ /** A list of TOC items (headings). */
24
+ readonly toc: readonly TOCItem[];
25
+ /** First h1 title before any content. */
26
+ readonly contentTitle: string | undefined;
27
+ /**
28
+ * Usually image assets that may be collocated like `./img/thumbnail.png`.
29
+ * The loader would also bundle these assets and the client should use these
30
+ * in priority.
31
+ */
32
+ readonly assets: Assets;
33
+ (): JSX.Element;
50
34
  };
51
-
52
- /**
53
- * When this throws, it generally means that there's no metadata file associated
54
- * with this MDX document. It can happen when using MDX partials (usually
55
- * starting with _). That's why it's important to provide the `isMDXPartial`
56
- * function in config
57
- */
58
- async function readMetadataPath(metadataPath: string) {
59
- try {
60
- return await fs.readFile(metadataPath, 'utf8');
61
- } catch (err) {
62
- logger.error`MDX loader can't read MDX metadata file path=${metadataPath}. Maybe the isMDXPartial option function was not provided?`;
63
- throw err;
64
- }
65
- }
66
-
67
- /**
68
- * Converts assets an object with Webpack require calls code.
69
- * This is useful for mdx files to reference co-located assets using relative
70
- * paths. Those assets should enter the Webpack assets pipeline and be hashed.
71
- * For now, we only handle that for images and paths starting with `./`:
72
- *
73
- * `{image: "./myImage.png"}` => `{image: require("./myImage.png")}`
74
- */
75
- function createAssetsExportCode(assets: Record<string, unknown>) {
76
- if (Object.keys(assets).length === 0) {
77
- return 'undefined';
78
- }
79
-
80
- // TODO implementation can be completed/enhanced
81
- function createAssetValueCode(assetValue: unknown): string | undefined {
82
- if (Array.isArray(assetValue)) {
83
- const arrayItemCodes = assetValue.map(
84
- (item) => createAssetValueCode(item) ?? 'undefined',
85
- );
86
- return `[${arrayItemCodes.join(', ')}]`;
87
- }
88
- // Only process string values starting with ./
89
- // We could enhance this logic and check if file exists on disc?
90
- if (typeof assetValue === 'string' && assetValue.startsWith('./')) {
91
- // TODO do we have other use-cases than image assets?
92
- // Probably not worth adding more support, as we want to move to Webpack 5 new asset system (https://github.com/facebook/docusaurus/pull/4708)
93
- const inlineLoader = inlineMarkdownImageFileLoader;
94
- return `require("${inlineLoader}${escapePath(assetValue)}").default`;
95
- }
96
- return undefined;
97
- }
98
-
99
- const assetEntries = Object.entries(assets);
100
-
101
- const codeLines = assetEntries
102
- .map(([key, value]) => {
103
- const assetRequireCode = createAssetValueCode(value);
104
- return assetRequireCode ? `"${key}": ${assetRequireCode},` : undefined;
105
- })
106
- .filter(Boolean);
107
-
108
- return `{\n${codeLines.join('\n')}\n}`;
109
- }
110
-
111
- export default async function mdxLoader(
112
- this: LoaderContext<Options>,
113
- fileString: string,
114
- ): Promise<void> {
115
- const callback = this.async();
116
- const filePath = this.resourcePath;
117
- const reqOptions = this.getOptions() || {};
118
-
119
- const {frontMatter, content: contentWithTitle} = parseFrontMatter(fileString);
120
-
121
- const {content, contentTitle} = parseMarkdownContentTitle(contentWithTitle, {
122
- removeContentTitle: reqOptions.removeContentTitle,
123
- });
124
-
125
- const hasFrontMatter = Object.keys(frontMatter).length > 0;
126
-
127
- const options: Options = {
128
- ...reqOptions,
129
- remarkPlugins: [
130
- ...(reqOptions.beforeDefaultRemarkPlugins || []),
131
- ...DEFAULT_OPTIONS.remarkPlugins,
132
- [
133
- transformImage,
134
- {
135
- staticDirs: reqOptions.staticDirs,
136
- siteDir: reqOptions.siteDir,
137
- },
138
- ],
139
- [
140
- transformLinks,
141
- {
142
- staticDirs: reqOptions.staticDirs,
143
- siteDir: reqOptions.siteDir,
144
- },
145
- ],
146
- ...(reqOptions.remarkPlugins || []),
147
- ],
148
- rehypePlugins: [
149
- ...(reqOptions.beforeDefaultRehypePlugins || []),
150
- ...DEFAULT_OPTIONS.rehypePlugins,
151
- ...(reqOptions.rehypePlugins || []),
152
- ],
153
- filepath: filePath,
154
- };
155
-
156
- let result: string;
157
- try {
158
- result = await mdx(content, options);
159
- } catch (err) {
160
- return callback(err as Error);
161
- }
162
-
163
- // MDX partials are MDX files starting with _ or in a folder starting with _
164
- // Partial are not expected to have associated metadata files or front matter
165
- const isMDXPartial = options.isMDXPartial && options.isMDXPartial(filePath);
166
- if (isMDXPartial && hasFrontMatter) {
167
- const errorMessage = `Docusaurus MDX partial files should not contain FrontMatter.
168
- Those partial files use the _ prefix as a convention by default, but this is configurable.
169
- File at ${filePath} contains FrontMatter that will be ignored:
170
- ${JSON.stringify(frontMatter, null, 2)}`;
171
-
172
- if (!options.isMDXPartialFrontMatterWarningDisabled) {
173
- const shouldError = process.env.NODE_ENV === 'test' || process.env.CI;
174
- if (shouldError) {
175
- return callback(new Error(errorMessage));
176
- }
177
- logger.warn(errorMessage);
178
- }
179
- }
180
-
181
- function getMetadataPath(): string | undefined {
182
- if (!isMDXPartial) {
183
- // Read metadata for this MDX and export it.
184
- if (options.metadataPath && typeof options.metadataPath === 'function') {
185
- return options.metadataPath(filePath);
186
- }
187
- }
188
- return undefined;
189
- }
190
-
191
- const metadataPath = getMetadataPath();
192
- if (metadataPath) {
193
- this.addDependency(metadataPath);
194
- }
195
-
196
- const metadataJsonString = metadataPath
197
- ? await readMetadataPath(metadataPath)
198
- : undefined;
199
-
200
- const metadata = metadataJsonString
201
- ? JSON.parse(metadataJsonString)
202
- : undefined;
203
-
204
- const assets =
205
- reqOptions.createAssets && metadata
206
- ? reqOptions.createAssets({frontMatter, metadata})
207
- : undefined;
208
-
209
- const exportsCode = `
210
- export const frontMatter = ${stringifyObject(frontMatter)};
211
- export const contentTitle = ${stringifyObject(contentTitle)};
212
- ${metadataJsonString ? `export const metadata = ${metadataJsonString};` : ''}
213
- ${assets ? `export const assets = ${createAssetsExportCode(assets)};` : ''}
214
- `;
215
-
216
- const code = `
217
- import React from 'react';
218
- import { mdx } from '@mdx-js/react';
219
-
220
- ${exportsCode}
221
- ${result}
222
- `;
223
-
224
- return callback(null, code);
225
- }
35
+ export type {Options, MDXPlugin, MDXOptions} from './loader';