@docusaurus/mdx-loader 2.1.0 → 2.3.0

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 CHANGED
@@ -4,6 +4,7 @@
4
4
  * This source code is licensed under the MIT license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
+ import type { MarkdownConfig } from '@docusaurus/types';
7
8
  import type { LoaderContext } from 'webpack';
8
9
  import type { Plugin } from 'unified';
9
10
  import type { AdmonitionOptions } from './remark/admonitions';
@@ -19,6 +20,7 @@ export declare type MDXOptions = {
19
20
  beforeDefaultRehypePlugins: MDXPlugin[];
20
21
  };
21
22
  export declare type Options = Partial<MDXOptions> & {
23
+ markdownConfig: MarkdownConfig;
22
24
  staticDirs: string[];
23
25
  siteDir: string;
24
26
  isMDXPartial?: (filePath: string) => boolean;
@@ -35,7 +37,6 @@ export declare type Options = Partial<MDXOptions> & {
35
37
  }) => {
36
38
  [key: string]: unknown;
37
39
  };
38
- filepath: string;
39
40
  };
40
41
  export declare function mdxLoader(this: LoaderContext<Options>, fileString: string): Promise<void>;
41
42
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAY,MAAM,EAAC,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAsB5D,oBAAY,SAAS,GAEnB;IAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IAAE,GAAG;CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;AAEvC,oBAAY,UAAU,GAAG;IACvB,WAAW,EAAE,OAAO,GAAG,iBAAiB,CAAC;IACzC,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,0BAA0B,EAAE,SAAS,EAAE,CAAC;IACxC,0BAA0B,EAAE,SAAS,EAAE,CAAC;CACzC,CAAC;AAEF,oBAAY,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG;IAC1C,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,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AA8EF,wBAAsB,SAAS,CAC7B,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAC5B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CA8Hf"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsBH,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAY,MAAM,EAAC,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAsB5D,oBAAY,SAAS,GAEnB;IAAC,MAAM,CAAC,GAAG,EAAE,CAAC;IAAE,GAAG;CAAC,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;AAEvC,oBAAY,UAAU,GAAG;IACvB,WAAW,EAAE,OAAO,GAAG,iBAAiB,CAAC;IACzC,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,aAAa,EAAE,SAAS,EAAE,CAAC;IAC3B,0BAA0B,EAAE,SAAS,EAAE,CAAC;IACxC,0BAA0B,EAAE,SAAS,EAAE,CAAC;CACzC,CAAC;AAEF,oBAAY,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;CAChC,CAAC;AA8EF,wBAAsB,SAAS,CAC7B,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,EAC5B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CA+Hf"}
package/lib/loader.js CHANGED
@@ -19,6 +19,7 @@ const toc_1 = tslib_1.__importDefault(require("./remark/toc"));
19
19
  const unwrapMdxCodeBlocks_1 = tslib_1.__importDefault(require("./remark/unwrapMdxCodeBlocks"));
20
20
  const transformImage_1 = tslib_1.__importDefault(require("./remark/transformImage"));
21
21
  const transformLinks_1 = tslib_1.__importDefault(require("./remark/transformLinks"));
22
+ const mermaid_1 = tslib_1.__importDefault(require("./remark/mermaid"));
22
23
  const admonitions_1 = tslib_1.__importDefault(require("./remark/admonitions"));
23
24
  const { loaders: { inlineMarkdownImageFileLoader }, } = (0, utils_1.getFileLoaderUtils)();
