@docusaurus/mdx-loader 0.0.0-6042 → 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 +20 -18
- package/lib/loader.js.map +1 -1
- package/lib/processor.d.ts +2 -3
- package/lib/processor.d.ts.map +1 -1
- package/lib/processor.js +8 -8
- package/lib/processor.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 +30 -23
- package/src/processor.ts +10 -14
- 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) {
|
|
@@ -87,10 +86,9 @@ async function mdxLoader(fileContent) {
|
|
|
87
86
|
const compilerName = (0, utils_1.getWebpackLoaderCompilerName)(this);
|
|
88
87
|
const callback = this.async();
|
|
89
88
|
const filePath = this.resourcePath;
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
const { frontMatter } = await reqOptions.markdownConfig.parseFrontMatter({
|
|
89
|
+
const options = this.getOptions();
|
|
90
|
+
ensureMarkdownConfig(options);
|
|
91
|
+
const { frontMatter } = await options.markdownConfig.parseFrontMatter({
|
|
94
92
|
filePath,
|
|
95
93
|
fileContent,
|
|
96
94
|
defaultParseFrontMatter: utils_1.DEFAULT_PARSE_FRONT_MATTER,
|
|
@@ -99,14 +97,13 @@ async function mdxLoader(fileContent) {
|
|
|
99
97
|
const preprocessedContent = (0, preprocessor_1.default)({
|
|
100
98
|
fileContent,
|
|
101
99
|
filePath,
|
|
102
|
-
admonitions:
|
|
103
|
-
markdownConfig:
|
|
100
|
+
admonitions: options.admonitions,
|
|
101
|
+
markdownConfig: options.markdownConfig,
|
|
104
102
|
});
|
|
105
103
|
const hasFrontMatter = Object.keys(frontMatter).length > 0;
|
|
106
104
|
const processor = await (0, processor_1.createProcessorCached)({
|
|
107
105
|
filePath,
|
|
108
|
-
|
|
109
|
-
query,
|
|
106
|
+
options,
|
|
110
107
|
mdxFrontMatter,
|
|
111
108
|
});
|
|
112
109
|
let result;
|
|
@@ -134,13 +131,13 @@ async function mdxLoader(fileContent) {
|
|
|
134
131
|
const contentTitle = extractContentTitleData(result.data);
|
|
135
132
|
// MDX partials are MDX files starting with _ or in a folder starting with _
|
|
136
133
|
// Partial are not expected to have associated metadata files or front matter
|
|
137
|
-
const isMDXPartial =
|
|
134
|
+
const isMDXPartial = options.isMDXPartial?.(filePath);
|
|
138
135
|
if (isMDXPartial && hasFrontMatter) {
|
|
139
136
|
const errorMessage = `Docusaurus MDX partial files should not contain front matter.
|
|
140
137
|
Those partial files use the _ prefix as a convention by default, but this is configurable.
|
|
141
138
|
File at ${filePath} contains front matter that will be ignored:
|
|
142
139
|
${JSON.stringify(frontMatter, null, 2)}`;
|
|
143
|
-
if (!
|
|
140
|
+
if (!options.isMDXPartialFrontMatterWarningDisabled) {
|
|
144
141
|
const shouldError = process.env.NODE_ENV === 'test' || process.env.CI;
|
|
145
142
|
if (shouldError) {
|
|
146
143
|
return callback(new Error(errorMessage));
|
|
@@ -151,9 +148,8 @@ ${JSON.stringify(frontMatter, null, 2)}`;
|
|
|
151
148
|
function getMetadataPath() {
|
|
152
149
|
if (!isMDXPartial) {
|
|
153
150
|
// Read metadata for this MDX and export it.
|
|
154
|
-
if (
|
|
155
|
-
|
|
156
|
-
return reqOptions.metadataPath(filePath);
|
|
151
|
+
if (options.metadataPath && typeof options.metadataPath === 'function') {
|
|
152
|
+
return options.metadataPath(filePath);
|
|
157
153
|
}
|
|
158
154
|
}
|
|
159
155
|
return undefined;
|
|
@@ -168,16 +164,22 @@ ${JSON.stringify(frontMatter, null, 2)}`;
|
|
|
168
164
|
const metadata = metadataJsonString
|
|
169
165
|
? JSON.parse(metadataJsonString)
|
|
170
166
|
: undefined;
|
|
171
|
-
const assets =
|
|
172
|
-
?
|
|
167
|
+
const assets = options.createAssets && metadata
|
|
168
|
+
? options.createAssets({ frontMatter, metadata })
|
|
173
169
|
: undefined;
|
|
170
|
+
const fileLoaderUtils = (0, utils_1.getFileLoaderUtils)(compilerName === 'server');
|
|
174
171
|
// TODO use remark plugins to insert extra exports instead of string concat?
|
|
175
172
|
// cf how the toc is exported
|
|
176
173
|
const exportsCode = `
|
|
177
174
|
export const frontMatter = ${(0, stringify_object_1.default)(frontMatter)};
|
|
178
175
|
export const contentTitle = ${(0, stringify_object_1.default)(contentTitle)};
|
|
179
176
|
${metadataJsonString ? `export const metadata = ${metadataJsonString};` : ''}
|
|
180
|
-
${assets
|
|
177
|
+
${assets
|
|
178
|
+
? `export const assets = ${createAssetsExportCode({
|
|
179
|
+
assets,
|
|
180
|
+
inlineMarkdownAssetImageFileLoader: fileLoaderUtils.loaders.inlineMarkdownAssetImageFileLoader,
|
|
181
|
+
})};`
|
|
182
|
+
: ''}
|
|
181
183
|
`;
|
|
182
184
|
const code = `
|
|
183
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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"}
|
package/lib/processor.d.ts
CHANGED
|
@@ -38,11 +38,10 @@ export declare function createProcessorUncached(parameters: {
|
|
|
38
38
|
options: Options;
|
|
39
39
|
format: 'md' | 'mdx';
|
|
40
40
|
}): Promise<SimpleProcessor>;
|
|
41
|
-
export declare function createProcessorCached({ filePath, mdxFrontMatter,
|
|
41
|
+
export declare function createProcessorCached({ filePath, mdxFrontMatter, options, }: {
|
|
42
42
|
filePath: string;
|
|
43
43
|
mdxFrontMatter: MDXFrontMatter;
|
|
44
|
-
|
|
45
|
-
reqOptions: Options;
|
|
44
|
+
options: Options;
|
|
46
45
|
}): Promise<SimpleProcessor>;
|
|
47
46
|
export {};
|
|
48
47
|
//# sourceMappingURL=processor.d.ts.map
|
package/lib/processor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAQ5D,KAAK,SAAS,GAAG,GAAG,CAAC;AAErB,KAAK,qBAAqB,GAAG;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAA;CAAC,CAAC;AAG/E,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,CAAC,EACR,OAAO,EACP,QAAQ,EACR,WAAW,EACX,YAAY,GACb,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAC,CAAC;QACtC,YAAY,EAAE,mBAAmB,CAAC;KACnC,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC;AAElC,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClD,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,0BAA0B,EAAE,SAAS,EAAE,CAAC;IACxC,0BAA0B,EAAE,SAAS,EAAE,CAAC;CACzC,CAAC;AAyJF,wBAAsB,uBAAuB,CAAC,UAAU,EAAE;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC;CACtB,GAAG,OAAO,CAAC,eAAe,CAAC,CAG3B;
|
|
1
|
+
{"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAQ5D,KAAK,SAAS,GAAG,GAAG,CAAC;AAErB,KAAK,qBAAqB,GAAG;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAA;CAAC,CAAC;AAG/E,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,CAAC,EACR,OAAO,EACP,QAAQ,EACR,WAAW,EACX,YAAY,GACb,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAC,CAAC;QACtC,YAAY,EAAE,mBAAmB,CAAC;KACnC,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,SAAS,CAAC;AAElC,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClD,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,0BAA0B,EAAE,SAAS,EAAE,CAAC;IACxC,0BAA0B,EAAE,SAAS,EAAE,CAAC;CACzC,CAAC;AAyJF,wBAAsB,uBAAuB,CAAC,UAAU,EAAE;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,IAAI,GAAG,KAAK,CAAC;CACtB,GAAG,OAAO,CAAC,eAAe,CAAC,CAG3B;AAwCD,wBAAsB,qBAAqB,CAAC,EAC1C,QAAQ,EACR,cAAc,EACd,OAAO,GACR,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC,eAAe,CAAC,CAU3B"}
|
package/lib/processor.js
CHANGED
|
@@ -158,31 +158,31 @@ async function createProcessorUncached(parameters) {
|
|
|
158
158
|
// Compilers are cached so that Remark/Rehype plugins can run
|
|
159
159
|
// expensive code during initialization
|
|
160
160
|
const ProcessorsCache = new Map();
|
|
161
|
-
async function createProcessorsCacheEntry({
|
|
161
|
+
async function createProcessorsCacheEntry({ options, }) {
|
|
162
162
|
const { createProcessorSync } = await createProcessorFactory();
|
|
163
|
-
const compilers = ProcessorsCache.get(
|
|
163
|
+
const compilers = ProcessorsCache.get(options);
|
|
164
164
|
if (compilers) {
|
|
165
165
|
return compilers;
|
|
166
166
|
}
|
|
167
167
|
const compilerCacheEntry = {
|
|
168
168
|
mdProcessor: createProcessorSync({
|
|
169
|
-
options
|
|
169
|
+
options,
|
|
170
170
|
format: 'md',
|
|
171
171
|
}),
|
|
172
172
|
mdxProcessor: createProcessorSync({
|
|
173
|
-
options
|
|
173
|
+
options,
|
|
174
174
|
format: 'mdx',
|
|
175
175
|
}),
|
|
176
176
|
};
|
|
177
|
-
ProcessorsCache.set(
|
|
177
|
+
ProcessorsCache.set(options, compilerCacheEntry);
|
|
178
178
|
return compilerCacheEntry;
|
|
179
179
|
}
|
|
180
|
-
async function createProcessorCached({ filePath, mdxFrontMatter,
|
|
181
|
-
const compilers = await createProcessorsCacheEntry({
|
|
180
|
+
async function createProcessorCached({ filePath, mdxFrontMatter, options, }) {
|
|
181
|
+
const compilers = await createProcessorsCacheEntry({ options });
|
|
182
182
|
const format = (0, format_1.getFormat)({
|
|
183
183
|
filePath,
|
|
184
184
|
frontMatterFormat: mdxFrontMatter.format,
|
|
185
|
-
markdownConfigFormat:
|
|
185
|
+
markdownConfigFormat: options.markdownConfig.format,
|
|
186
186
|
});
|
|
187
187
|
return format === 'md' ? compilers.mdProcessor : compilers.mdxProcessor;
|
|
188
188
|
}
|
package/lib/processor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+MH,0DAMC;
|
|
1
|
+
{"version":3,"file":"processor.js","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA+MH,0DAMC;AAwCD,sDAkBC;;AA7QD,yEAAyC;AACzC,iFAAiD;AACjD,+DAA+B;AAC/B,qFAAqD;AACrD,qFAAqD;AACrD,iGAAiE;AACjE,uEAAuC;AACvC,iEAAiC;AACjC,uEAAuC;AACvC,+EAAwD;AACxD,yFAAgE;AAChE,oGAAoE;AACpE,qCAAmC;AA0CnC,SAAS,qBAAqB,CAC5B,iBAA4C;IAE5C,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,MAAM,GACV,iBAAiB,KAAK,IAAI;YACxB,CAAC,CAAC,qBAAoB;YACtB,CAAC,CAAC,CAAC,qBAAoB,EAAE,iBAAiB,CAAC,CAAC;QAChD,OAAO,CAAC,MAAM,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,iDAAiD;AACjD,KAAK,UAAU,sBAAsB;IACnC,MAAM,EAAC,eAAe,EAAE,kBAAkB,EAAC,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IAC1E,MAAM,EAAC,OAAO,EAAE,WAAW,EAAC,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAClE,MAAM,EAAC,OAAO,EAAE,SAAS,EAAC,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IACxD,MAAM,EAAC,OAAO,EAAE,GAAG,EAAC,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;IAClD,qFAAqF;IACrF,MAAM,EAAC,OAAO,EAAE,OAAO,EAAC,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACnE,MAAM,EAAC,OAAO,EAAE,SAAS,EAAC,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC9D,MAAM,EAAC,KAAK,EAAC,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,EAAC,OAAO,EAAE,KAAK,EAAC,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;IAEtD,SAAS,uBAAuB,CAAC,EAAC,OAAO,EAAqB;QAC5D,OAAO;YACL;gBACE,kBAAQ;gBACR,EAAC,mBAAmB,EAAE,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAC;aACnE;YACD,KAAK;YACL,aAAG;SACJ,CAAC;IACJ,CAAC;IAED,4CAA4C;IAC5C,gEAAgE;IAChE,SAAS,mBAAmB,CAAC,EAC3B,OAAO,EACP,MAAM,GAIP;QACC,MAAM,aAAa,GAAgB;YACjC,GAAG,CAAC,OAAO,CAAC,0BAA0B,IAAI,EAAE,CAAC;YAC7C,WAAW;YACX,SAAS;YACT,CAAC,sBAAY,EAAE,EAAC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAC,CAAC;YAChE,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;YACtD,GAAG,uBAAuB,CAAC,EAAC,OAAO,EAAC,CAAC;YACrC,iBAAO;YACP,cAAI;YACJ,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD;gBACE,wBAAc;gBACd;oBACE,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB;aACF;YACD,uCAAuC;YACvC,OAAO,CAAC,mBAAmB;gBACzB,CAAC,CAAC;oBACE,8BAAoB;oBACpB,EAAC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAAC;iBACnD;gBACH,CAAC,CAAC,SAAS;YACb;gBACE,wBAAc;gBACd;oBACE,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB;aACF;YACD,GAAG;YACH,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;YAC3D,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;YAChC,0BAAuB;SACxB,CAAC,MAAM,CAAC,CAAC,MAAM,EAAuB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAE3D,wEAAwE;QACxE,+BAA+B;QAC/B,aAAa,CAAC,IAAI,CAAC,0BAAgB,CAAC,CAAC;QAErC,MAAM,aAAa,GAAgB;YACjC,GAAG,CAAC,OAAO,CAAC,0BAA0B,IAAI,EAAE,CAAC;YAC7C,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;SACjC,CAAC;QAEF,6DAA6D;QAC7D,mEAAmE;QACnE,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;QAEvD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,+DAA+D;YAC/D,uDAAuD;YACvD,sEAAsE;YACtE,MAAM,eAAe,GAAc;gBACjC,SAAS;gBACT;oBACE,WAAW,EAAE;wBACX,mBAAmB;wBACnB,mBAAmB;wBACnB,mBAAmB;wBACnB,mBAAmB;wBACnB,UAAU;qBACX;iBACF;aACF,CAAC;YACF,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,gBAAgB,GAA+B;YACnD,GAAG,OAAO;YACV,aAAa;YACb,aAAa;YACb,YAAY;YACZ,oBAAoB,EAAE,eAAe;SACtC,CAAC;QAEF,MAAM,YAAY,GAAG,kBAAkB,CAAC;YACtC,GAAG,gBAAgB;YACnB,mBAAmB,EAAE,OAAO,CAAC,cAAc,CAAC,mBAAmB;YAC/D,MAAM;SACP,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE,KAAK,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAC,EAAE,EAAE;gBAChE,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;oBACtB,KAAK,EAAE,OAAO;oBACd,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE;wBACJ,WAAW;wBACX,YAAY;qBACb;iBACF,CAAC,CAAC;gBACH,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBACnD,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE;oBAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;iBAClB,CAAC,CAAC,CAAC;YACN,CAAC;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAC,mBAAmB,EAAC,CAAC;AAC/B,CAAC;AAED,2BAA2B;AACpB,KAAK,UAAU,uBAAuB,CAAC,UAG7C;IACC,MAAM,EAAC,mBAAmB,EAAC,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAC7D,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC;AAQD,6DAA6D;AAC7D,uCAAuC;AACvC,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0C,CAAC;AAE1E,KAAK,UAAU,0BAA0B,CAAC,EACxC,OAAO,GAGR;IACC,MAAM,EAAC,mBAAmB,EAAC,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAE7D,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,kBAAkB,GAAyB;QAC/C,WAAW,EAAE,mBAAmB,CAAC;YAC/B,OAAO;YACP,MAAM,EAAE,IAAI;SACb,CAAC;QACF,YAAY,EAAE,mBAAmB,CAAC;YAChC,OAAO;YACP,MAAM,EAAE,KAAK;SACd,CAAC;KACH,CAAC;IAEF,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAEjD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,EAC1C,QAAQ,EACR,cAAc,EACd,OAAO,GAKR;IACC,MAAM,SAAS,GAAG,MAAM,0BAA0B,CAAC,EAAC,OAAO,EAAC,CAAC,CAAC;IAE9D,MAAM,MAAM,GAAG,IAAA,kBAAS,EAAC;QACvB,QAAQ;QACR,iBAAiB,EAAE,cAAc,CAAC,MAAM;QACxC,oBAAoB,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM;KACpD,CAAC,CAAC;IAEH,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC;AAC1E,CAAC"}
|
|
@@ -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":"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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;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 ||
|
|
@@ -140,12 +142,11 @@ export async function mdxLoader(
|
|
|
140
142
|
const compilerName = getWebpackLoaderCompilerName(this);
|
|
141
143
|
const callback = this.async();
|
|
142
144
|
const filePath = this.resourcePath;
|
|
143
|
-
const
|
|
144
|
-
const {query} = this;
|
|
145
|
+
const options: Options = this.getOptions();
|
|
145
146
|
|
|
146
|
-
ensureMarkdownConfig(
|
|
147
|
+
ensureMarkdownConfig(options);
|
|
147
148
|
|
|
148
|
-
const {frontMatter} = await
|
|
149
|
+
const {frontMatter} = await options.markdownConfig.parseFrontMatter({
|
|
149
150
|
filePath,
|
|
150
151
|
fileContent,
|
|
151
152
|
defaultParseFrontMatter: DEFAULT_PARSE_FRONT_MATTER,
|
|
@@ -155,16 +156,15 @@ export async function mdxLoader(
|
|
|
155
156
|
const preprocessedContent = preprocessor({
|
|
156
157
|
fileContent,
|
|
157
158
|
filePath,
|
|
158
|
-
admonitions:
|
|
159
|
-
markdownConfig:
|
|
159
|
+
admonitions: options.admonitions,
|
|
160
|
+
markdownConfig: options.markdownConfig,
|
|
160
161
|
});
|
|
161
162
|
|
|
162
163
|
const hasFrontMatter = Object.keys(frontMatter).length > 0;
|
|
163
164
|
|
|
164
165
|
const processor = await createProcessorCached({
|
|
165
166
|
filePath,
|
|
166
|
-
|
|
167
|
-
query,
|
|
167
|
+
options,
|
|
168
168
|
mdxFrontMatter,
|
|
169
169
|
});
|
|
170
170
|
|
|
@@ -203,14 +203,14 @@ export async function mdxLoader(
|
|
|
203
203
|
|
|
204
204
|
// MDX partials are MDX files starting with _ or in a folder starting with _
|
|
205
205
|
// Partial are not expected to have associated metadata files or front matter
|
|
206
|
-
const isMDXPartial =
|
|
206
|
+
const isMDXPartial = options.isMDXPartial?.(filePath);
|
|
207
207
|
if (isMDXPartial && hasFrontMatter) {
|
|
208
208
|
const errorMessage = `Docusaurus MDX partial files should not contain front matter.
|
|
209
209
|
Those partial files use the _ prefix as a convention by default, but this is configurable.
|
|
210
210
|
File at ${filePath} contains front matter that will be ignored:
|
|
211
211
|
${JSON.stringify(frontMatter, null, 2)}`;
|
|
212
212
|
|
|
213
|
-
if (!
|
|
213
|
+
if (!options.isMDXPartialFrontMatterWarningDisabled) {
|
|
214
214
|
const shouldError = process.env.NODE_ENV === 'test' || process.env.CI;
|
|
215
215
|
if (shouldError) {
|
|
216
216
|
return callback(new Error(errorMessage));
|
|
@@ -222,11 +222,8 @@ ${JSON.stringify(frontMatter, null, 2)}`;
|
|
|
222
222
|
function getMetadataPath(): string | undefined {
|
|
223
223
|
if (!isMDXPartial) {
|
|
224
224
|
// Read metadata for this MDX and export it.
|
|
225
|
-
if (
|
|
226
|
-
|
|
227
|
-
typeof reqOptions.metadataPath === 'function'
|
|
228
|
-
) {
|
|
229
|
-
return reqOptions.metadataPath(filePath);
|
|
225
|
+
if (options.metadataPath && typeof options.metadataPath === 'function') {
|
|
226
|
+
return options.metadataPath(filePath);
|
|
230
227
|
}
|
|
231
228
|
}
|
|
232
229
|
return undefined;
|
|
@@ -246,17 +243,27 @@ ${JSON.stringify(frontMatter, null, 2)}`;
|
|
|
246
243
|
: undefined;
|
|
247
244
|
|
|
248
245
|
const assets =
|
|
249
|
-
|
|
250
|
-
?
|
|
246
|
+
options.createAssets && metadata
|
|
247
|
+
? options.createAssets({frontMatter, metadata})
|
|
251
248
|
: undefined;
|
|
252
249
|
|
|
250
|
+
const fileLoaderUtils = getFileLoaderUtils(compilerName === 'server');
|
|
251
|
+
|
|
253
252
|
// TODO use remark plugins to insert extra exports instead of string concat?
|
|
254
253
|
// cf how the toc is exported
|
|
255
254
|
const exportsCode = `
|
|
256
255
|
export const frontMatter = ${stringifyObject(frontMatter)};
|
|
257
256
|
export const contentTitle = ${stringifyObject(contentTitle)};
|
|
258
257
|
${metadataJsonString ? `export const metadata = ${metadataJsonString};` : ''}
|
|
259
|
-
${
|
|
258
|
+
${
|
|
259
|
+
assets
|
|
260
|
+
? `export const assets = ${createAssetsExportCode({
|
|
261
|
+
assets,
|
|
262
|
+
inlineMarkdownAssetImageFileLoader:
|
|
263
|
+
fileLoaderUtils.loaders.inlineMarkdownAssetImageFileLoader,
|
|
264
|
+
})};`
|
|
265
|
+
: ''
|
|
266
|
+
}
|
|
260
267
|
`;
|
|
261
268
|
|
|
262
269
|
const code = `
|
package/src/processor.ts
CHANGED
|
@@ -229,31 +229,29 @@ type ProcessorsCacheEntry = {
|
|
|
229
229
|
const ProcessorsCache = new Map<string | Options, ProcessorsCacheEntry>();
|
|
230
230
|
|
|
231
231
|
async function createProcessorsCacheEntry({
|
|
232
|
-
|
|
233
|
-
reqOptions,
|
|
232
|
+
options,
|
|
234
233
|
}: {
|
|
235
|
-
|
|
236
|
-
reqOptions: Options;
|
|
234
|
+
options: Options;
|
|
237
235
|
}): Promise<ProcessorsCacheEntry> {
|
|
238
236
|
const {createProcessorSync} = await createProcessorFactory();
|
|
239
237
|
|
|
240
|
-
const compilers = ProcessorsCache.get(
|
|
238
|
+
const compilers = ProcessorsCache.get(options);
|
|
241
239
|
if (compilers) {
|
|
242
240
|
return compilers;
|
|
243
241
|
}
|
|
244
242
|
|
|
245
243
|
const compilerCacheEntry: ProcessorsCacheEntry = {
|
|
246
244
|
mdProcessor: createProcessorSync({
|
|
247
|
-
options
|
|
245
|
+
options,
|
|
248
246
|
format: 'md',
|
|
249
247
|
}),
|
|
250
248
|
mdxProcessor: createProcessorSync({
|
|
251
|
-
options
|
|
249
|
+
options,
|
|
252
250
|
format: 'mdx',
|
|
253
251
|
}),
|
|
254
252
|
};
|
|
255
253
|
|
|
256
|
-
ProcessorsCache.set(
|
|
254
|
+
ProcessorsCache.set(options, compilerCacheEntry);
|
|
257
255
|
|
|
258
256
|
return compilerCacheEntry;
|
|
259
257
|
}
|
|
@@ -261,20 +259,18 @@ async function createProcessorsCacheEntry({
|
|
|
261
259
|
export async function createProcessorCached({
|
|
262
260
|
filePath,
|
|
263
261
|
mdxFrontMatter,
|
|
264
|
-
|
|
265
|
-
reqOptions,
|
|
262
|
+
options,
|
|
266
263
|
}: {
|
|
267
264
|
filePath: string;
|
|
268
265
|
mdxFrontMatter: MDXFrontMatter;
|
|
269
|
-
|
|
270
|
-
reqOptions: Options;
|
|
266
|
+
options: Options;
|
|
271
267
|
}): Promise<SimpleProcessor> {
|
|
272
|
-
const compilers = await createProcessorsCacheEntry({
|
|
268
|
+
const compilers = await createProcessorsCacheEntry({options});
|
|
273
269
|
|
|
274
270
|
const format = getFormat({
|
|
275
271
|
filePath,
|
|
276
272
|
frontMatterFormat: mdxFrontMatter.format,
|
|
277
|
-
markdownConfigFormat:
|
|
273
|
+
markdownConfigFormat: options.markdownConfig.format,
|
|
278
274
|
});
|
|
279
275
|
|
|
280
276
|
return format === 'md' ? compilers.mdProcessor : compilers.mdxProcessor;
|
|
@@ -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
|
};
|