@docusaurus/mdx-loader 0.0.0-5656 → 0.0.0-5658

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAC,eAAe,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAEpD,OAAO,KAAK,EAAC,8BAA8B,EAAC,MAAM,gBAAgB,CAAC;AAEnE,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GACnC,MAAM,CAIR;AAED,wBAAgB,OAAO,CACrB,IAAI,EAAE,eAAe,GAAG,OAAO,EAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GACnC,MAAM,CAuBR;AAED,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,8BAA8B,CAkDhC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,OAAO,CAAC;AAClC,OAAO,KAAK,EAAC,eAAe,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAEV,8BAA8B,EAG/B,MAAM,gBAAgB,CAAC;AAExB,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GACnC,MAAM,CAIR;AA8BD,wBAAgB,OAAO,CACrB,IAAI,EAAE,eAAe,GAAG,OAAO,EAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GACnC,MAAM,CAsBR;AAED,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,EACrB,IAAI,EAAE,MAAM,GACX,8BAA8B,CAkDhC"}
@@ -15,11 +15,25 @@ function stringifyContent(node, toString) {
15
15
  .join('');
16
16
  }
17
17
  exports.stringifyContent = stringifyContent;
18
+ // TODO This is really a workaround, and not super reliable
19
+ // For now we only support serializing tagName, className and content
20
+ // Can we implement the TOC with real JSX nodes instead of html strings later?
21
+ function mdxJsxTextElementToHtml(element, toString) {
22
+ const tag = element.name;
23
+ const attributes = element.attributes.filter((child) => child.type === 'mdxJsxAttribute');
24
+ const classAttribute = attributes.find((attr) => attr.name === 'className') ??
25
+ attributes.find((attr) => attr.name === 'class');
26
+ const classAttributeString = classAttribute
27
+ ? `class="${(0, escape_html_1.default)(String(classAttribute.value))}"`
28
+ : ``;
29
+ const allAttributes = classAttributeString ? ` ${classAttributeString}` : '';
30
+ const content = stringifyContent(element, toString);
31
+ return `<${tag}${allAttributes}>${content}</${tag}>`;
32
+ }
18
33
  function toValue(node, toString) {
19
34
  switch (node.type) {
20
35
  case 'mdxJsxTextElement': {
21
- const tag = node.name;
22
- return `<${tag}>${stringifyContent(node, toString)}</${tag}>`;
36
+ return mdxJsxTextElementToHtml(node, toString);
23
37
  }
24
38
  case 'text':
25
39
  return (0, escape_html_1.default)(node.value);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/utils/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,sEAAqC;AAMrC,SAAgB,gBAAgB,CAC9B,IAAY,EACZ,QAAoC;IAEpC,OAAQ,IAAI,CAAC,QAA8B;SACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACtC,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAPD,4CAOC;AAED,SAAgB,OAAO,CACrB,IAA+B,EAC/B,QAAoC;IAEpC,QAAQ,IAAI,CAAC,IAAI,EAAE;QACjB,KAAK,mBAAmB,CAAC,CAAC;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;YACtB,OAAO,IAAI,GAAG,IAAI,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC;SAC/D;QACD,KAAK,MAAM;YACT,OAAO,IAAA,qBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,KAAK,SAAS;YACZ,OAAO,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C,KAAK,YAAY;YACf,OAAO,SAAS,IAAA,qBAAU,EAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAClD,KAAK,UAAU;YACb,OAAO,OAAO,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC;QACxD,KAAK,QAAQ;YACX,OAAO,WAAW,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAC;QAChE,KAAK,QAAQ;YACX,OAAO,QAAQ,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC;QAC1D,KAAK,MAAM;YACT,OAAO,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC1C;YACE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;KACzB;AACH,CAAC;AA1BD,0BA0BC;AAED,SAAgB,0BAA0B,CACxC,aAAqB,EACrB,IAAY;IAEZ,OAAO;QACL,IAAI,EAAE,gCAAgC;QACtC,KAAK,EAAE,YAAY,aAAa,aAAa,IAAI,IAAI,OAAO,IAAI,GAAG,EAAE;QACrE,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE;oBACJ;wBACE,IAAI,EAAE,qBAAqB;wBAC3B,UAAU,EAAE;4BACV,IAAI,EAAE,kBAAkB;4BACxB,IAAI,EAAE;gCACJ,IAAI,EAAE,kBAAkB;gCACxB,MAAM,EAAE;oCACN,IAAI,EAAE,gBAAgB;oCACtB,MAAM,EAAE;wCACN,IAAI,EAAE,YAAY;wCAClB,IAAI,EAAE,SAAS;qCAChB;oCACD,SAAS,EAAE;wCACT;4CACE,IAAI,EAAE,SAAS;4CACf,KAAK,EAAE,aAAa;4CACpB,GAAG,EAAE,IAAI,aAAa,GAAG;yCAC1B;qCACF;oCACD,QAAQ,EAAE,KAAK;iCAChB;gCACD,QAAQ,EAAE;oCACR,IAAI,EAAE,YAAY;oCAClB,IAAI,EAAE,SAAS;iCAChB;gCACD,QAAQ,EAAE,KAAK;gCACf,QAAQ,EAAE,KAAK;6BAChB;4BACD,QAAQ,EAAE,GAAG;4BACb,KAAK,EAAE;gCACL,IAAI,EAAE,SAAS;gCACf,KAAK,EAAE,IAAI;gCACX,GAAG,EAAE,IAAI,IAAI,GAAG;6BACjB;yBACF;qBACF;iBACF;gBACD,UAAU,EAAE,QAAQ;gBACpB,QAAQ,EAAE,EAAE;aACb;SACF;KACF,CAAC;AACJ,CAAC;AArDD,gEAqDC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/utils/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docusaurus/mdx-loader",
3
- "version": "0.0.0-5656",
3
+ "version": "0.0.0-5658",
4
4
  "description": "Docusaurus Loader for MDX",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -20,9 +20,9 @@
20
20
  "dependencies": {
21
21
  "@babel/parser": "^7.22.7",
22
22
  "@babel/traverse": "^7.22.8",
23
- "@docusaurus/logger": "0.0.0-5656",
24
- "@docusaurus/utils": "0.0.0-5656",
25
- "@docusaurus/utils-validation": "0.0.0-5656",
23
+ "@docusaurus/logger": "0.0.0-5658",
24
+ "@docusaurus/utils": "0.0.0-5658",
25
+ "@docusaurus/utils-validation": "0.0.0-5658",
26
26
  "@mdx-js/mdx": "^2.1.5",
27
27
  "@slorber/remark-comment": "^1.0.0",
28
28
  "escape-html": "^1.0.3",
@@ -45,7 +45,7 @@
45
45
  "webpack": "^5.88.1"
46
46
  },
47
47
  "devDependencies": {
48
- "@docusaurus/types": "0.0.0-5656",
48
+ "@docusaurus/types": "0.0.0-5658",
49
49
  "@types/escape-html": "^1.0.2",
50
50
  "@types/mdast": "^3.0.12",
51
51
  "@types/stringify-object": "^3.3.1",
@@ -65,5 +65,5 @@
65
65
  "engines": {
66
66
  "node": ">=16.14"
67
67
  },
68
- "gitHead": "e466521f445a37cd89f68c283d1afd5f5b5c835c"
68
+ "gitHead": "e9c50875dae0de9fd8f5a1449d8093c96292544e"
69
69
  }
@@ -8,26 +8,57 @@
8
8
  import escapeHtml from 'escape-html';
9
9
  import type {Parent} from 'unist';
10
10
  import type {PhrasingContent, Heading} from 'mdast';
11
- // @ts-expect-error: TODO see https://github.com/microsoft/TypeScript/issues/49721
12
- import type {MdxJsxAttributeValueExpression} from 'mdast-util-mdx';
11
+ import type {
12
+ MdxJsxAttribute,
13
+ MdxJsxAttributeValueExpression,
14
+ MdxJsxTextElement,
15
+ // @ts-expect-error: TODO see https://github.com/microsoft/TypeScript/issues/49721
16
+ } from 'mdast-util-mdx';
13
17
 
14
18
  export function stringifyContent(
15
19
  node: Parent,
16
- toString: (param: unknown) => string, // TODO weird but works): string {
20
+ toString: (param: unknown) => string, // TODO weird but works
17
21
  ): string {
18
22
  return (node.children as PhrasingContent[])
19
23
  .map((item) => toValue(item, toString))
20
24
  .join('');
21
25
  }
22
26
 
27
+ // TODO This is really a workaround, and not super reliable
28
+ // For now we only support serializing tagName, className and content
29
+ // Can we implement the TOC with real JSX nodes instead of html strings later?
30
+ function mdxJsxTextElementToHtml(
31
+ element: MdxJsxTextElement,
32
+ toString: (param: unknown) => string, // TODO weird but works
33
+ ): string {
34
+ const tag = element.name;
35
+
36
+ const attributes = element.attributes.filter(
37
+ (child): child is MdxJsxAttribute => child.type === 'mdxJsxAttribute',
38
+ );
39
+
40
+ const classAttribute =
41
+ attributes.find((attr) => attr.name === 'className') ??
42
+ attributes.find((attr) => attr.name === 'class');
43
+
44
+ const classAttributeString = classAttribute
45
+ ? `class="${escapeHtml(String(classAttribute.value))}"`
46
+ : ``;
47
+
48
+ const allAttributes = classAttributeString ? ` ${classAttributeString}` : '';
49
+
50
+ const content = stringifyContent(element, toString);
51
+
52
+ return `<${tag}${allAttributes}>${content}</${tag}>`;
53
+ }
54
+
23
55
  export function toValue(
24
56
  node: PhrasingContent | Heading,
25
57
  toString: (param: unknown) => string, // TODO weird but works
26
58
  ): string {
27
59
  switch (node.type) {
28
60
  case 'mdxJsxTextElement': {
29
- const tag = node.name;
30
- return `<${tag}>${stringifyContent(node, toString)}</${tag}>`;
61
+ return mdxJsxTextElementToHtml(node as MdxJsxTextElement, toString);
31
62
  }
32
63
  case 'text':
33
64
  return escapeHtml(node.value);