@docusaurus/mdx-loader 0.0.0-5101 → 0.0.0-5112
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.
- package/lib/remark/admonitions/index.d.ts.map +1 -1
- package/lib/remark/admonitions/index.js.map +1 -1
- package/lib/remark/transformImage/index.d.ts.map +1 -1
- package/lib/remark/transformImage/index.js +14 -9
- package/lib/remark/transformImage/index.js.map +1 -1
- package/lib/remark/transformLinks/index.d.ts.map +1 -1
- package/lib/remark/transformLinks/index.js +15 -11
- package/lib/remark/transformLinks/index.js.map +1 -1
- package/package.json +5 -5
- package/src/remark/admonitions/index.ts +6 -2
- package/src/remark/transformImage/index.ts +17 -11
- package/src/remark/transformLinks/index.ts +26 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/admonitions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAyB,MAAM,EAAC,MAAM,SAAS,CAAC;AAK5D,oBAAY,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,iBAatC,CAAC;AAgBF,QAAA,MAAM,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/admonitions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAyB,MAAM,EAAC,MAAM,SAAS,CAAC;AAK5D,oBAAY,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,iBAatC,CAAC;AAgBF,QAAA,MAAM,MAAM,EAAE,MAwIb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/admonitions/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,gFAAqC;AAIrC,MAAM,OAAO,GAAG,IAAI,CAAC;AAOR,QAAA,wBAAwB,GAAsB;IACzD,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE;QACR,WAAW;QACX,MAAM;QACN,SAAS;QACT,QAAQ;QACR,MAAM;QACN,KAAK;QACL,SAAS;QACT,WAAW;QACX,SAAS;KACV;CACF,CAAC;AAEF,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAmC;IAEnC,OAAO,EAAC,GAAG,gCAAwB,EAAE,GAAG,OAAO,EAAC,CAAC;AACnD,CAAC;AAED,yCAAyC;AACzC,2EAA2E;AAC3E,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAE5C,MAAM,MAAM,GAAW,SAAS,MAAM,CAEpC,eAA2C,EAAE;IAE7C,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,QAAQ,gBAAgB,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAEpE,2EAA2E;IAC3E,iCAAiC;IACjC,SAAS,cAAc,CAAY,GAAQ,EAAE,KAAa,EAAE,MAAe;QACzE,gEAAgE;QAChE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QACD,6BAA6B;QAC7B,IAAI,MAAM,EAAE;YACV,OAAO,IAAI,CAAC;SACb;QAED,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/admonitions/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/transformImage/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/transformImage/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAQzC,oBAAY,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA8HF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,CAalE"}
|
|
@@ -17,8 +17,7 @@ const unist_util_visit_1 = tslib_1.__importDefault(require("unist-util-visit"));
|
|
|
17
17
|
const escape_html_1 = tslib_1.__importDefault(require("escape-html"));
|
|
18
18
|
const image_size_1 = tslib_1.__importDefault(require("image-size"));
|
|
19
19
|
const { loaders: { inlineMarkdownImageFileLoader }, } = (0, utils_1.getFileLoaderUtils)();
|
|
20
|
-
async function toImageRequireNode(node, imagePath, filePath) {
|
|
21
|
-
const jsxNode = node;
|
|
20
|
+
async function toImageRequireNode([node, index, parent], imagePath, filePath) {
|
|
22
21
|
let relativeImagePath = (0, utils_1.posixPath)(path_1.default.relative(path_1.default.dirname(filePath), imagePath));
|
|
23
22
|
relativeImagePath = `./${relativeImagePath}`;
|
|
24
23
|
const parsedUrl = url_1.default.parse(node.url);
|
|
@@ -46,9 +45,11 @@ async function toImageRequireNode(node, imagePath, filePath) {
|
|
|
46
45
|
${err.message}`;
|
|
47
46
|
}
|
|
48
47
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
const jsxNode = {
|
|
49
|
+
type: 'jsx',
|
|
50
|
+
value: `<img ${alt}src={${src}}${title}${width}${height} />`,
|
|
51
|
+
};
|
|
52
|
+
parent.children.splice(index, 1, jsxNode);
|
|
52
53
|
}
|
|
53
54
|
async function ensureImageFileExist(imagePath, sourceFilePath) {
|
|
54
55
|
const imageExists = await fs_extra_1.default.pathExists(imagePath);
|
|
@@ -78,7 +79,8 @@ async function getImageAbsolutePath(imagePath, { siteDir, filePath, staticDirs }
|
|
|
78
79
|
await ensureImageFileExist(imageFilePath, filePath);
|
|
79
80
|
return imageFilePath;
|
|
80
81
|
}
|
|
81
|
-
async function processImageNode(
|
|
82
|
+
async function processImageNode(target, context) {
|
|
83
|
+
const [node] = target;
|
|
82
84
|
if (!node.url) {
|
|
83
85
|
throw new Error(`Markdown image URL is mandatory in "${(0, utils_1.toMessageRelativeFilePath)(context.filePath)}" file`);
|
|
84
86
|
}
|
|
@@ -94,13 +96,16 @@ async function processImageNode(node, context) {
|
|
|
94
96
|
// We try to convert image urls without protocol to images with require calls
|
|
95
97
|
// going through webpack ensures that image assets exist at build time
|
|
96
98
|
const imagePath = await getImageAbsolutePath(parsedUrl.pathname, context);
|
|
97
|
-
await toImageRequireNode(
|
|
99
|
+
await toImageRequireNode(target, imagePath, context.filePath);
|
|
98
100
|
}
|
|
99
101
|
function plugin(options) {
|
|
100
102
|
return async (root, vfile) => {
|
|
101
103
|
const promises = [];
|
|
102
|
-
(0, unist_util_visit_1.default)(root, 'image', (node) => {
|
|
103
|
-
promises.push(processImageNode(node,
|
|
104
|
+
(0, unist_util_visit_1.default)(root, 'image', (node, index, parent) => {
|
|
105
|
+
promises.push(processImageNode([node, index, parent], {
|
|
106
|
+
...options,
|
|
107
|
+
filePath: vfile.path,
|
|
108
|
+
}));
|
|
104
109
|
});
|
|
105
110
|
await Promise.all(promises);
|
|
106
111
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/transformImage/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,wDAAwB;AACxB,sDAAsB;AACtB,gEAA0B;AAC1B,+BAA+B;AAC/B,wEAAwC;AACxC,6CAM2B;AAC3B,gFAAqC;AACrC,sEAAqC;AACrC,oEAAgC;
|
|
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;
|
|
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;AAQzC,oBAAY,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAuHF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,CAalE"}
|
|
@@ -18,11 +18,9 @@ const { loaders: { inlineMarkdownLinkFileLoader }, } = (0, utils_1.getFileLoader
|
|
|
18
18
|
/**
|
|
19
19
|
* Transforms the link node to a JSX `<a>` element with a `require()` call.
|
|
20
20
|
*/
|
|
21
|
-
function toAssetRequireNode(node, assetPath, filePath) {
|
|
22
|
-
const jsxNode = node;
|
|
23
|
-
let relativeAssetPath = (0, utils_1.posixPath)(path_1.default.relative(path_1.default.dirname(filePath), assetPath));
|
|
21
|
+
function toAssetRequireNode([node, index, parent], assetPath, filePath) {
|
|
24
22
|
// require("assets/file.pdf") means requiring from a package called assets
|
|
25
|
-
relativeAssetPath = `./${
|
|
23
|
+
const relativeAssetPath = `./${(0, utils_1.posixPath)(path_1.default.relative(path_1.default.dirname(filePath), assetPath))}`;
|
|
26
24
|
const parsedUrl = url_1.default.parse(node.url);
|
|
27
25
|
const hash = parsedUrl.hash ?? '';
|
|
28
26
|
const search = parsedUrl.search ?? '';
|
|
@@ -33,9 +31,11 @@ function toAssetRequireNode(node, assetPath, filePath) {
|
|
|
33
31
|
: ''}${inlineMarkdownLinkFileLoader}${(0, utils_1.escapePath)(relativeAssetPath) + search}').default${hash ? ` + '${hash}'` : ''}`;
|
|
34
32
|
const children = (0, utils_2.stringifyContent)(node);
|
|
35
33
|
const title = node.title ? ` title="${(0, escape_html_1.default)(node.title)}"` : '';
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
const jsxNode = {
|
|
35
|
+
type: 'jsx',
|
|
36
|
+
value: `<a target="_blank" href={${href}}${title}>${children}</a>`,
|
|
37
|
+
};
|
|
38
|
+
parent.children.splice(index, 1, jsxNode);
|
|
39
39
|
}
|
|
40
40
|
async function ensureAssetFileExist(assetPath, sourceFilePath) {
|
|
41
41
|
const assetExists = await fs_extra_1.default.pathExists(assetPath);
|
|
@@ -65,7 +65,8 @@ async function getAssetAbsolutePath(assetPath, { siteDir, filePath, staticDirs }
|
|
|
65
65
|
}
|
|
66
66
|
return null;
|
|
67
67
|
}
|
|
68
|
-
async function processLinkNode(
|
|
68
|
+
async function processLinkNode(target, context) {
|
|
69
|
+
const [node] = target;
|
|
69
70
|
if (!node.url) {
|
|
70
71
|
// Try to improve error feedback
|
|
71
72
|
// see https://github.com/facebook/docusaurus/issues/3309#issuecomment-690371675
|
|
@@ -86,14 +87,17 @@ async function processLinkNode(node, context) {
|
|
|
86
87
|
}
|
|
87
88
|
const assetPath = await getAssetAbsolutePath(decodeURIComponent(parsedUrl.pathname), context);
|
|
88
89
|
if (assetPath) {
|
|
89
|
-
toAssetRequireNode(
|
|
90
|
+
toAssetRequireNode(target, assetPath, context.filePath);
|
|
90
91
|
}
|
|
91
92
|
}
|
|
92
93
|
function plugin(options) {
|
|
93
94
|
return async (root, vfile) => {
|
|
94
95
|
const promises = [];
|
|
95
|
-
(0, unist_util_visit_1.default)(root, 'link', (node) => {
|
|
96
|
-
promises.push(processLinkNode(node,
|
|
96
|
+
(0, unist_util_visit_1.default)(root, 'link', (node, index, parent) => {
|
|
97
|
+
promises.push(processLinkNode([node, index, parent], {
|
|
98
|
+
...options,
|
|
99
|
+
filePath: vfile.path,
|
|
100
|
+
}));
|
|
97
101
|
});
|
|
98
102
|
await Promise.all(promises);
|
|
99
103
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/transformLinks/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,wDAAwB;AACxB,sDAAsB;AACtB,gEAA0B;AAC1B,6CAM2B;AAC3B,gFAAqC;AACrC,sEAAqC;AACrC,oCAA0C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/transformLinks/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-5112",
|
|
4
4
|
"description": "Docusaurus Loader for MDX",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@babel/parser": "^7.18.4",
|
|
22
22
|
"@babel/traverse": "^7.18.2",
|
|
23
|
-
"@docusaurus/logger": "0.0.0-
|
|
24
|
-
"@docusaurus/utils": "0.0.0-
|
|
23
|
+
"@docusaurus/logger": "0.0.0-5112",
|
|
24
|
+
"@docusaurus/utils": "0.0.0-5112",
|
|
25
25
|
"@mdx-js/mdx": "^1.6.22",
|
|
26
26
|
"escape-html": "^1.0.3",
|
|
27
27
|
"file-loader": "^6.2.0",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"webpack": "^5.73.0"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
|
-
"@docusaurus/types": "0.0.0-
|
|
40
|
+
"@docusaurus/types": "0.0.0-5112",
|
|
41
41
|
"@types/escape-html": "^1.0.2",
|
|
42
42
|
"@types/mdast": "^3.0.10",
|
|
43
43
|
"@types/stringify-object": "^3.3.1",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"engines": {
|
|
58
58
|
"node": ">=16.14"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "0a08a97d1502d101defde8e3160324a291b45c64"
|
|
61
61
|
}
|
|
@@ -70,7 +70,11 @@ const plugin: Plugin = function plugin(
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
const now = eat.now();
|
|
73
|
-
const [opening, keyword, title] = match
|
|
73
|
+
const [opening, keyword, title] = match as string[] as [
|
|
74
|
+
string,
|
|
75
|
+
string,
|
|
76
|
+
string,
|
|
77
|
+
];
|
|
74
78
|
const food = [];
|
|
75
79
|
const content = [];
|
|
76
80
|
|
|
@@ -169,7 +173,7 @@ const plugin: Plugin = function plugin(
|
|
|
169
173
|
visit(
|
|
170
174
|
root,
|
|
171
175
|
(node: unknown): node is Literal =>
|
|
172
|
-
(node as Literal)?.type !== admonitionNodeType,
|
|
176
|
+
(node as Literal | undefined)?.type !== admonitionNodeType,
|
|
173
177
|
(node: Literal) => {
|
|
174
178
|
if (node.value) {
|
|
175
179
|
node.value = node.value.replace(escapeTag, options.tag);
|
|
@@ -21,6 +21,7 @@ import visit from 'unist-util-visit';
|
|
|
21
21
|
import escapeHtml from 'escape-html';
|
|
22
22
|
import sizeOf from 'image-size';
|
|
23
23
|
import type {Transformer} from 'unified';
|
|
24
|
+
import type {Parent} from 'unist';
|
|
24
25
|
import type {Image, Literal} from 'mdast';
|
|
25
26
|
|
|
26
27
|
const {
|
|
@@ -36,12 +37,13 @@ type Context = PluginOptions & {
|
|
|
36
37
|
filePath: string;
|
|
37
38
|
};
|
|
38
39
|
|
|
40
|
+
type Target = [node: Image, index: number, parent: Parent];
|
|
41
|
+
|
|
39
42
|
async function toImageRequireNode(
|
|
40
|
-
node:
|
|
43
|
+
[node, index, parent]: Target,
|
|
41
44
|
imagePath: string,
|
|
42
45
|
filePath: string,
|
|
43
46
|
) {
|
|
44
|
-
const jsxNode = node as Literal & Partial<Image>;
|
|
45
47
|
let relativeImagePath = posixPath(
|
|
46
48
|
path.relative(path.dirname(filePath), imagePath),
|
|
47
49
|
);
|
|
@@ -75,12 +77,12 @@ ${(err as Error).message}`;
|
|
|
75
77
|
}
|
|
76
78
|
}
|
|
77
79
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
80
|
+
const jsxNode: Literal = {
|
|
81
|
+
type: 'jsx',
|
|
82
|
+
value: `<img ${alt}src={${src}}${title}${width}${height} />`,
|
|
83
|
+
};
|
|
81
84
|
|
|
82
|
-
(
|
|
83
|
-
jsxNode.value = `<img ${alt}src={${src}}${title}${width}${height} />`;
|
|
85
|
+
parent.children.splice(index, 1, jsxNode);
|
|
84
86
|
}
|
|
85
87
|
|
|
86
88
|
async function ensureImageFileExist(imagePath: string, sourceFilePath: string) {
|
|
@@ -129,7 +131,8 @@ async function getImageAbsolutePath(
|
|
|
129
131
|
return imageFilePath;
|
|
130
132
|
}
|
|
131
133
|
|
|
132
|
-
async function processImageNode(
|
|
134
|
+
async function processImageNode(target: Target, context: Context) {
|
|
135
|
+
const [node] = target;
|
|
133
136
|
if (!node.url) {
|
|
134
137
|
throw new Error(
|
|
135
138
|
`Markdown image URL is mandatory in "${toMessageRelativeFilePath(
|
|
@@ -151,15 +154,18 @@ async function processImageNode(node: Image, context: Context) {
|
|
|
151
154
|
// We try to convert image urls without protocol to images with require calls
|
|
152
155
|
// going through webpack ensures that image assets exist at build time
|
|
153
156
|
const imagePath = await getImageAbsolutePath(parsedUrl.pathname, context);
|
|
154
|
-
await toImageRequireNode(
|
|
157
|
+
await toImageRequireNode(target, imagePath, context.filePath);
|
|
155
158
|
}
|
|
156
159
|
|
|
157
160
|
export default function plugin(options: PluginOptions): Transformer {
|
|
158
161
|
return async (root, vfile) => {
|
|
159
162
|
const promises: Promise<void>[] = [];
|
|
160
|
-
visit(root, 'image', (node: Image) => {
|
|
163
|
+
visit(root, 'image', (node: Image, index, parent) => {
|
|
161
164
|
promises.push(
|
|
162
|
-
processImageNode(node,
|
|
165
|
+
processImageNode([node, index, parent!], {
|
|
166
|
+
...options,
|
|
167
|
+
filePath: vfile.path!,
|
|
168
|
+
}),
|
|
163
169
|
);
|
|
164
170
|
});
|
|
165
171
|
await Promise.all(promises);
|
|
@@ -19,6 +19,7 @@ import visit from 'unist-util-visit';
|
|
|
19
19
|
import escapeHtml from 'escape-html';
|
|
20
20
|
import {stringifyContent} from '../utils';
|
|
21
21
|
import type {Transformer} from 'unified';
|
|
22
|
+
import type {Parent} from 'unist';
|
|
22
23
|
import type {Link, Literal} from 'mdast';
|
|
23
24
|
|
|
24
25
|
const {
|
|
@@ -34,16 +35,20 @@ type Context = PluginOptions & {
|
|
|
34
35
|
filePath: string;
|
|
35
36
|
};
|
|
36
37
|
|
|
38
|
+
type Target = [node: Link, index: number, parent: Parent];
|
|
39
|
+
|
|
37
40
|
/**
|
|
38
41
|
* Transforms the link node to a JSX `<a>` element with a `require()` call.
|
|
39
42
|
*/
|
|
40
|
-
function toAssetRequireNode(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
function toAssetRequireNode(
|
|
44
|
+
[node, index, parent]: Target,
|
|
45
|
+
assetPath: string,
|
|
46
|
+
filePath: string,
|
|
47
|
+
) {
|
|
45
48
|
// require("assets/file.pdf") means requiring from a package called assets
|
|
46
|
-
relativeAssetPath = `./${
|
|
49
|
+
const relativeAssetPath = `./${posixPath(
|
|
50
|
+
path.relative(path.dirname(filePath), assetPath),
|
|
51
|
+
)}`;
|
|
47
52
|
|
|
48
53
|
const parsedUrl = url.parse(node.url);
|
|
49
54
|
const hash = parsedUrl.hash ?? '';
|
|
@@ -60,12 +65,12 @@ function toAssetRequireNode(node: Link, assetPath: string, filePath: string) {
|
|
|
60
65
|
const children = stringifyContent(node);
|
|
61
66
|
const title = node.title ? ` title="${escapeHtml(node.title)}"` : '';
|
|
62
67
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
68
|
+
const jsxNode: Literal = {
|
|
69
|
+
type: 'jsx',
|
|
70
|
+
value: `<a target="_blank" href={${href}}${title}>${children}</a>`,
|
|
71
|
+
};
|
|
66
72
|
|
|
67
|
-
(
|
|
68
|
-
jsxNode.value = `<a target="_blank" href={${href}}${title}>${children}</a>`;
|
|
73
|
+
parent.children.splice(index, 1, jsxNode);
|
|
69
74
|
}
|
|
70
75
|
|
|
71
76
|
async function ensureAssetFileExist(assetPath: string, sourceFilePath: string) {
|
|
@@ -106,7 +111,8 @@ async function getAssetAbsolutePath(
|
|
|
106
111
|
return null;
|
|
107
112
|
}
|
|
108
113
|
|
|
109
|
-
async function processLinkNode(
|
|
114
|
+
async function processLinkNode(target: Target, context: Context) {
|
|
115
|
+
const [node] = target;
|
|
110
116
|
if (!node.url) {
|
|
111
117
|
// Try to improve error feedback
|
|
112
118
|
// see https://github.com/facebook/docusaurus/issues/3309#issuecomment-690371675
|
|
@@ -138,15 +144,20 @@ async function processLinkNode(node: Link, context: Context) {
|
|
|
138
144
|
context,
|
|
139
145
|
);
|
|
140
146
|
if (assetPath) {
|
|
141
|
-
toAssetRequireNode(
|
|
147
|
+
toAssetRequireNode(target, assetPath, context.filePath);
|
|
142
148
|
}
|
|
143
149
|
}
|
|
144
150
|
|
|
145
151
|
export default function plugin(options: PluginOptions): Transformer {
|
|
146
152
|
return async (root, vfile) => {
|
|
147
153
|
const promises: Promise<void>[] = [];
|
|
148
|
-
visit(root, 'link', (node: Link) => {
|
|
149
|
-
promises.push(
|
|
154
|
+
visit(root, 'link', (node: Link, index, parent) => {
|
|
155
|
+
promises.push(
|
|
156
|
+
processLinkNode([node, index, parent!], {
|
|
157
|
+
...options,
|
|
158
|
+
filePath: vfile.path!,
|
|
159
|
+
}),
|
|
160
|
+
);
|
|
150
161
|
});
|
|
151
162
|
await Promise.all(promises);
|
|
152
163
|
};
|