24
25
  const pragma = `
@@ -111,6 +112,7 @@ async function mdxLoader(fileString) {
111
112
  ...(reqOptions.beforeDefaultRemarkPlugins ?? []),
112
113
  ...getAdmonitionsPlugins(reqOptions.admonitions ?? false),
113
114
  ...DEFAULT_OPTIONS.remarkPlugins,
115
+ ...(reqOptions.markdownConfig.mermaid ? [mermaid_1.default] : []),
114
116
  [
115
117
  transformImage_1.default,
116
118
  {
package/lib/loader.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.ts"],"names":[],"mappings":"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"}
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/admonitions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAyB,MAAM,EAAC,MAAM,SAAS,CAAC;AAK5D,oBAAY,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,iBAatC,CAAC;AAgBF,QAAA,MAAM,MAAM,EAAE,MAwIb,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/admonitions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAyB,MAAM,EAAC,MAAM,SAAS,CAAC;AAK5D,oBAAY,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,iBAatC,CAAC;AAgBF,QAAA,MAAM,MAAM,EAAE,MA4Kb,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -36,9 +36,13 @@ const admonitionNodeType = 'admonitionHTML';
36
36
  const plugin = function plugin(optionsInput = {}) {
37
37
  const options = normalizeOptions(optionsInput);
38
38
  const keywords = Object.values(options.keywords).map(escapeRegExp).join('|');
39
+ const nestingChar = escapeRegExp(options.tag.slice(0, 1));
39
40
  const tag = escapeRegExp(options.tag);
40
- const regex = new RegExp(`${tag}(${keywords})(?: *(.*))?\n`);
41
- const escapeTag = new RegExp(escapeRegExp(`\\${options.tag}`), 'g');
41
+ // resolve th nesting level of an opening tag
42
+ // ::: -> 0, :::: -> 1, ::::: -> 2 ...
43
+ const nestingLevelRegex = new RegExp(`^${tag}(?<nestingLevel>${nestingChar}*)`);
44
+ const regex = new RegExp(`${tag}${nestingChar}*(${keywords})(?: *(.*))?\n`);
45
+ const escapeTag = new RegExp(escapeRegExp(`\\${options.tag}${options.tag.slice(0, 1)}*`), 'g');
42
46
  // The tokenizer is called on blocks to determine if there is an admonition
43
47
  // present and create tags for it
44
48
  function blockTokenizer(eat, value, silent) {
@@ -55,6 +59,10 @@ const plugin = function plugin(optionsInput = {}) {
55
59
  const [opening, keyword, title] = match;
56
60
  const food = [];
57
61
  const content = [];
62
+ // get the nesting level of the opening tag
63
+ const openingLevel = nestingLevelRegex.exec(opening).groups.nestingLevel.length;
64
+ // used as a stack to keep track of nested admonitions
65
+ const nestingLevels = [openingLevel];
58
66
  let newValue = value;
59
67
  // consume lines until a closing tag
60
68
  let idx = newValue.indexOf(NEWLINE);
@@ -64,12 +72,33 @@ const plugin = function plugin(optionsInput = {}) {
64
72
  const line = next !== -1 ? newValue.slice(idx + 1, next) : newValue.slice(idx + 1);
65
73
  food.push(line);
66
74
  newValue = newValue.slice(idx + 1);
67
- // the closing tag is NOT part of the content
68
- if (line.startsWith(options.tag)) {
69
- break;
75
+ const nesting = nestingLevelRegex.exec(line);
76
+ idx = newValue.indexOf(NEWLINE);
77
+ if (!nesting) {
78
+ content.push(line);
79
+ continue;
80
+ }
81
+ const tagLevel = nesting.groups.nestingLevel.length;
82
+ // first level
83
+ if (nestingLevels.length === 0) {
84
+ nestingLevels.push(tagLevel);
85
+ content.push(line);
86
+ continue;
87
+ }
88
+ const currentLevel = nestingLevels[nestingLevels.length - 1];
89
+ if (tagLevel < currentLevel) {
90
+ // entering a nested admonition block
91
+ nestingLevels.push(tagLevel);
92
+ }
93
+ else if (tagLevel === currentLevel) {
94
+ // closing a nested admonition block
95
+ nestingLevels.pop();
96
+ // the closing tag is NOT part of the content
97
+ if (nestingLevels.length === 0) {
98
+ break;
99
+ }
70
100
  }
71
101
  content.push(line);
72
- idx = newValue.indexOf(NEWLINE);
73
102
  }
74
103
  // consume the processed tag and replace escape sequences
75
104
  const contentString = content.join(NEWLINE).replace(escapeTag, options.tag);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/admonitions/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,gFAAqC;AAIrC,MAAM,OAAO,GAAG,IAAI,CAAC;AAOR,QAAA,wBAAwB,GAAsB;IACzD,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE;QACR,WAAW;QACX,MAAM;QACN,SAAS;QACT,QAAQ;QACR,MAAM;QACN,KAAK;QACL,SAAS;QACT,WAAW;QACX,SAAS;KACV;CACF,CAAC;AAEF,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAmC;IAEnC,OAAO,EAAC,GAAG,gCAAwB,EAAE,GAAG,OAAO,EAAC,CAAC;AACnD,CAAC;AAED,yCAAyC;AACzC,2EAA2E;AAC3E,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAE5C,MAAM,MAAM,GAAW,SAAS,MAAM,CAEpC,eAA2C,EAAE;IAE7C,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,QAAQ,gBAAgB,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAEpE,2EAA2E;IAC3E,iCAAiC;IACjC,SAAS,cAAc,CAAY,GAAQ,EAAE,KAAa,EAAE,MAAe;QACzE,gEAAgE;QAChE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QACD,6BAA6B;QAC7B,IAAI,MAAM,EAAE;YACV,OAAO,IAAI,CAAC;SACb;QAED,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,KAIjC,CAAC;QACF,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,EAAE,CAAC;QAEnB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,oCAAoC;QACpC,IAAI,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,GAAG,KAAK,CAAC,CAAC,EAAE;YACjB,4BAA4B;YAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;YAChD,MAAM,IAAI,GACR,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACnC,6CAA6C;YAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAChC,MAAM;aACP;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACjC;QAED,yDAAyD;QACzD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAE9C,kCAAkC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5D,IAAI,EAAE,CAAC;QAEP,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEnD,MAAM,iBAAiB,GACrB,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;QAE3D,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE;gBACJ,mCAAmC;gBACnC,wEAAwE;gBACxE,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE;oBACX,GAAG,CAAC,KAAK,IAAI,iBAAiB,IAAI,EAAC,KAAK,EAAC,CAAC;oBAC1C,IAAI,EAAE,OAAO;iBACd;aACF;YACD,QAAQ,EAAE;gBACR,uEAAuE;gBACvE,kDAAkD;gBAClD,EAAE;gBACF,+DAA+D;gBAC/D,qEAAqE;gBACrE,8DAA8D;gBAC9D,KAAK;oBACH,CAAC,iBAAiB,IAAI;oBACpB,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE;wBACJ,KAAK,EAAE,oBAAoB;wBAC3B,WAAW,EAAE,EAAE;qBAChB;oBACD,QAAQ,EAAE,UAAU;iBACrB;gBACH,GAAG,YAAY;aAChB,CAAC,MAAM,CAAC,OAAO,CAAC;SAClB,CAAC;QAEF,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,mDAAmD;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IACrC,MAAM,CAAC,eAAe,CAAC,UAAU,GAAG,cAAc,CAAC;IACnD,MAAM,CAAC,YAAY,CAAC,MAAM,CACxB,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAC7C,CAAC,EACD,YAAY,CACb,CAAC;IACF,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAC9B,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EACnD,CAAC,EACD,CAAC,YAAY,CAAC,CACf,CAAC;IACF,MAAM,CAAC,aAAa,CAAC,MAAM,CACzB,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAC9C,CAAC,EACD,CAAC,YAAY,CAAC,CACf,CAAC;IACF,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAC/B,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EACpD,CAAC,EACD,CAAC,YAAY,CAAC,CACf,CAAC;IAEF,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,gDAAgD;QAChD,IAAA,0BAAK,EACH,IAAI,EACJ,CAAC,IAAa,EAAmB,EAAE,CAChC,IAA4B,EAAE,IAAI,KAAK,kBAAkB,EAC5D,CAAC,IAAa,EAAE,EAAE;YAChB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;aACzD;QACH,CAAC,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/admonitions/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,gFAAqC;AAIrC,MAAM,OAAO,GAAG,IAAI,CAAC;AAOR,QAAA,wBAAwB,GAAsB;IACzD,GAAG,EAAE,KAAK;IACV,QAAQ,EAAE;QACR,WAAW;QACX,MAAM;QACN,SAAS;QACT,QAAQ;QACR,MAAM;QACN,KAAK;QACL,SAAS;QACT,WAAW;QACX,SAAS;KACV;CACF,CAAC;AAEF,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,gBAAgB,CACvB,OAAmC;IAEnC,OAAO,EAAC,GAAG,gCAAwB,EAAE,GAAG,OAAO,EAAC,CAAC;AACnD,CAAC;AAED,yCAAyC;AACzC,2EAA2E;AAC3E,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAE5C,MAAM,MAAM,GAAW,SAAS,MAAM,CAEpC,eAA2C,EAAE;IAE7C,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEtC,6CAA6C;IAC7C,sCAAsC;IACtC,MAAM,iBAAiB,GAAG,IAAI,MAAM,CAClC,IAAI,GAAG,mBAAmB,WAAW,IAAI,CAC1C,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,GAAG,WAAW,KAAK,QAAQ,gBAAgB,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,IAAI,MAAM,CAC1B,YAAY,CAAC,KAAK,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAC3D,GAAG,CACJ,CAAC;IAEF,2EAA2E;IAC3E,iCAAiC;IACjC,SAAS,cAAc,CAAY,GAAQ,EAAE,KAAa,EAAE,MAAe;QACzE,gEAAgE;QAChE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;YAC/B,OAAO,KAAK,CAAC;SACd;QACD,6BAA6B;QAC7B,IAAI,MAAM,EAAE;YACV,OAAO,IAAI,CAAC;SACb;QAED,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QACtB,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,KAIjC,CAAC;QACF,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,2CAA2C;QAC3C,MAAM,YAAY,GAChB,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC,MAAO,CAAC,YAAa,CAAC,MAAM,CAAC;QAChE,sDAAsD;QACtD,MAAM,aAAa,GAAa,CAAC,YAAY,CAAC,CAAC;QAE/C,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,oCAAoC;QACpC,IAAI,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,GAAG,KAAK,CAAC,CAAC,EAAE;YACjB,4BAA4B;YAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC;YAChD,MAAM,IAAI,GACR,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChB,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,SAAS;aACV;YACD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAO,CAAC,YAAa,CAAC,MAAM,CAAC;YACtD,cAAc;YACd,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC9B,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,SAAS;aACV;YACD,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;YAC9D,IAAI,QAAQ,GAAG,YAAY,EAAE;gBAC3B,qCAAqC;gBACrC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9B;iBAAM,IAAI,QAAQ,KAAK,YAAY,EAAE;gBACpC,oCAAoC;gBACpC,aAAa,CAAC,GAAG,EAAE,CAAC;gBACpB,6CAA6C;gBAC7C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,MAAM;iBACP;aACF;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACpB;QAED,yDAAyD;QACzD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAE9C,kCAAkC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC5D,IAAI,EAAE,CAAC;QAEP,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAEnD,MAAM,iBAAiB,GACrB,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;QAE3D,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE;gBACJ,mCAAmC;gBACnC,wEAAwE;gBACxE,KAAK,EAAE,YAAY;gBACnB,WAAW,EAAE;oBACX,GAAG,CAAC,KAAK,IAAI,iBAAiB,IAAI,EAAC,KAAK,EAAC,CAAC;oBAC1C,IAAI,EAAE,OAAO;iBACd;aACF;YACD,QAAQ,EAAE;gBACR,uEAAuE;gBACvE,kDAAkD;gBAClD,EAAE;gBACF,+DAA+D;gBAC/D,qEAAqE;gBACrE,8DAA8D;gBAC9D,KAAK;oBACH,CAAC,iBAAiB,IAAI;oBACpB,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE;wBACJ,KAAK,EAAE,oBAAoB;wBAC3B,WAAW,EAAE,EAAE;qBAChB;oBACD,QAAQ,EAAE,UAAU;iBACrB;gBACH,GAAG,YAAY;aAChB,CAAC,MAAM,CAAC,OAAO,CAAC;SAClB,CAAC;QAEF,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAED,mDAAmD;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IACrC,MAAM,CAAC,eAAe,CAAC,UAAU,GAAG,cAAc,CAAC;IACnD,MAAM,CAAC,YAAY,CAAC,MAAM,CACxB,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAC7C,CAAC,EACD,YAAY,CACb,CAAC;IACF,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAC9B,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EACnD,CAAC,EACD,CAAC,YAAY,CAAC,CACf,CAAC;IACF,MAAM,CAAC,aAAa,CAAC,MAAM,CACzB,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EAC9C,CAAC,EACD,CAAC,YAAY,CAAC,CACf,CAAC;IACF,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAC/B,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,EACpD,CAAC,EACD,CAAC,YAAY,CAAC,CACf,CAAC;IAEF,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,gDAAgD;QAChD,IAAA,0BAAK,EACH,IAAI,EACJ,CAAC,IAAa,EAAmB,EAAE,CAChC,IAA4B,EAAE,IAAI,KAAK,kBAAkB,EAC5D,CAAC,IAAa,EAAE,EAAE;YAChB,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;aACzD;QACH,CAAC,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,9 @@
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 { Transformer } from 'unified';
8
+ export default function plugin(): Transformer;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/mermaid/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,SAAS,CAAC;AAOzC,MAAM,CAAC,OAAO,UAAU,MAAM,IAAI,WAAW,CAgB5C"}
@@ -0,0 +1,33 @@
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 tslib_1 = require("tslib");
10
+ const unist_util_visit_1 = tslib_1.__importDefault(require("unist-util-visit"));
11
+ // TODO: this plugin shouldn't be in the core MDX loader
12
+ // After we allow plugins to provide Remark/Rehype plugins (see
13
+ // https://github.com/facebook/docusaurus/issues/6370), this should be provided
14
+ // by theme-mermaid itself
15
+ function plugin() {
16
+ return (root) => {
17
+ (0, unist_util_visit_1.default)(root, 'code', (node, index, parent) => {
18
+ if (node.lang === 'mermaid') {
19
+ parent.children.splice(index, 1, {
20
+ type: 'mermaidCodeBlock',
21
+ data: {
22
+ hName: 'mermaid',
23
+ hProperties: {
24
+ value: node.value,
25
+ },
26
+ },
27
+ });
28
+ }
29
+ });
30
+ };
31
+ }
32
+ exports.default = plugin;
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/mermaid/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,gFAAqC;AAIrC,wDAAwD;AACxD,+DAA+D;AAC/D,+EAA+E;AAC/E,0BAA0B;AAC1B,SAAwB,MAAM;IAC5B,OAAO,CAAC,IAAI,EAAE,EAAE;QACd,IAAA,0BAAK,EAAC,IAAI,EAAE,MAAM,EAAE,CAAC,IAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAChD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBAC3B,MAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE;oBAChC,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE;wBACJ,KAAK,EAAE,SAAS;wBAChB,WAAW,EAAE;4BACX,KAAK,EAAE,IAAI,CAAC,KAAK;yBAClB;qBACF;iBACF,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAhBD,yBAgBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docusaurus/mdx-loader",
3
- "version": "2.1.0",
3
+ "version": "2.3.0",
4
4
  "description": "Docusaurus Loader for MDX",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -20,8 +20,8 @@
20
20
  "dependencies": {
21
21
  "@babel/parser": "^7.18.8",
22
22
  "@babel/traverse": "^7.18.8",
23
- "@docusaurus/logger": "2.1.0",
24
- "@docusaurus/utils": "2.1.0",
23
+ "@docusaurus/logger": "2.3.0",
24
+ "@docusaurus/utils": "2.3.0",
25
25
  "@mdx-js/mdx": "^1.6.22",
26
26
  "escape-html": "^1.0.3",
27
27
  "file-loader": "^6.2.0",
@@ -37,7 +37,7 @@
37
37
  "webpack": "^5.73.0"
38
38
  },
39
39
  "devDependencies": {
40
- "@docusaurus/types": "2.1.0",
40
+ "@docusaurus/types": "2.3.0",
41
41
  "@types/escape-html": "^1.0.2",
42
42
  "@types/mdast": "^3.0.10",
43
43
  "@types/stringify-object": "^3.3.1",
@@ -57,5 +57,5 @@
57
57
  "engines": {
58
58
  "node": ">=16.14"
59
59
  },
60
- "gitHead": "be9b0942641184213485eba7fd75ceb0b328d3f4"
60
+ "gitHead": "ad477781bdca6a11fa9c6daef5048bdcec0ee37e"
61
61
  }
package/src/loader.ts CHANGED
@@ -22,8 +22,10 @@ import toc from './remark/toc';
22
22
  import unwrapMdxCodeBlocks from './remark/unwrapMdxCodeBlocks';
23
23
  import transformImage from './remark/transformImage';
24
24
  import transformLinks from './remark/transformLinks';
25
+ import mermaid from './remark/mermaid';
25
26
 
26
27
  import transformAdmonitions from './remark/admonitions';
28
+ import type {MarkdownConfig} from '@docusaurus/types';
27
29
  import type {LoaderContext} from 'webpack';
28
30
  import type {Processor, Plugin} from 'unified';
29
31
  import type {AdmonitionOptions} from './remark/admonitions';
@@ -61,6 +63,7 @@ export type MDXOptions = {
61
63
  };
62
64
 
63
65
  export type Options = Partial<MDXOptions> & {
66
+ markdownConfig: MarkdownConfig;
64
67
  staticDirs: string[];
65
68
  siteDir: string;
66
69
  isMDXPartial?: (filePath: string) => boolean;
@@ -71,7 +74,6 @@ export type Options = Partial<MDXOptions> & {
71
74
  frontMatter: {[key: string]: unknown};
72
75
  metadata: {[key: string]: unknown};
73
76
  }) => {[key: string]: unknown};
74
- filepath: string;
75
77
  };
76
78
 
77
79
  /**
@@ -171,6 +173,7 @@ export async function mdxLoader(
171
173
  ...(reqOptions.beforeDefaultRemarkPlugins ?? []),
172
174
  ...getAdmonitionsPlugins(reqOptions.admonitions ?? false),
173
175
  ...DEFAULT_OPTIONS.remarkPlugins,
176
+ ...(reqOptions.markdownConfig.mermaid ? [mermaid] : []),
174
177
  [
175
178
  transformImage,
176
179
  {
@@ -52,9 +52,20 @@ const plugin: Plugin = function plugin(
52
52
  const options = normalizeOptions(optionsInput);
53
53
 
54
54
  const keywords = Object.values(options.keywords).map(escapeRegExp).join('|');
55
+ const nestingChar = escapeRegExp(options.tag.slice(0, 1));
55
56
  const tag = escapeRegExp(options.tag);
56
- const regex = new RegExp(`${tag}(${keywords})(?: *(.*))?\n`);
57
- const escapeTag = new RegExp(escapeRegExp(`\\${options.tag}`), 'g');
57
+
58
+ // resolve th nesting level of an opening tag
59
+ // ::: -> 0, :::: -> 1, ::::: -> 2 ...
60
+ const nestingLevelRegex = new RegExp(
61
+ `^${tag}(?<nestingLevel>${nestingChar}*)`,
62
+ );
63
+
64
+ const regex = new RegExp(`${tag}${nestingChar}*(${keywords})(?: *(.*))?\n`);
65
+ const escapeTag = new RegExp(
66
+ escapeRegExp(`\\${options.tag}${options.tag.slice(0, 1)}*`),
67
+ 'g',
68
+ );
58
69
 
59
70
  // The tokenizer is called on blocks to determine if there is an admonition
60
71
  // present and create tags for it
@@ -77,6 +88,11 @@ const plugin: Plugin = function plugin(
77
88
  ];
78
89
  const food = [];
79
90
  const content = [];
91
+ // get the nesting level of the opening tag
92
+ const openingLevel =
93
+ nestingLevelRegex.exec(opening)!.groups!.nestingLevel!.length;
94
+ // used as a stack to keep track of nested admonitions
95
+ const nestingLevels: number[] = [openingLevel];
80
96
 
81
97
  let newValue = value;
82
98
  // consume lines until a closing tag
@@ -88,12 +104,32 @@ const plugin: Plugin = function plugin(
88
104
  next !== -1 ? newValue.slice(idx + 1, next) : newValue.slice(idx + 1);
89
105
  food.push(line);
90
106
  newValue = newValue.slice(idx + 1);
91
- // the closing tag is NOT part of the content
92
- if (line.startsWith(options.tag)) {
93
- break;
107
+ const nesting = nestingLevelRegex.exec(line);
108
+ idx = newValue.indexOf(NEWLINE);
109
+ if (!nesting) {
110
+ content.push(line);
111
+ continue;
112
+ }
113
+ const tagLevel = nesting.groups!.nestingLevel!.length;
114
+ // first level
115
+ if (nestingLevels.length === 0) {
116
+ nestingLevels.push(tagLevel);
117
+ content.push(line);
118
+ continue;
119
+ }
120
+ const currentLevel = nestingLevels[nestingLevels.length - 1]!;
121
+ if (tagLevel < currentLevel) {
122
+ // entering a nested admonition block
123
+ nestingLevels.push(tagLevel);
124
+ } else if (tagLevel === currentLevel) {
125
+ // closing a nested admonition block
126
+ nestingLevels.pop();
127
+ // the closing tag is NOT part of the content
128
+ if (nestingLevels.length === 0) {
129
+ break;
130
+ }
94
131
  }
95
132
  content.push(line);
96
- idx = newValue.indexOf(NEWLINE);
97
133
  }
98
134
 
99
135
  // consume the processed tag and replace escape sequences
@@ -0,0 +1,32 @@
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 type {Transformer} from 'unified';
10
+ import type {Code} from 'mdast';
11
+
12
+ // TODO: this plugin shouldn't be in the core MDX loader
13
+ // After we allow plugins to provide Remark/Rehype plugins (see
14
+ // https://github.com/facebook/docusaurus/issues/6370), this should be provided
15
+ // by theme-mermaid itself
16
+ export default function plugin(): Transformer {
17
+ return (root) => {
18
+ visit(root, 'code', (node: Code, index, parent) => {
19
+ if (node.lang === 'mermaid') {
20
+ parent!.children.splice(index, 1, {
21
+ type: 'mermaidCodeBlock',
22
+ data: {
23
+ hName: 'mermaid',
24
+ hProperties: {
25
+ value: node.value,
26
+ },
27
+ },
28
+ });
29
+ }
30
+ });
31
+ };
32
+ }