@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;
|
|
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
|
-
|
|
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;
|
|
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-
|
|
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-
|
|
24
|
-
"@docusaurus/utils": "0.0.0-
|
|
25
|
-
"@docusaurus/utils-validation": "0.0.0-
|
|
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-
|
|
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": "
|
|
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
|
-
|
|
12
|
-
|
|
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
|
|
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
|
-
|
|
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);
|