@docusaurus/mdx-loader 4.0.0-canary-6980 → 4.0.0-canary-6985

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":"createMDXLoader.d.ts","sourceRoot":"","sources":["../src/createMDXLoader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAC,WAAW,EAAE,cAAc,EAAC,MAAM,SAAS,CAAC;AAmCzD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,CAKpE;AAED,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB,GAAG,WAAW,CAOd"}
1
+ {"version":3,"file":"createMDXLoader.d.ts","sourceRoot":"","sources":["../src/createMDXLoader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAqB,OAAO,EAAC,MAAM,WAAW,CAAC;AAC3D,OAAO,KAAK,EAAC,WAAW,EAAE,cAAc,EAAC,MAAM,SAAS,CAAC;AAoCzD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,CAKpE;AAED,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,OAAO,GACR,EAAE;IACD,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB,GAAG,WAAW,CAOd"}
@@ -28,9 +28,10 @@ function normalizeOptions(optionsInput) {
28
28
  // We only have multiple compilers in production mode (docusaurus build)
29
29
  // TODO wrong but good enough for now (example: "docusaurus build --dev")
30
30
  if (!DisableCrossCompilerCache && process.env.NODE_ENV === 'production') {
31
+ const crossCompilerCache = new Map();
31
32
  options = {
32
33
  ...options,
33
- crossCompilerCache: new Map(),
34
+ getCrossCompilerCache: () => crossCompilerCache,
34
35
  };
35
36
  }
36
37
  return options;
@@ -1 +1 @@
1
- {"version":3,"file":"createMDXLoader.js","sourceRoot":"","sources":["../src/createMDXLoader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,2CAA6C;AAI7C,qEAAqE;AACrE,4DAA4D;AAC5D,MAAM,yBAAyB,GAC7B,OAAO,CAAC,GAAG,CAAC,sCAAsC,KAAK,MAAM,CAAC;AAEhE,SAAS,gBAAgB,CAAC,YAAqB;IAC7C,yCAAyC;IACzC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAC1D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,GAAG,YAAY,CAAC;IAE3B,6EAA6E;IAC7E,2EAA2E;IAC3E,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,GAAG,EAAC,GAAG,OAAO,EAAE,UAAU,EAAE,IAAA,4BAAgB,EAAC,EAAC,OAAO,EAAC,CAAC,EAAC,CAAC;IAClE,CAAC;IAED,sEAAsE;IACtE,wDAAwD;IACxD,wEAAwE;IACxE,yEAAyE;IACzE,IAAI,CAAC,yBAAyB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACxE,OAAO,GAAG;YACR,GAAG,OAAO;YACV,kBAAkB,EAAE,IAAI,GAAG,EAAE;SAC9B,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6BAAoC,OAAgB;IAClD,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QAClC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,6BAAoC,EAClC,OAAO,EACP,OAAO,GAIR;IACC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,OAAO;QACP,IAAI,EAAE,EAAC,IAAI,EAAE,EAAC,GAAG,EAAE,MAAM,EAAC,EAAC;QAC3B,GAAG,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;KACpC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"createMDXLoader.js","sourceRoot":"","sources":["../src/createMDXLoader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,2CAA6C;AAI7C,qEAAqE;AACrE,4DAA4D;AAC5D,MAAM,yBAAyB,GAC7B,OAAO,CAAC,GAAG,CAAC,sCAAsC,KAAK,MAAM,CAAC;AAEhE,SAAS,gBAAgB,CAAC,YAAqB;IAC7C,yCAAyC;IACzC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAC1D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,GAAG,YAAY,CAAC;IAE3B,6EAA6E;IAC7E,2EAA2E;IAC3E,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,GAAG,EAAC,GAAG,OAAO,EAAE,UAAU,EAAE,IAAA,4BAAgB,EAAC,EAAC,OAAO,EAAC,CAAC,EAAC,CAAC;IAClE,CAAC;IAED,sEAAsE;IACtE,wDAAwD;IACxD,wEAAwE;IACxE,yEAAyE;IACzE,IAAI,CAAC,yBAAyB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QACxE,MAAM,kBAAkB,GAAuB,IAAI,GAAG,EAAE,CAAC;QACzD,OAAO,GAAG;YACR,GAAG,OAAO;YACV,qBAAqB,EAAE,GAAG,EAAE,CAAC,kBAAkB;SAChD,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,6BAAoC,OAAgB;IAClD,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QAClC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,6BAAoC,EAClC,OAAO,EACP,OAAO,GAIR;IACC,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,OAAO;QACP,IAAI,EAAE,EAAC,IAAI,EAAE,EAAC,GAAG,EAAE,MAAM,EAAC,EAAC;QAC3B,GAAG,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;KACpC,CAAC;AACJ,CAAC"}
package/lib/loader.js CHANGED
@@ -72,7 +72,7 @@ ${result.content}
72
72
  // This is because client/server compilations might be triggered in parallel
73
73
  // When this happens for the same file, we don't want to compile it twice
74
74
  async function loadMDXWithCaching({ resource, fileContent, filePath, options, compilerName, }) {
75
- const { crossCompilerCache } = options;
75
+ const crossCompilerCache = options.getCrossCompilerCache?.();
76
76
  if (!crossCompilerCache) {
77
77
  return loadMDX({
78
78
  fileContent,
@@ -92,7 +92,7 @@ async function loadMDXWithCaching({ resource, fileContent, filePath, options, co
92
92
  // Note: we can't use string keys in WeakMap
93
93
  // But we could eventually use WeakRef for the values
94
94
  const deleteCacheEntry = () => crossCompilerCache.delete(cacheKey);
95
- const cacheEntry = crossCompilerCache?.get(cacheKey);
95
+ const cacheEntry = crossCompilerCache.get(cacheKey);
96
96
  // When deduplicating client/server compilations, we always use the client
97
97
  // compilation and not the server compilation
98
98
  // This is important because the server compilation usually skips some steps
package/lib/loader.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,wEAAwC;AACxC,6CAI2B;AAC3B,mCAIiB;AACjB,+CAA0C;AAM1C,KAAK,UAAU,OAAO,CAAC,EACrB,WAAW,EACX,QAAQ,EACR,OAAO,EACP,YAAY,GAMb;IACC,MAAM,EAAC,WAAW,EAAC,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,gBAAgB,CAAC;QAClE,QAAQ;QACR,WAAW;QACX,uBAAuB,EAAE,kCAA0B;KACpD,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAY,EAAC;QAChC,WAAW;QACX,QAAQ;QACR,WAAW;QACX,OAAO;QACP,YAAY;KACb,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAA,+BAAuB,EAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE1D,4EAA4E;IAC5E,6EAA6E;IAC7E,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,YAAY,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG;;UAEf,QAAQ;EAChB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;QAErC,IAAI,CAAC,OAAO,CAAC,sCAAsC,EAAE,CAAC;YACpD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACtE,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;YACD,gBAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,SAAS,eAAe;QAC5C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC,EAAE,CAAC;IAEL,MAAM,MAAM,GACV,OAAO,CAAC,YAAY,IAAI,CAAC,YAAY;QACnC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAC,QAAQ,EAAE,WAAW,EAAC,CAAC;QAC/C,CAAC,CAAC,SAAS,CAAC;IAEhB,4EAA4E;IAC5E,6BAA6B;IAC7B,MAAM,WAAW,GAAG;6BACO,IAAA,yBAAW,EAAC,WAAW,CAAC;8BACvB,IAAA,yBAAW,EAAC,YAAY,CAAC;EAErD,YAAY;QACV,CAAC,CAAC,sCAAsC,IAAA,uBAAe,EACnD,YAAY,EACZ,OAAO,CAAC,OAAO,CAChB,GAAG;QACN,CAAC,CAAC,EACN;EACE,MAAM,CAAC,CAAC,CAAC,yBAAyB,IAAA,8BAAsB,EAAC,EAAC,MAAM,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;CAC3E,CAAC;IAEA,MAAM,IAAI,GAAG;EACb,WAAW;EACX,MAAM,CAAC,OAAO;CACf,CAAC;IAEA,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6CAA6C;AAC7C,4EAA4E;AAC5E,yEAAyE;AACzE,KAAK,UAAU,kBAAkB,CAAC,EAChC,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,OAAO,EACP,YAAY,GAOb;IACC,MAAM,EAAC,kBAAkB,EAAC,GAAG,OAAO,CAAC;IACrC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC;YACb,WAAW;YACX,QAAQ;YACR,OAAO;YACP,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAED,oEAAoE;IACpE,mBAAmB;IACnB,6EAA6E;IAC7E,yEAAyE;IACzE,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAE1B,0EAA0E;IAC1E,0DAA0D;IAC1D,kEAAkE;IAClE,4CAA4C;IAC5C,qDAAqD;IACrD,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEnE,MAAM,UAAU,GAAG,kBAAkB,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAErD,0EAA0E;IAC1E,6CAA6C;IAC7C,4EAA4E;IAC5E,sEAAsE;IACtE,sEAAsE;IACtE,2CAA2C;IAC3C,kFAAkF;IAClF,wDAAwD;IACxD,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,OAAO,CAAC;YACtB,WAAW;YACX,QAAQ;YACR,OAAO;YACP,YAAY;SACb,CAAC,CAAC;QACH,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;YACpD,gBAAgB,EAAE,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,GAAG,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACjD,CAAC,CAAC;YACF,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAC/B,OAAO;gBACP,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;QACL,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,4EAA4E;SACvE,IAAI,YAAY,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,UAAU,EAAE,CAAC;YACf,gBAAgB,EAAE,CAAC;YACnB,OAAO,UAAU,CAAC,OAAO,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAC,GAAG,OAAO,CAAC,aAAa,EAAU,CAAC;YACnE,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAC,CAAC,CAAC;YAC7D,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAEM,KAAK,oBAEV,WAAmB;IAEnB,MAAM,YAAY,GAAG,IAAA,oCAA4B,EAAC,IAAI,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAY,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3C,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;YACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,YAAY;YAC3B,WAAW;YACX,OAAO;YACP,YAAY;SACb,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC,KAAc,CAAC,CAAC;IAClC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
package/lib/options.d.ts CHANGED
@@ -28,8 +28,9 @@ export type Options = Partial<MDXOptions> & {
28
28
  resolveMarkdownLink?: ResolveMarkdownLink;
29
29
  remarkMdxOptions?: RemarkMdxOptions;
30
30
  processors?: SimpleProcessors;
31
- crossCompilerCache?: Map<string, CrossCompilerCacheEntry>;
31
+ getCrossCompilerCache?: () => CrossCompilerCache;
32
32
  };
33
+ export type CrossCompilerCache = Map<string, CrossCompilerCacheEntry>;
33
34
  type CrossCompilerCacheEntry = PromiseWithResolvers<string>;
34
35
  export {};
35
36
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,YAAY,CAAC;AAE5D,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG;IAC1C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,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,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAC,CAAC;KACvC,KAAK;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;IAC/B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAG1C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAGpC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CAC3D,CAAC;AAEF,KAAK,uBAAuB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAC,OAAO,IAAI,gBAAgB,EAAC,MAAM,YAAY,CAAC;AAE5D,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG;IAC1C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,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,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,YAAY,CAAC,EAAE,CAAC,QAAQ,EAAE;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE;YAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAC,CAAC;KACvC,KAAK;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;IAC/B,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAG1C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAGpC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAK9B,qBAAqB,CAAC,EAAE,MAAM,kBAAkB,CAAC;CAClD,CAAC;AAGF,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AAEtE,KAAK,uBAAuB,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyBH,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAO5D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAEvC,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,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;AAOlC,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;AA2KF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,eAAe,CAAC;IAC7B,YAAY,EAAE,eAAe,CAAC;CAC/B,CAAC;AAMF,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,GACR,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;CAClB,GAAG,gBAAgB,CAWnB;AAgBD,wBAAgB,YAAY,CAAC,EAC3B,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,eAAe,CAWlB"}
1
+ {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0BH,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAO5D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAEvC,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,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;AAOlC,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;AA6KF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,WAAW,EAAE,eAAe,CAAC;IAC7B,YAAY,EAAE,eAAe,CAAC;CAC/B,CAAC;AAMF,wBAAgB,gBAAgB,CAAC,EAC/B,OAAO,GACR,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;CAClB,GAAG,gBAAgB,CAWnB;AAgBD,wBAAgB,YAAY,CAAC,EAC3B,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,eAAe,CAWlB"}
package/lib/processor.js CHANGED
@@ -29,6 +29,7 @@ const details_1 = tslib_1.__importDefault(require("./remark/details"));
29
29
  const head_1 = tslib_1.__importDefault(require("./remark/head"));
30
30
  const mermaid_1 = tslib_1.__importDefault(require("./remark/mermaid"));
31
31
  const admonitions_1 = tslib_1.__importDefault(require("./remark/admonitions"));
32
+ const admonitionTitle_1 = tslib_1.__importDefault(require("./rehype/admonitionTitle"));
32
33
  const unusedDirectives_1 = tslib_1.__importDefault(require("./remark/unusedDirectives"));
33
34
  const codeCompatPlugin_1 = tslib_1.__importDefault(require("./remark/mdx1Compat/codeCompatPlugin"));
34
35
  const format_1 = require("./format");
@@ -122,6 +123,8 @@ function createProcessorUncached({ options, format, }) {
122
123
  const rehypePlugins = [
123
124
  ...(options.beforeDefaultRehypePlugins ?? []),
124
125
  ...(options.rehypePlugins ?? []),
126
+ // Runs after user plugins, so that they can process admonition titles
127
+ ...(options.admonitions ? [admonitionTitle_1.default] : []),
125
128
  ];
126
129
  // Maybe we'll want to introduce default recma plugins later?
127
130
  // For example https://github.com/domdomegg/recma-mdx-displayname ?
@@ -1 +1 @@
1
- {"version":3,"file":"processor.js","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processor.js","sourceRoot":"","sources":["../src/processor.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAEH,qCAAkE;AAClE,oFAA6C;AAC7C,oEAAmC;AACnC,oEAA6B;AAC7B,qFAAqF;AACrF,qFAAoD;AACpD,gFAAyC;AACzC,oEAAmC;AACnC,iCAA4B;AAC5B,wEAAiC;AACjC,yEAAyC;AACzC,iFAAiD;AACjD,+DAA+B;AAC/B,qFAAqD;AACrD,qFAAqD;AACrD,iGAAiE;AACjE,uEAAuC;AACvC,iEAAiC;AACjC,uEAAuC;AACvC,+EAAwD;AACxD,uFAAuD;AACvD,yFAAyD;AACzD,oGAAoE;AACpE,qCAAmC;AAkCnC,6EAA6E;AAC7E,MAAM,uBAAuB,GAAqB;IAChD,YAAY,EAAE,EAAC,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAC;CACxD,CAAC;AAWF,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,SAAS,uBAAuB,CAAC,EAAC,OAAO,EAAqB;IAC5D,OAAO;QACL;YACE,kBAAQ;YACR,EAAC,mBAAmB,EAAE,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,EAAC;SACnE;QACD,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,aAAG;KACJ,CAAC;AACJ,CAAC;AAED,+DAA+D;AAC/D,gDAAgD;AAChD,4EAA4E;AAC5E,oEAAoE;AACpE,6EAA6E;AAC7E,SAAS,mBAAmB,CAAC,EAC3B,OAAO,EACP,MAAM,GAIP;IACC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,CAAC,CAAC,oBAAS,EAAE,OAAO,CAAC,gBAAgB,IAAI,uBAAuB,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,4CAA4C;AAC5C,gEAAgE;AAChE,SAAS,uBAAuB,CAAC,EAC/B,OAAO,EACP,MAAM,GAIP;IACC,MAAM,aAAa,GAAgB;QACjC,GAAG,mBAAmB,CAAC,EAAC,OAAO,EAAE,MAAM,EAAC,CAAC;QACzC,GAAG,CAAC,OAAO,CAAC,0BAA0B,IAAI,EAAE,CAAC;QAC7C,4BAAW;QACX,0BAAS;QACT,CAAC,sBAAY,EAAE,EAAC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAC,CAAC;QAChE,GAAG,qBAAqB,CAAC,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;QACtD,GAAG,uBAAuB,CAAC,EAAC,OAAO,EAAC,CAAC;QACrC,iBAAO;QACP,cAAI;QACJ,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iBAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD;YACE,wBAAc;YACd;gBACE,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,sBAAsB,EACpB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,sBAAsB;aACtB;SAClC;QACD,uCAAuC;QACvC,OAAO,CAAC,mBAAmB;YACzB,CAAC,CAAC;gBACE,8BAAoB;gBACpB;oBACE,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;oBAChD,qBAAqB,EACnB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,qBAAqB;iBACf;aACxC;YACH,CAAC,CAAC,SAAS;QACb;YACE,wBAAc;YACd;gBACE,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,qBAAqB,EACnB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,qBAAqB;aACrB;SAClC;QACD,oBAAG;QACH,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAa,CAAC,CAAC,CAAC,IAAI;QACjE,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAChC;YACE,0BAAgB;YAChB;gBACE,0BAA0B,EACxB,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,0BAA0B;aACxB;SACpC;KACF,CAAC,MAAM,CAAC,CAAC,MAAM,EAAuB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3D,wEAAwE;IACxE,+BAA+B;IAC/B,aAAa,CAAC,IAAI,CAAC,0BAAgB,CAAC,CAAC;IAErC,MAAM,aAAa,GAAgB;QACjC,GAAG,CAAC,OAAO,CAAC,0BAA0B,IAAI,EAAE,CAAC;QAC7C,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAChC,sEAAsE;QACtE,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,yBAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KAClD,CAAC;IAEF,6DAA6D;IAC7D,mEAAmE;IACnE,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,CAAC;IAEvD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,+DAA+D;QAC/D,uDAAuD;QACvD,sEAAsE;QACtE,MAAM,eAAe,GAAc;YACjC,oBAAS;YACT;gBACE,WAAW,EAAE;oBACX,mBAAmB;oBACnB,mBAAmB;oBACnB,mBAAmB;oBACnB,mBAAmB;oBACnB,UAAU;iBACX;aACF;SACF,CAAC;QACF,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,gBAAgB,GAA+B;QACnD,GAAG,OAAO;QACV,aAAa;QACb,aAAa;QACb,YAAY;QACZ,oBAAoB,EAAE,eAAe;KACtC,CAAC;IAEF,MAAM,YAAY,GAAG,IAAA,qBAAkB,EAAC;QACtC,GAAG,gBAAgB;QACnB,mBAAmB,EAAE,OAAO,CAAC,cAAc,CAAC,mBAAmB;QAC/D,MAAM;KACP,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,KAAK,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAC,EAAE,EAAE;YAChE,MAAM,KAAK,GAAG,IAAI,aAAK,CAAC;gBACtB,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE;oBACJ,WAAW;oBACX,YAAY;iBACb;aACF,CAAC,CAAC;YACH,OAAO,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACnD,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE;gBAC1B,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC,CAAC,CAAC;QACN,CAAC;KACF,CAAC;AACJ,CAAC;AAQD,6DAA6D;AAC7D,uCAAuC;AACvC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAsC,CAAC;AAEtE,0BAAiC,EAC/B,OAAO,GAGR;IACC,OAAO;QACL,WAAW,EAAE,uBAAuB,CAAC;YACnC,OAAO;YACP,MAAM,EAAE,IAAI;SACb,CAAC;QACF,YAAY,EAAE,uBAAuB,CAAC;YACpC,OAAO;YACP,MAAM,EAAE,KAAK;SACd,CAAC;KACH,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,EAClC,OAAO,GAGR;IACC,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,EAAC,OAAO,EAAC,CAAC,CAAC;IAC/C,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACzC,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,sBAA6B,EAC3B,QAAQ,EACR,cAAc,EACd,OAAO,GAKR;IACC,MAAM,UAAU,GACd,OAAO,CAAC,UAAU,IAAI,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,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC;AAC5E,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import type { Root } from 'hast';
8
+ import type { Plugin } from 'unified';
9
+ declare const plugin: Plugin<[], Root>;
10
+ export default plugin;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rehype/admonitionTitle/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAiB,IAAI,EAAC,MAAM,MAAM,CAAC;AAE/C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,SAAS,CAAC;AAKpC,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAc5B,CAAC;eAEa,MAAM"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) Facebook, Inc. and its affiliates.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const unist_util_visit_1 = require("unist-util-visit");
10
+ const hast_util_to_estree_1 = require("hast-util-to-estree");
11
+ // Moves the rich title fragment created by the admonitions Remark plugin to
12
+ // the title prop: <admonition title={<>rich title</>}>
13
+ // It must run after the user Rehype plugins, so that they can process titles
14
+ const plugin = function plugin() {
15
+ return (root) => {
16
+ (0, unist_util_visit_1.visit)(root, 'mdxJsxFlowElement', (node) => {
17
+ if (node.name !== 'admonition') {
18
+ return;
19
+ }
20
+ const titleIndex = node.children.findIndex(isRichTitle);
21
+ if (titleIndex === -1) {
22
+ return;
23
+ }
24
+ const [title] = node.children.splice(titleIndex, 1);
25
+ node.attributes.push(createTitleAttribute(title));
26
+ });
27
+ };
28
+ };
29
+ exports.default = plugin;
30
+ function isRichTitle(node) {
31
+ return (node.type === 'mdxJsxTextElement' && node.data?.admonitionTitle === true);
32
+ }
33
+ function createTitleAttribute(title) {
34
+ return {
35
+ type: 'mdxJsxAttribute',
36
+ name: 'title',
37
+ value: {
38
+ type: 'mdxJsxAttributeValueExpression',
39
+ // MDX only compiles the estree, the source code is not needed
40
+ value: '',
41
+ data: { estree: (0, hast_util_to_estree_1.toEstree)(title) },
42
+ },
43
+ };
44
+ }
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rehype/admonitionTitle/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,uDAAuC;AACvC,6DAA6C;AAK7C,4EAA4E;AAC5E,uDAAuD;AACvD,6EAA6E;AAC7E,MAAM,MAAM,GAAqB,SAAS,MAAM;IAC9C,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,IAAA,wBAAK,EAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE;YACxC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC/B,OAAO;YACT,CAAC;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACxD,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;gBACtB,OAAO;YACT,CAAC;YACD,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAM,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;kBAEa,MAAM;AAErB,SAAS,WAAW,CAAC,IAAoB;IACvC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,mBAAmB,IAAI,IAAI,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CACzE,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAqB;IACjD,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,OAAO;QACb,KAAK,EAAE;YACL,IAAI,EAAE,gCAAgC;YACtC,8DAA8D;YAC9D,KAAK,EAAE,EAAE;YACT,IAAI,EAAE,EAAC,MAAM,EAAE,IAAA,8BAAQ,EAAC,KAAK,CAAC,EAAC;SAChC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/admonitions/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAc,MAAM,EAAC,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAS,IAAI,EAAC,MAAM,OAAO,CAAC;AAExC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,iBAGtC,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,GACjD,iBAAiB,CAiBnB;AA6BD,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAwDtD,CAAC;eAEa,MAAM"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/admonitions/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAc,MAAM,EAAC,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAY,IAAI,EAAC,MAAM,OAAO,CAAC;AAG3C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,iBAGtC,CAAC;AAEF,wBAAgB,0BAA0B,CACxC,eAAe,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,GACjD,iBAAiB,CAiBnB;AA6BD,QAAA,MAAM,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,CA6DtD,CAAC;eAEa,MAAM"}
@@ -9,6 +9,7 @@ exports.normalizeAdmonitionOptions = normalizeAdmonitionOptions;
9
9
  * LICENSE file in the root directory of this source tree.
10
10
  */
11
11
  const unist_util_visit_1 = require("unist-util-visit");
12
+ const utils_1 = require("../utils");
12
13
  exports.DefaultAdmonitionOptions = {
13
14
  keywords: ['note', 'tip', 'info', 'warning', 'danger'],
14
15
  extendDefaults: true,
@@ -58,37 +59,41 @@ const plugin = function plugin(optionsInput = {}) {
58
59
  const { directiveLabel, contentNodes } = parseDirective(node);
59
60
  const textOnlyTitle = node.attributes?.title ??
60
61
  (directiveLabel ? getTextOnlyTitle(directiveLabel) : undefined);
61
- // Transform the mdast directive node to a hast admonition node
62
- // See https://github.com/syntax-tree/mdast-util-to-hast#fields-on-nodes
63
- // TODO in MDX v2 we should transform the whole directive to
64
- // mdxJsxFlowElement instead of using hast
65
- node.data = {
66
- hName: 'admonition',
67
- hProperties: {
68
- ...(textOnlyTitle && { title: textOnlyTitle }),
69
- ...(node.attributes?.class && {
70
- className: node.attributes.class.split(' '),
71
- }),
72
- ...(node.attributes?.id && { id: node.attributes.id }),
73
- type: node.name,
74
- },
62
+ // Transform the mdast directive node to an <admonition> JSX element
63
+ // Lowercase on purpose: like Markdown elements, it is provided by
64
+ // MDXComponents, and can't be shadowed by an MDX file import
65
+ const properties = {
66
+ ...(textOnlyTitle && { title: textOnlyTitle }),
67
+ ...(node.attributes?.class && { className: node.attributes.class }),
68
+ ...(node.attributes?.id && { id: node.attributes.id }),
69
+ type: node.name,
75
70
  };
76
- node.children = contentNodes;
77
- // TODO legacy MDX v1 <mdxAdmonitionTitle> workaround
78
- // v1: not possible to inject complex JSX elements as props
79
- // v2: now possible: use a mdxJsxFlowElement element
80
- if (directiveLabel && !textOnlyTitle) {
71
+ const admonition = {
72
+ type: 'mdxJsxFlowElement',
73
+ name: 'admonition',
74
+ attributes: Object.entries(properties).map(([name, value]) => ({
75
+ type: 'mdxJsxAttribute',
76
+ name,
77
+ value,
78
+ })),
79
+ children: contentNodes,
80
+ position: node.position,
81
+ };
82
+ // Rich titles stay in the tree as a JSX fragment, so that other
83
+ // Remark/Rehype plugins can process them (links, images, emojis...)
84
+ // The admonitionTitle Rehype plugin moves them to the title prop
85
+ if (directiveLabel?.children.length && !textOnlyTitle) {
81
86
  const complexTitleNode = {
82
- type: 'mdxAdmonitionTitle',
83
- data: {
84
- hName: 'mdxAdmonitionTitle',
85
- hProperties: {},
86
- },
87
+ type: 'mdxJsxTextElement',
88
+ name: null,
89
+ attributes: [],
90
+ data: { admonitionTitle: true },
87
91
  children: directiveLabel.children,
88
92
  };
89
- // @ts-expect-error: invented node type
90
- node.children.unshift(complexTitleNode);
93
+ // @ts-expect-error: MDX accepts inline JSX here, mdast types don't
94
+ admonition.children.unshift(complexTitleNode);
91
95
  }
96
+ (0, utils_1.transformNode)(node, admonition);
92
97
  }
93
98
  });
94
99
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/admonitions/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/admonitions/index.ts"],"names":[],"mappings":";;;;AAAA;;;;;GAKG;AACH,uDAAuC;AACvC,oCAAuC;AAW1B,QAAA,wBAAwB,GAAsB;IACzD,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IACtD,cAAc,EAAE,IAAI;CACrB,CAAC;AAEF,oCACE,eAAkD;IAElD,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,QAAA,wBAAwB,CAAC;IAClC,CAAC;IAED,MAAM,OAAO,GAAG,EAAC,GAAG,QAAA,wBAAwB,EAAE,GAAG,eAAe,EAAC,CAAC;IAElE,wEAAwE;IACxE,qEAAqE;IACrE,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,OAAO,CAAC,QAAQ,GAAG;YACjB,GAAG,QAAA,wBAAwB,CAAC,QAAQ;YACpC,GAAG,OAAO,CAAC,QAAQ;SACpB,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAKD,SAAS,cAAc,CAAC,SAA6B;IAInD,MAAM,iBAAiB;IACrB,yBAAyB;IACzB,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzD,IAAI,iBAAiB,EAAE,CAAC;QACtB,MAAM,CAAC,cAAc,EAAE,GAAG,YAAY,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC;QAC7D,OAAO,EAAC,cAAc,EAAE,cAAgC,EAAE,YAAY,EAAC,CAAC;IAC1E,CAAC;IACD,OAAO,EAAC,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,QAAQ,EAAC,CAAC;AACvE,CAAC;AAED,SAAS,gBAAgB,CAAC,cAA8B;IACtD,MAAM,eAAe,GACnB,cAAc,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;QACtC,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,MAAM,CAAC;IACjD,OAAO,eAAe;QACpB,CAAC,CAAC,8BAA8B;YAC7B,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,KAAgB;QACjD,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,MAAM,MAAM,GAA+C,SAAS,MAAM,CAExE,YAAY,GAAG,EAAE;IAEjB,MAAM,EAAC,QAAQ,EAAC,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAE5D,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,IAAA,wBAAK,EAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;YACnB,IAAI,IAAI,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBACvC,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAElD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,OAAO;gBACT,CAAC;gBAED,MAAM,EAAC,cAAc,EAAE,YAAY,EAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;gBAE5D,MAAM,aAAa,GACjB,IAAI,CAAC,UAAU,EAAE,KAAK;oBACtB,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAElE,oEAAoE;gBACpE,kEAAkE;gBAClE,6DAA6D;gBAC7D,MAAM,UAAU,GAAG;oBACjB,GAAG,CAAC,aAAa,IAAI,EAAC,KAAK,EAAE,aAAa,EAAC,CAAC;oBAC5C,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAC,CAAC;oBACjE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAC,CAAC;oBACpD,IAAI,EAAE,IAAI,CAAC,IAAI;iBAChB,CAAC;gBACF,MAAM,UAAU,GAAsB;oBACpC,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,YAAY;oBAClB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC7D,IAAI,EAAE,iBAAiB;wBACvB,IAAI;wBACJ,KAAK;qBACN,CAAC,CAAC;oBACH,QAAQ,EAAE,YAAY;oBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC;gBAEF,gEAAgE;gBAChE,oEAAoE;gBACpE,iEAAiE;gBACjE,IAAI,cAAc,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;oBACtD,MAAM,gBAAgB,GAAsB;wBAC1C,IAAI,EAAE,mBAAmB;wBACzB,IAAI,EAAE,IAAI;wBACV,UAAU,EAAE,EAAE;wBACd,IAAI,EAAE,EAAC,eAAe,EAAE,IAAI,EAAC;wBAC7B,QAAQ,EAAE,cAAc,CAAC,QAAQ;qBAClC,CAAC;oBACF,mEAAmE;oBACnE,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;gBAChD,CAAC;gBAED,IAAA,qBAAa,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAClC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;kBAEa,MAAM"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docusaurus/mdx-loader",
3
- "version": "4.0.0-canary-6980",
3
+ "version": "4.0.0-canary-6985",
4
4
  "description": "Docusaurus Loader for MDX",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -14,15 +14,16 @@
14
14
  },
15
15
  "license": "MIT",
16
16
  "dependencies": {
17
- "@docusaurus/fs": "4.0.0-canary-6980",
18
- "@docusaurus/logger": "4.0.0-canary-6980",
19
- "@docusaurus/utils": "4.0.0-canary-6980",
20
- "@docusaurus/utils-validation": "4.0.0-canary-6980",
17
+ "@docusaurus/fs": "4.0.0-canary-6985",
18
+ "@docusaurus/logger": "4.0.0-canary-6985",
19
+ "@docusaurus/utils": "4.0.0-canary-6985",
20
+ "@docusaurus/utils-validation": "4.0.0-canary-6985",
21
21
  "@mdx-js/mdx": "^3.1.1",
22
22
  "@slorber/remark-comment": "^1.0.0",
23
23
  "astring": "^1.9.0",
24
24
  "escape-html": "^1.0.3",
25
25
  "estree-util-value-to-estree": "^3.5.0",
26
+ "hast-util-to-estree": "^3.1.3",
26
27
  "image-size": "^2.0.4",
27
28
  "mdast-util-mdx": "^3.0.0",
28
29
  "mdast-util-to-string": "^4.0.0",
@@ -39,10 +40,12 @@
39
40
  "webpack": "^5.111.0"
40
41
  },
41
42
  "devDependencies": {
42
- "@docusaurus/types": "4.0.0-canary-6980",
43
+ "@docusaurus/types": "4.0.0-canary-6985",
43
44
  "@types/escape-html": "^1.0.4",
44
45
  "@types/estree": "^1.0.9",
46
+ "@types/hast": "^3.0.5",
45
47
  "@types/mdast": "^4.0.4",
48
+ "@types/react-dom": "^19.3.0",
46
49
  "@types/unist": "^3.0.3",
47
50
  "lodash": "^4.18.1",
48
51
  "mdast-util-directive": "3.1.0",
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import {createProcessors} from './processor';
9
- import type {Options} from './options';
9
+ import type {CrossCompilerCache, Options} from './options';
10
10
  import type {RuleSetRule, RuleSetUseItem} from 'webpack';
11
11
 
12
12
  // Escape hatch to disable the MDX cross-compiler cache, just in case
@@ -33,9 +33,10 @@ function normalizeOptions(optionsInput: Options): Options {
33
33
  // We only have multiple compilers in production mode (docusaurus build)
34
34
  // TODO wrong but good enough for now (example: "docusaurus build --dev")
35
35
  if (!DisableCrossCompilerCache && process.env.NODE_ENV === 'production') {
36
+ const crossCompilerCache: CrossCompilerCache = new Map();
36
37
  options = {
37
38
  ...options,
38
- crossCompilerCache: new Map(),
39
+ getCrossCompilerCache: () => crossCompilerCache,
39
40
  };
40
41
  }
41
42
 
package/src/loader.ts CHANGED
@@ -121,7 +121,7 @@ async function loadMDXWithCaching({
121
121
  options: Options;
122
122
  compilerName: WebpackCompilerName;
123
123
  }): Promise<string> {
124
- const {crossCompilerCache} = options;
124
+ const crossCompilerCache = options.getCrossCompilerCache?.();
125
125
  if (!crossCompilerCache) {
126
126
  return loadMDX({
127
127
  fileContent,
@@ -144,7 +144,7 @@ async function loadMDXWithCaching({
144
144
  // But we could eventually use WeakRef for the values
145
145
  const deleteCacheEntry = () => crossCompilerCache.delete(cacheKey);
146
146
 
147
- const cacheEntry = crossCompilerCache?.get(cacheKey);
147
+ const cacheEntry = crossCompilerCache.get(cacheKey);
148
148
 
149
149
  // When deduplicating client/server compilations, we always use the client
150
150
  // compilation and not the server compilation
package/src/options.ts CHANGED
@@ -31,7 +31,14 @@ export type Options = Partial<MDXOptions> & {
31
31
 
32
32
  // Will usually be created by "createMDXLoaderItem"
33
33
  processors?: SimpleProcessors;
34
- crossCompilerCache?: Map<string, CrossCompilerCacheEntry>; // MDX => Promise<JSX> cache
34
+ // We pass a getter function instead of the cache Map itself because some
35
+ // tools deep-clone the loader options (Rsdoctor v1 for example)
36
+ // Cloning a Map would break the cache shared by client/server compilers
37
+ // Functions are not cloned, so the getter keeps returning the shared Map
38
+ getCrossCompilerCache?: () => CrossCompilerCache;
35
39
  };
36
40
 
41
+ // MDX => Promise<JSX> cache
42
+ export type CrossCompilerCache = Map<string, CrossCompilerCacheEntry>;
43
+
37
44
  type CrossCompilerCacheEntry = PromiseWithResolvers<string>;
package/src/processor.ts CHANGED
@@ -25,6 +25,7 @@ import details from './remark/details';
25
25
  import head from './remark/head';
26
26
  import mermaid from './remark/mermaid';
27
27
  import transformAdmonitions from './remark/admonitions';
28
+ import admonitionTitle from './rehype/admonitionTitle';
28
29
  import unusedDirectives from './remark/unusedDirectives';
29
30
  import codeCompatPlugin from './remark/mdx1Compat/codeCompatPlugin';
30
31
  import {getFormat} from './format';
@@ -186,6 +187,8 @@ function createProcessorUncached({
186
187
  const rehypePlugins: MDXPlugin[] = [
187
188
  ...(options.beforeDefaultRehypePlugins ?? []),
188
189
  ...(options.rehypePlugins ?? []),
190
+ // Runs after user plugins, so that they can process admonition titles
191
+ ...(options.admonitions ? [admonitionTitle] : []),
189
192
  ];
190
193
 
191
194
  // Maybe we'll want to introduce default recma plugins later?
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Copyright (c) Facebook, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import {visit} from 'unist-util-visit';
9
+ import {toEstree} from 'hast-util-to-estree';
10
+ import type {ElementContent, Root} from 'hast';
11
+ import type {MdxJsxAttribute} from 'mdast-util-mdx';
12
+ import type {Plugin} from 'unified';
13
+
14
+ // Moves the rich title fragment created by the admonitions Remark plugin to
15
+ // the title prop: <admonition title={<>rich title</>}>
16
+ // It must run after the user Rehype plugins, so that they can process titles
17
+ const plugin: Plugin<[], Root> = function plugin() {
18
+ return (root) => {
19
+ visit(root, 'mdxJsxFlowElement', (node) => {
20
+ if (node.name !== 'admonition') {
21
+ return;
22
+ }
23
+ const titleIndex = node.children.findIndex(isRichTitle);
24
+ if (titleIndex === -1) {
25
+ return;
26
+ }
27
+ const [title] = node.children.splice(titleIndex, 1);
28
+ node.attributes.push(createTitleAttribute(title!));
29
+ });
30
+ };
31
+ };
32
+
33
+ export default plugin;
34
+
35
+ function isRichTitle(node: ElementContent): boolean {
36
+ return (
37
+ node.type === 'mdxJsxTextElement' && node.data?.admonitionTitle === true
38
+ );
39
+ }
40
+
41
+ function createTitleAttribute(title: ElementContent): MdxJsxAttribute {
42
+ return {
43
+ type: 'mdxJsxAttribute',
44
+ name: 'title',
45
+ value: {
46
+ type: 'mdxJsxAttributeValueExpression',
47
+ // MDX only compiles the estree, the source code is not needed
48
+ value: '',
49
+ data: {estree: toEstree(title)},
50
+ },
51
+ };
52
+ }
@@ -5,9 +5,11 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import {visit} from 'unist-util-visit';
8
+ import {transformNode} from '../utils';
8
9
  import type {Transformer, Plugin} from 'unified';
9
10
  import type {ContainerDirective} from 'mdast-util-directive';
10
- import type {Parent, Root} from 'mdast';
11
+ import type {Paragraph, Root} from 'mdast';
12
+ import type {MdxJsxFlowElement, MdxJsxTextElement} from 'mdast-util-mdx';
11
13
 
12
14
  export type AdmonitionOptions = {
13
15
  keywords: string[];
@@ -40,7 +42,7 @@ export function normalizeAdmonitionOptions(
40
42
  return options;
41
43
  }
42
44
 
43
- type DirectiveLabel = Parent;
45
+ type DirectiveLabel = Paragraph;
44
46
  type DirectiveContent = ContainerDirective['children'];
45
47
 
46
48
  function parseDirective(directive: ContainerDirective): {
@@ -88,38 +90,43 @@ const plugin: Plugin<Partial<AdmonitionOptions>[], Root> = function plugin(
88
90
  node.attributes?.title ??
89
91
  (directiveLabel ? getTextOnlyTitle(directiveLabel) : undefined);
90
92
 
91
- // Transform the mdast directive node to a hast admonition node
92
- // See https://github.com/syntax-tree/mdast-util-to-hast#fields-on-nodes
93
- // TODO in MDX v2 we should transform the whole directive to
94
- // mdxJsxFlowElement instead of using hast
95
- node.data = {
96
- hName: 'admonition',
97
- hProperties: {
98
- ...(textOnlyTitle && {title: textOnlyTitle}),
99
- ...(node.attributes?.class && {
100
- className: node.attributes.class.split(' '),
101
- }),
102
- ...(node.attributes?.id && {id: node.attributes.id}),
103
- type: node.name,
104
- },
93
+ // Transform the mdast directive node to an <admonition> JSX element
94
+ // Lowercase on purpose: like Markdown elements, it is provided by
95
+ // MDXComponents, and can't be shadowed by an MDX file import
96
+ const properties = {
97
+ ...(textOnlyTitle && {title: textOnlyTitle}),
98
+ ...(node.attributes?.class && {className: node.attributes.class}),
99
+ ...(node.attributes?.id && {id: node.attributes.id}),
100
+ type: node.name,
105
101
  };
106
- node.children = contentNodes;
107
-
108
- // TODO legacy MDX v1 <mdxAdmonitionTitle> workaround
109
- // v1: not possible to inject complex JSX elements as props
110
- // v2: now possible: use a mdxJsxFlowElement element
111
- if (directiveLabel && !textOnlyTitle) {
112
- const complexTitleNode = {
113
- type: 'mdxAdmonitionTitle',
114
- data: {
115
- hName: 'mdxAdmonitionTitle',
116
- hProperties: {},
117
- },
102
+ const admonition: MdxJsxFlowElement = {
103
+ type: 'mdxJsxFlowElement',
104
+ name: 'admonition',
105
+ attributes: Object.entries(properties).map(([name, value]) => ({
106
+ type: 'mdxJsxAttribute',
107
+ name,
108
+ value,
109
+ })),
110
+ children: contentNodes,
111
+ position: node.position,
112
+ };
113
+
114
+ // Rich titles stay in the tree as a JSX fragment, so that other
115
+ // Remark/Rehype plugins can process them (links, images, emojis...)
116
+ // The admonitionTitle Rehype plugin moves them to the title prop
117
+ if (directiveLabel?.children.length && !textOnlyTitle) {
118
+ const complexTitleNode: MdxJsxTextElement = {
119
+ type: 'mdxJsxTextElement',
120
+ name: null,
121
+ attributes: [],
122
+ data: {admonitionTitle: true},
118
123
  children: directiveLabel.children,
119
124
  };
120
- // @ts-expect-error: invented node type
121
- node.children.unshift(complexTitleNode);
125
+ // @ts-expect-error: MDX accepts inline JSX here, mdast types don't
126
+ admonition.children.unshift(complexTitleNode);
122
127
  }
128
+
129
+ transformNode(node, admonition);
123
130
  }
124
131
  });
125
132
  };
package/src/types.d.mts CHANGED
@@ -22,6 +22,7 @@ declare module 'vfile' {
22
22
 
23
23
  declare module 'unist' {
24
24
  interface Data {
25
+ admonitionTitle?: boolean;
25
26
  hName?: string;
26
27
  hProperties?: Record<string, unknown>;
27
28
  }