@docusaurus/mdx-loader 0.0.0-6044 → 0.0.0-6048
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/loader.d.ts.map +1 -1
- package/lib/loader.js +8 -3
- package/lib/loader.js.map +1 -1
- package/lib/remark/transformImage/index.d.ts.map +1 -1
- package/lib/remark/transformImage/index.js +11 -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 +11 -9
- package/lib/remark/transformLinks/index.js.map +1 -1
- package/package.json +6 -6
- package/src/loader.ts +18 -6
- package/src/remark/transformImage/index.ts +17 -15
- package/src/remark/transformLinks/index.ts +19 -15
package/lib/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAK3C,KAAK,SAAS,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAK3C,KAAK,SAAS,GAAG,GAAG,CAAC;AAErB,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC;AAElC,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG;IAC1C,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7C,sCAAsC,CAAC,EAAE,OAAO,CAAC;IACjD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;IACvD,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE;QACxB,WAAW,EAAE;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAC,CAAC;QACtC,QAAQ,EAAE;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAC,CAAC;KACpC,KAAK;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;IAC/B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C,CAAC;AA4FF,wBAAsB,SAAS,CAC7B,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAC5B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAsIf"}
|
package/lib/loader.js
CHANGED
|
@@ -15,7 +15,6 @@ const stringify_object_1 = tslib_1.__importDefault(require("stringify-object"));
|
|
|
15
15
|
const preprocessor_1 = tslib_1.__importDefault(require("./preprocessor"));
|
|
16
16
|
const frontMatter_1 = require("./frontMatter");
|
|
17
17
|
const processor_1 = require("./processor");
|
|
18
|
-
const { loaders: { inlineMarkdownAssetImageFileLoader }, } = (0, utils_1.getFileLoaderUtils)();
|
|
19
18
|
/**
|
|
20
19
|
* When this throws, it generally means that there's no metadata file associated
|
|
21
20
|
* with this MDX document. It can happen when using MDX partials (usually
|
|
@@ -39,7 +38,7 @@ async function readMetadataPath(metadataPath) {
|
|
|
39
38
|
*
|
|
40
39
|
* `{image: "./myImage.png"}` => `{image: require("./myImage.png")}`
|
|
41
40
|
*/
|
|
42
|
-
function createAssetsExportCode(assets) {
|
|
41
|
+
function createAssetsExportCode({ assets, inlineMarkdownAssetImageFileLoader, }) {
|
|
43
42
|
if (typeof assets !== 'object' ||
|
|
44
43
|
!assets ||
|
|
45
44
|
Object.keys(assets).length === 0) {
|
|
@@ -168,13 +167,19 @@ ${JSON.stringify(frontMatter, null, 2)}`;
|
|
|
168
167
|
const assets = options.createAssets && metadata
|
|
169
168
|
? options.createAssets({ frontMatter, metadata })
|
|
170
169
|
: undefined;
|
|
170
|
+
const fileLoaderUtils = (0, utils_1.getFileLoaderUtils)(compilerName === 'server');
|
|
171
171
|
// TODO use remark plugins to insert extra exports instead of string concat?
|
|
172
172
|
// cf how the toc is exported
|
|
173
173
|
const exportsCode = `
|
|
174
174
|
export const frontMatter = ${(0, stringify_object_1.default)(frontMatter)};
|
|
175
175
|
export const contentTitle = ${(0, stringify_object_1.default)(contentTitle)};
|
|
176
176
|
${metadataJsonString ? `export const metadata = ${metadataJsonString};` : ''}
|
|
177
|
-
${assets
|
|
177
|
+
${assets
|
|
178
|
+
? `export const assets = ${createAssetsExportCode({
|
|
179
|
+
assets,
|
|
180
|
+
inlineMarkdownAssetImageFileLoader: fileLoaderUtils.loaders.inlineMarkdownAssetImageFileLoader,
|
|
181
|
+
})};`
|
|
182
|
+
: ''}
|
|
178
183
|
`;
|
|
179
184
|
const code = `
|
|
180
185
|
${exportsCode}
|
package/lib/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.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;AAkBH,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;AAkBH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAMzC,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA4JF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,CAoBlE"}
|
|
@@ -17,17 +17,16 @@ const escape_html_1 = tslib_1.__importDefault(require("escape-html"));
|
|
|
17
17
|
const image_size_1 = tslib_1.__importDefault(require("image-size"));
|
|
18
18
|
const logger_1 = tslib_1.__importDefault(require("@docusaurus/logger"));
|
|
19
19
|
const utils_2 = require("../utils");
|
|
20
|
-
|
|
21
|
-
async function toImageRequireNode([node], imagePath, filePath) {
|
|
20
|
+
async function toImageRequireNode([node], imagePath, context) {
|
|
22
21
|
// MdxJsxTextElement => see https://github.com/facebook/docusaurus/pull/8288#discussion_r1125871405
|
|
23
22
|
const jsxNode = node;
|
|
24
23
|
const attributes = [];
|
|
25
|
-
let relativeImagePath = (0, utils_1.posixPath)(path_1.default.relative(path_1.default.dirname(filePath), imagePath));
|
|
24
|
+
let relativeImagePath = (0, utils_1.posixPath)(path_1.default.relative(path_1.default.dirname(context.filePath), imagePath));
|
|
26
25
|
relativeImagePath = `./${relativeImagePath}`;
|
|
27
26
|
const parsedUrl = url_1.default.parse(node.url);
|
|
28
27
|
const hash = parsedUrl.hash ?? '';
|
|
29
28
|
const search = parsedUrl.search ?? '';
|
|
30
|
-
const requireString = `${inlineMarkdownImageFileLoader}${(0, utils_1.escapePath)(relativeImagePath) + search}`;
|
|
29
|
+
const requireString = `${context.inlineMarkdownImageFileLoader}${(0, utils_1.escapePath)(relativeImagePath) + search}`;
|
|
31
30
|
if (node.alt) {
|
|
32
31
|
attributes.push({
|
|
33
32
|
type: 'mdxJsxAttribute',
|
|
@@ -124,17 +123,20 @@ async function processImageNode(target, context) {
|
|
|
124
123
|
// We try to convert image urls without protocol to images with require calls
|
|
125
124
|
// going through webpack ensures that image assets exist at build time
|
|
126
125
|
const imagePath = await getImageAbsolutePath(parsedUrl.pathname, context);
|
|
127
|
-
await toImageRequireNode(target, imagePath, context
|
|
126
|
+
await toImageRequireNode(target, imagePath, context);
|
|
128
127
|
}
|
|
129
128
|
function plugin(options) {
|
|
130
129
|
return async (root, vfile) => {
|
|
131
130
|
const { visit } = await import('unist-util-visit');
|
|
131
|
+
const fileLoaderUtils = (0, utils_1.getFileLoaderUtils)(vfile.data.compilerName === 'server');
|
|
132
|
+
const context = {
|
|
133
|
+
...options,
|
|
134
|
+
filePath: vfile.path,
|
|
135
|
+
inlineMarkdownImageFileLoader: fileLoaderUtils.loaders.inlineMarkdownImageFileLoader,
|
|
136
|
+
};
|
|
132
137
|
const promises = [];
|
|
133
138
|
visit(root, 'image', (node, index, parent) => {
|
|
134
|
-
promises.push(processImageNode([node, index, parent],
|
|
135
|
-
...options,
|
|
136
|
-
filePath: vfile.path,
|
|
137
|
-
}));
|
|
139
|
+
promises.push(processImageNode([node, index, parent], context));
|
|
138
140
|
});
|
|
139
141
|
await Promise.all(promises);
|
|
140
142
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/transformImage/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/transformImage/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAuLH,yBAoBC;;AAzMD,wDAAwB;AACxB,sDAAsB;AACtB,gEAA0B;AAC1B,+BAA+B;AAC/B,6CAM2B;AAC3B,sEAAqC;AACrC,oEAAgC;AAChC,wEAAwC;AACxC,oCAAmE;AAoBnE,KAAK,UAAU,kBAAkB,CAC/B,CAAC,IAAI,CAAS,EACd,SAAiB,EACjB,OAAgB;IAEhB,mGAAmG;IACnG,MAAM,OAAO,GAAG,IAAoC,CAAC;IACrD,MAAM,UAAU,GAAoC,EAAE,CAAC;IAEvD,IAAI,iBAAiB,GAAG,IAAA,iBAAS,EAC/B,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CACzD,CAAC;IACF,iBAAiB,GAAG,KAAK,iBAAiB,EAAE,CAAC;IAE7C,MAAM,SAAS,GAAG,aAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;IACtC,MAAM,aAAa,GAAG,GAAG,OAAO,CAAC,6BAA6B,GAC5D,IAAA,kBAAU,EAAC,iBAAiB,CAAC,GAAG,MAClC,EAAE,CAAC;IACH,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,IAAA,qBAAU,EAAC,IAAI,CAAC,GAAG,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,IAAI,CAAC;QACd,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,IAAA,kCAA0B,EAAC,aAAa,EAAE,IAAI,CAAC;KACvD,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,UAAU,CAAC,IAAI,CAAC;YACd,IAAI,EAAE,iBAAiB;YACvB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,IAAA,qBAAU,EAAC,IAAI,CAAC,KAAK,CAAC;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,IAAA,gBAAS,EAAC,oBAAM,CAAC,CAAC,SAAS,CAAC,CAAE,CAAC;QACnD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;aAC1B,CAAC,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,oFAAoF;QACpF,gDAAgD;QAChD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC1B,gBAAM,CAAC,IAAI,CAAA,qBAAqB,SAAS;EAC5C,GAAa,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,IAAA,qBAAa,EAAC,OAAO,EAAE;QACrB,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE,KAAK;QACX,UAAU;QACV,QAAQ,EAAE,EAAE;KACb,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,SAAiB,EAAE,cAAsB;IAC3E,MAAM,WAAW,GAAG,MAAM,kBAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,SAAS,IAAA,iCAAyB,EAChC,SAAS,CACV,YAAY,IAAA,iCAAyB,EAAC,cAAc,CAAC,aAAa,CACpE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,SAAiB,EACjB,EAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAU;IAExC,IAAI,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1E,MAAM,oBAAoB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACpD,OAAO,aAAa,CAAC;IACvB,CAAC;SAAM,IAAI,cAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,6DAA6D;QAC7D,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QACzE,MAAM,aAAa,GAAG,MAAM,IAAA,2BAAmB,EAC7C,aAAa,EACb,kBAAE,CAAC,UAAU,CACd,CAAC;QACF,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,SAAS,aAAa;iBACnB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,iCAAyB,EAAC,CAAC,CAAC,CAAC;iBACxC,IAAI,CAAC,MAAM,CAAC,YAAY,IAAA,iCAAyB,EAClD,QAAQ,CACT,aAAa,CACf,CAAC;QACJ,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,+DAA+D;IAC/D,MAAM,aAAa,GAAG,cAAI,CAAC,IAAI,CAC7B,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EACtB,kBAAkB,CAAC,SAAS,CAAC,CAC9B,CAAC;IACF,MAAM,oBAAoB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACpD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,OAAgB;IAC9D,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IACtB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,uCAAuC,IAAA,iCAAyB,EAC9D,OAAO,CAAC,QAAQ,CACjB,QAAQ,CACV,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,aAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,SAAS,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC9C,2EAA2E;QAC3E,6DAA6D;QAC7D,IAAI,SAAS,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;YACvC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,OAAO;IACT,CAAC;IAED,6EAA6E;IAC7E,sEAAsE;IACtE,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACvD,CAAC;AAED,SAAwB,MAAM,CAAC,OAAsB;IACnD,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;QAC3B,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAEjD,MAAM,eAAe,GAAG,IAAA,0BAAkB,EACxC,KAAK,CAAC,IAAI,CAAC,YAAY,KAAK,QAAQ,CACrC,CAAC;QACF,MAAM,OAAO,GAAY;YACvB,GAAG,OAAO;YACV,QAAQ,EAAE,KAAK,CAAC,IAAK;YACrB,6BAA6B,EAC3B,eAAe,CAAC,OAAO,CAAC,6BAA6B;SACxD,CAAC;QAEF,MAAM,QAAQ,GAAoB,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,IAAW,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAClD,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,MAAO,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -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;AAMzC,KAAK,aAAa,GAAG;IACnB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA4KF,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,CAoBlE"}
|
|
@@ -14,16 +14,15 @@ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
|
|
|
14
14
|
const utils_1 = require("@docusaurus/utils");
|
|
15
15
|
const escape_html_1 = tslib_1.__importDefault(require("escape-html"));
|
|
16
16
|
const utils_2 = require("../utils");
|
|
17
|
-
const { loaders: { inlineMarkdownLinkFileLoader }, } = (0, utils_1.getFileLoaderUtils)();
|
|
18
17
|
/**
|
|
19
18
|
* Transforms the link node to a JSX `<a>` element with a `require()` call.
|
|
20
19
|
*/
|
|
21
|
-
async function toAssetRequireNode([node], assetPath,
|
|
20
|
+
async function toAssetRequireNode([node], assetPath, context) {
|
|
22
21
|
// MdxJsxTextElement => see https://github.com/facebook/docusaurus/pull/8288#discussion_r1125871405
|
|
23
22
|
const jsxNode = node;
|
|
24
23
|
const attributes = [];
|
|
25
24
|
// require("assets/file.pdf") means requiring from a package called assets
|
|
26
|
-
const relativeAssetPath = `./${(0, utils_1.posixPath)(path_1.default.relative(path_1.default.dirname(filePath), assetPath))}`;
|
|
25
|
+
const relativeAssetPath = `./${(0, utils_1.posixPath)(path_1.default.relative(path_1.default.dirname(context.filePath), assetPath))}`;
|
|
27
26
|
const parsedUrl = url_1.default.parse(node.url);
|
|
28
27
|
const hash = parsedUrl.hash ?? '';
|
|
29
28
|
const search = parsedUrl.search ?? '';
|
|
@@ -31,7 +30,7 @@ async function toAssetRequireNode([node], assetPath, filePath) {
|
|
|
31
30
|
// A hack to stop Webpack from using its built-in loader to parse JSON
|
|
32
31
|
path_1.default.extname(relativeAssetPath) === '.json'
|
|
33
32
|
? `${relativeAssetPath.replace('.json', '.raw')}!=`
|
|
34
|
-
: ''}${inlineMarkdownLinkFileLoader}${(0, utils_1.escapePath)(relativeAssetPath) + search}`;
|
|
33
|
+
: ''}${context.inlineMarkdownLinkFileLoader}${(0, utils_1.escapePath)(relativeAssetPath) + search}`;
|
|
35
34
|
attributes.push({
|
|
36
35
|
type: 'mdxJsxAttribute',
|
|
37
36
|
name: 'target',
|
|
@@ -134,18 +133,21 @@ async function processLinkNode(target, context) {
|
|
|
134
133
|
}
|
|
135
134
|
const assetPath = await getAssetAbsolutePath(decodeURIComponent(parsedUrl.pathname), context);
|
|
136
135
|
if (assetPath) {
|
|
137
|
-
await toAssetRequireNode(target, assetPath, context
|
|
136
|
+
await toAssetRequireNode(target, assetPath, context);
|
|
138
137
|
}
|
|
139
138
|
}
|
|
140
139
|
function plugin(options) {
|
|
141
140
|
return async (root, vfile) => {
|
|
142
141
|
const { visit } = await import('unist-util-visit');
|
|
142
|
+
const fileLoaderUtils = (0, utils_1.getFileLoaderUtils)(vfile.data.compilerName === 'server');
|
|
143
|
+
const context = {
|
|
144
|
+
...options,
|
|
145
|
+
filePath: vfile.path,
|
|
146
|
+
inlineMarkdownLinkFileLoader: fileLoaderUtils.loaders.inlineMarkdownLinkFileLoader,
|
|
147
|
+
};
|
|
143
148
|
const promises = [];
|
|
144
149
|
visit(root, 'link', (node, index, parent) => {
|
|
145
|
-
promises.push(processLinkNode([node, index, parent],
|
|
146
|
-
...options,
|
|
147
|
-
filePath: vfile.path,
|
|
148
|
-
}));
|
|
150
|
+
promises.push(processLinkNode([node, index, parent], context));
|
|
149
151
|
});
|
|
150
152
|
await Promise.all(promises);
|
|
151
153
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/transformLinks/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
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-6048",
|
|
4
4
|
"description": "Docusaurus Loader for MDX",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -18,9 +18,9 @@
|
|
|
18
18
|
},
|
|
19
19
|
"license": "MIT",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@docusaurus/logger": "0.0.0-
|
|
22
|
-
"@docusaurus/utils": "0.0.0-
|
|
23
|
-
"@docusaurus/utils-validation": "0.0.0-
|
|
21
|
+
"@docusaurus/logger": "0.0.0-6048",
|
|
22
|
+
"@docusaurus/utils": "0.0.0-6048",
|
|
23
|
+
"@docusaurus/utils-validation": "0.0.0-6048",
|
|
24
24
|
"@mdx-js/mdx": "^3.0.0",
|
|
25
25
|
"@slorber/remark-comment": "^1.0.0",
|
|
26
26
|
"escape-html": "^1.0.3",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"webpack": "^5.88.1"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@docusaurus/types": "0.0.0-
|
|
47
|
+
"@docusaurus/types": "0.0.0-6048",
|
|
48
48
|
"@types/escape-html": "^1.0.2",
|
|
49
49
|
"@types/mdast": "^4.0.2",
|
|
50
50
|
"@types/stringify-object": "^3.3.1",
|
|
@@ -64,5 +64,5 @@
|
|
|
64
64
|
"engines": {
|
|
65
65
|
"node": ">=18.0"
|
|
66
66
|
},
|
|
67
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "482a5b8c84f0d0a2e834de99836937c3ccf52d4f"
|
|
68
68
|
}
|
package/src/loader.ts
CHANGED
|
@@ -28,10 +28,6 @@ import type {LoaderContext} from 'webpack';
|
|
|
28
28
|
// See https://github.com/microsoft/TypeScript/issues/49721#issuecomment-1517839391
|
|
29
29
|
type Pluggable = any; // TODO fix this asap
|
|
30
30
|
|
|
31
|
-
const {
|
|
32
|
-
loaders: {inlineMarkdownAssetImageFileLoader},
|
|
33
|
-
} = getFileLoaderUtils();
|
|
34
|
-
|
|
35
31
|
export type MDXPlugin = Pluggable;
|
|
36
32
|
|
|
37
33
|
export type Options = Partial<MDXOptions> & {
|
|
@@ -72,7 +68,13 @@ async function readMetadataPath(metadataPath: string) {
|
|
|
72
68
|
*
|
|
73
69
|
* `{image: "./myImage.png"}` => `{image: require("./myImage.png")}`
|
|
74
70
|
*/
|
|
75
|
-
function createAssetsExportCode(
|
|
71
|
+
function createAssetsExportCode({
|
|
72
|
+
assets,
|
|
73
|
+
inlineMarkdownAssetImageFileLoader,
|
|
74
|
+
}: {
|
|
75
|
+
assets: unknown;
|
|
76
|
+
inlineMarkdownAssetImageFileLoader: string;
|
|
77
|
+
}) {
|
|
76
78
|
if (
|
|
77
79
|
typeof assets !== 'object' ||
|
|
78
80
|
!assets ||
|
|
@@ -245,13 +247,23 @@ ${JSON.stringify(frontMatter, null, 2)}`;
|
|
|
245
247
|
? options.createAssets({frontMatter, metadata})
|
|
246
248
|
: undefined;
|
|
247
249
|
|
|
250
|
+
const fileLoaderUtils = getFileLoaderUtils(compilerName === 'server');
|
|
251
|
+
|
|
248
252
|
// TODO use remark plugins to insert extra exports instead of string concat?
|
|
249
253
|
// cf how the toc is exported
|
|
250
254
|
const exportsCode = `
|
|
251
255
|
export const frontMatter = ${stringifyObject(frontMatter)};
|
|
252
256
|
export const contentTitle = ${stringifyObject(contentTitle)};
|
|
253
257
|
${metadataJsonString ? `export const metadata = ${metadataJsonString};` : ''}
|
|
254
|
-
${
|
|
258
|
+
${
|
|
259
|
+
assets
|
|
260
|
+
? `export const assets = ${createAssetsExportCode({
|
|
261
|
+
assets,
|
|
262
|
+
inlineMarkdownAssetImageFileLoader:
|
|
263
|
+
fileLoaderUtils.loaders.inlineMarkdownAssetImageFileLoader,
|
|
264
|
+
})};`
|
|
265
|
+
: ''
|
|
266
|
+
}
|
|
255
267
|
`;
|
|
256
268
|
|
|
257
269
|
const code = `
|
|
@@ -13,8 +13,8 @@ import {
|
|
|
13
13
|
toMessageRelativeFilePath,
|
|
14
14
|
posixPath,
|
|
15
15
|
escapePath,
|
|
16
|
-
getFileLoaderUtils,
|
|
17
16
|
findAsyncSequential,
|
|
17
|
+
getFileLoaderUtils,
|
|
18
18
|
} from '@docusaurus/utils';
|
|
19
19
|
import escapeHtml from 'escape-html';
|
|
20
20
|
import sizeOf from 'image-size';
|
|
@@ -27,10 +27,6 @@ import type {MdxJsxTextElement} from 'mdast-util-mdx';
|
|
|
27
27
|
import type {Image} from 'mdast';
|
|
28
28
|
import type {Parent} from 'unist';
|
|
29
29
|
|
|
30
|
-
const {
|
|
31
|
-
loaders: {inlineMarkdownImageFileLoader},
|
|
32
|
-
} = getFileLoaderUtils();
|
|
33
|
-
|
|
34
30
|
type PluginOptions = {
|
|
35
31
|
staticDirs: string[];
|
|
36
32
|
siteDir: string;
|
|
@@ -38,6 +34,7 @@ type PluginOptions = {
|
|
|
38
34
|
|
|
39
35
|
type Context = PluginOptions & {
|
|
40
36
|
filePath: string;
|
|
37
|
+
inlineMarkdownImageFileLoader: string;
|
|
41
38
|
};
|
|
42
39
|
|
|
43
40
|
type Target = [node: Image, index: number, parent: Parent];
|
|
@@ -45,21 +42,21 @@ type Target = [node: Image, index: number, parent: Parent];
|
|
|
45
42
|
async function toImageRequireNode(
|
|
46
43
|
[node]: Target,
|
|
47
44
|
imagePath: string,
|
|
48
|
-
|
|
45
|
+
context: Context,
|
|
49
46
|
) {
|
|
50
47
|
// MdxJsxTextElement => see https://github.com/facebook/docusaurus/pull/8288#discussion_r1125871405
|
|
51
48
|
const jsxNode = node as unknown as MdxJsxTextElement;
|
|
52
49
|
const attributes: MdxJsxTextElement['attributes'] = [];
|
|
53
50
|
|
|
54
51
|
let relativeImagePath = posixPath(
|
|
55
|
-
path.relative(path.dirname(filePath), imagePath),
|
|
52
|
+
path.relative(path.dirname(context.filePath), imagePath),
|
|
56
53
|
);
|
|
57
54
|
relativeImagePath = `./${relativeImagePath}`;
|
|
58
55
|
|
|
59
56
|
const parsedUrl = url.parse(node.url);
|
|
60
57
|
const hash = parsedUrl.hash ?? '';
|
|
61
58
|
const search = parsedUrl.search ?? '';
|
|
62
|
-
const requireString = `${inlineMarkdownImageFileLoader}${
|
|
59
|
+
const requireString = `${context.inlineMarkdownImageFileLoader}${
|
|
63
60
|
escapePath(relativeImagePath) + search
|
|
64
61
|
}`;
|
|
65
62
|
if (node.alt) {
|
|
@@ -186,21 +183,26 @@ async function processImageNode(target: Target, context: Context) {
|
|
|
186
183
|
// We try to convert image urls without protocol to images with require calls
|
|
187
184
|
// going through webpack ensures that image assets exist at build time
|
|
188
185
|
const imagePath = await getImageAbsolutePath(parsedUrl.pathname, context);
|
|
189
|
-
await toImageRequireNode(target, imagePath, context
|
|
186
|
+
await toImageRequireNode(target, imagePath, context);
|
|
190
187
|
}
|
|
191
188
|
|
|
192
189
|
export default function plugin(options: PluginOptions): Transformer {
|
|
193
190
|
return async (root, vfile) => {
|
|
194
191
|
const {visit} = await import('unist-util-visit');
|
|
195
192
|
|
|
193
|
+
const fileLoaderUtils = getFileLoaderUtils(
|
|
194
|
+
vfile.data.compilerName === 'server',
|
|
195
|
+
);
|
|
196
|
+
const context: Context = {
|
|
197
|
+
...options,
|
|
198
|
+
filePath: vfile.path!,
|
|
199
|
+
inlineMarkdownImageFileLoader:
|
|
200
|
+
fileLoaderUtils.loaders.inlineMarkdownImageFileLoader,
|
|
201
|
+
};
|
|
202
|
+
|
|
196
203
|
const promises: Promise<void>[] = [];
|
|
197
204
|
visit(root, 'image', (node: Image, index, parent) => {
|
|
198
|
-
promises.push(
|
|
199
|
-
processImageNode([node, index, parent!], {
|
|
200
|
-
...options,
|
|
201
|
-
filePath: vfile.path!,
|
|
202
|
-
}),
|
|
203
|
-
);
|
|
205
|
+
promises.push(processImageNode([node, index, parent!], context));
|
|
204
206
|
});
|
|
205
207
|
await Promise.all(promises);
|
|
206
208
|
};
|
|
@@ -12,8 +12,8 @@ import {
|
|
|
12
12
|
toMessageRelativeFilePath,
|
|
13
13
|
posixPath,
|
|
14
14
|
escapePath,
|
|
15
|
-
getFileLoaderUtils,
|
|
16
15
|
findAsyncSequential,
|
|
16
|
+
getFileLoaderUtils,
|
|
17
17
|
} from '@docusaurus/utils';
|
|
18
18
|
import escapeHtml from 'escape-html';
|
|
19
19
|
import {assetRequireAttributeValue, transformNode} from '../utils';
|
|
@@ -24,10 +24,6 @@ import type {MdxJsxTextElement} from 'mdast-util-mdx';
|
|
|
24
24
|
import type {Parent} from 'unist';
|
|
25
25
|
import type {Link, Literal} from 'mdast';
|
|
26
26
|
|
|
27
|
-
const {
|
|
28
|
-
loaders: {inlineMarkdownLinkFileLoader},
|
|
29
|
-
} = getFileLoaderUtils();
|
|
30
|
-
|
|
31
27
|
type PluginOptions = {
|
|
32
28
|
staticDirs: string[];
|
|
33
29
|
siteDir: string;
|
|
@@ -35,6 +31,7 @@ type PluginOptions = {
|
|
|
35
31
|
|
|
36
32
|
type Context = PluginOptions & {
|
|
37
33
|
filePath: string;
|
|
34
|
+
inlineMarkdownLinkFileLoader: string;
|
|
38
35
|
};
|
|
39
36
|
|
|
40
37
|
type Target = [node: Link, index: number, parent: Parent];
|
|
@@ -45,7 +42,7 @@ type Target = [node: Link, index: number, parent: Parent];
|
|
|
45
42
|
async function toAssetRequireNode(
|
|
46
43
|
[node]: Target,
|
|
47
44
|
assetPath: string,
|
|
48
|
-
|
|
45
|
+
context: Context,
|
|
49
46
|
) {
|
|
50
47
|
// MdxJsxTextElement => see https://github.com/facebook/docusaurus/pull/8288#discussion_r1125871405
|
|
51
48
|
const jsxNode = node as unknown as MdxJsxTextElement;
|
|
@@ -53,7 +50,7 @@ async function toAssetRequireNode(
|
|
|
53
50
|
|
|
54
51
|
// require("assets/file.pdf") means requiring from a package called assets
|
|
55
52
|
const relativeAssetPath = `./${posixPath(
|
|
56
|
-
path.relative(path.dirname(filePath), assetPath),
|
|
53
|
+
path.relative(path.dirname(context.filePath), assetPath),
|
|
57
54
|
)}`;
|
|
58
55
|
|
|
59
56
|
const parsedUrl = url.parse(node.url);
|
|
@@ -65,7 +62,9 @@ async function toAssetRequireNode(
|
|
|
65
62
|
path.extname(relativeAssetPath) === '.json'
|
|
66
63
|
? `${relativeAssetPath.replace('.json', '.raw')}!=`
|
|
67
64
|
: ''
|
|
68
|
-
}${inlineMarkdownLinkFileLoader}${
|
|
65
|
+
}${context.inlineMarkdownLinkFileLoader}${
|
|
66
|
+
escapePath(relativeAssetPath) + search
|
|
67
|
+
}`;
|
|
69
68
|
|
|
70
69
|
attributes.push({
|
|
71
70
|
type: 'mdxJsxAttribute',
|
|
@@ -196,7 +195,7 @@ async function processLinkNode(target: Target, context: Context) {
|
|
|
196
195
|
context,
|
|
197
196
|
);
|
|
198
197
|
if (assetPath) {
|
|
199
|
-
await toAssetRequireNode(target, assetPath, context
|
|
198
|
+
await toAssetRequireNode(target, assetPath, context);
|
|
200
199
|
}
|
|
201
200
|
}
|
|
202
201
|
|
|
@@ -204,14 +203,19 @@ export default function plugin(options: PluginOptions): Transformer {
|
|
|
204
203
|
return async (root, vfile) => {
|
|
205
204
|
const {visit} = await import('unist-util-visit');
|
|
206
205
|
|
|
206
|
+
const fileLoaderUtils = getFileLoaderUtils(
|
|
207
|
+
vfile.data.compilerName === 'server',
|
|
208
|
+
);
|
|
209
|
+
const context: Context = {
|
|
210
|
+
...options,
|
|
211
|
+
filePath: vfile.path!,
|
|
212
|
+
inlineMarkdownLinkFileLoader:
|
|
213
|
+
fileLoaderUtils.loaders.inlineMarkdownLinkFileLoader,
|
|
214
|
+
};
|
|
215
|
+
|
|
207
216
|
const promises: Promise<void>[] = [];
|
|
208
217
|
visit(root, 'link', (node: Link, index, parent) => {
|
|
209
|
-
promises.push(
|
|
210
|
-
processLinkNode([node, index, parent!], {
|
|
211
|
-
...options,
|
|
212
|
-
filePath: vfile.path!,
|
|
213
|
-
}),
|
|
214
|
-
);
|
|
218
|
+
promises.push(processLinkNode([node, index, parent!], context));
|
|
215
219
|
});
|
|
216
220
|
await Promise.all(promises);
|
|
217
221
|
};
|