@docusaurus/mdx-loader 0.0.0-5382 → 0.0.0-5388

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":"index.d.ts","sourceRoot":"","sources":["../../../src/remark/admonitions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAyB,MAAM,EAAC,MAAM,SAAS,CAAC;AAS5D,oBAAY,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,iBActC,CAAC;AA2BF,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;AAS5D,oBAAY,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,iBActC,CAAC;AA2BF,QAAA,MAAM,MAAM,EAAE,MA4Kb,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -46,9 +46,13 @@ const admonitionNodeType = 'admonitionHTML';
46
46
  const plugin = function plugin(optionsInput = {}) {
47
47
  const options = normalizeOptions(optionsInput);
48
48
  const keywords = Object.values(options.keywords).map(escapeRegExp).join('|');
49
+ const nestingChar = escapeRegExp(options.tag.slice(0, 1));
49
50
  const tag = escapeRegExp(options.tag);
50
- const regex = new RegExp(`${tag}(${keywords})(?: *(.*))?\n`);
51
- const escapeTag = new RegExp(escapeRegExp(`\\${options.tag}`), 'g');
51
+ // resolve th nesting level of an opening tag
52
+ // ::: -> 0, :::: -> 1, ::::: -> 2 ...
53
+ const nestingLevelRegex = new RegExp(`^${tag}(?<nestingLevel>${nestingChar}*)`);
54
+ const regex = new RegExp(`${tag}${nestingChar}*(${keywords})(?: *(.*))?\n`);
55
+ const escapeTag = new RegExp(escapeRegExp(`\\${options.tag}${options.tag.slice(0, 1)}*`), 'g');
52
56
  // The tokenizer is called on blocks to determine if there is an admonition
53
57
  // present and create tags for it
54
58
  function blockTokenizer(eat, value, silent) {
@@ -65,6 +69,10 @@ const plugin = function plugin(optionsInput = {}) {
65
69
  const [opening, keyword, title] = match;
66
70
  const food = [];
67
71
  const content = [];
72
+ // get the nesting level of the opening tag
73
+ const openingLevel = nestingLevelRegex.exec(opening).groups.nestingLevel.length;
74
+ // used as a stack to keep track of nested admonitions
75
+ const nestingLevels = [openingLevel];
68
76
  let newValue = value;
69
77
  // consume lines until a closing tag
70
78
  let idx = newValue.indexOf(NEWLINE);
@@ -74,12 +82,33 @@ const plugin = function plugin(optionsInput = {}) {
74
82
  const line = next !== -1 ? newValue.slice(idx + 1, next) : newValue.slice(idx + 1);
75
83
  food.push(line);
76
84
  newValue = newValue.slice(idx + 1);
77
- // the closing tag is NOT part of the content
78
- if (line.startsWith(options.tag)) {
79
- break;
85
+ const nesting = nestingLevelRegex.exec(line);
86
+ idx = newValue.indexOf(NEWLINE);
87
+ if (!nesting) {
88
+ content.push(line);
89
+ continue;
90
+ }
91
+ const tagLevel = nesting.groups.nestingLevel.length;
92
+ // first level
93
+ if (nestingLevels.length === 0) {
94
+ nestingLevels.push(tagLevel);
95
+ content.push(line);
96
+ continue;
97
+ }
98
+ const currentLevel = nestingLevels[nestingLevels.length - 1];
99
+ if (tagLevel < currentLevel) {
100
+ // entering a nested admonition block
101
+ nestingLevels.push(tagLevel);
102
+ }
103
+ else if (tagLevel === currentLevel) {
104
+ // closing a nested admonition block
105
+ nestingLevels.pop();
106
+ // the closing tag is NOT part of the content
107
+ if (nestingLevels.length === 0) {
108
+ break;
109
+ }
80
110
  }
81
111
  content.push(line);
82
- idx = newValue.indexOf(NEWLINE);
83
112
  }
84
113
  // consume the processed tag and replace escape sequences
85
114
  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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/remark/admonitions/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-5382",
3
+ "version": "0.0.0-5388",
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.19.0",
22
22
  "@babel/traverse": "^7.19.0",
23
- "@docusaurus/logger": "0.0.0-5382",
24
- "@docusaurus/utils": "0.0.0-5382",
23
+ "@docusaurus/logger": "0.0.0-5388",
24
+ "@docusaurus/utils": "0.0.0-5388",
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.74.0"
38
38
  },
39
39
  "devDependencies": {
40
- "@docusaurus/types": "0.0.0-5382",
40
+ "@docusaurus/types": "0.0.0-5388",
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": "972eb5aba7a52bb87a7264d1011add7944bee0f7"
60
+ "gitHead": "5724aa75bd5befedc156a3936cd1c7235f690198"
61
61
  }
@@ -69,9 +69,20 @@ const plugin: Plugin = function plugin(
69
69
  const options = normalizeOptions(optionsInput);
70
70
 
71
71
  const keywords = Object.values(options.keywords).map(escapeRegExp).join('|');
72
+ const nestingChar = escapeRegExp(options.tag.slice(0, 1));
72
73
  const tag = escapeRegExp(options.tag);
73
- const regex = new RegExp(`${tag}(${keywords})(?: *(.*))?\n`);
74
- const escapeTag = new RegExp(escapeRegExp(`\\${options.tag}`), 'g');
74
+
75
+ // resolve th nesting level of an opening tag
76
+ // ::: -> 0, :::: -> 1, ::::: -> 2 ...
77
+ const nestingLevelRegex = new RegExp(
78
+ `^${tag}(?<nestingLevel>${nestingChar}*)`,
79
+ );
80
+
81
+ const regex = new RegExp(`${tag}${nestingChar}*(${keywords})(?: *(.*))?\n`);
82
+ const escapeTag = new RegExp(
83
+ escapeRegExp(`\\${options.tag}${options.tag.slice(0, 1)}*`),
84
+ 'g',
85
+ );
75
86
 
76
87
  // The tokenizer is called on blocks to determine if there is an admonition
77
88
  // present and create tags for it
@@ -94,6 +105,11 @@ const plugin: Plugin = function plugin(
94
105
  ];
95
106
  const food = [];
96
107
  const content = [];
108
+ // get the nesting level of the opening tag
109
+ const openingLevel =
110
+ nestingLevelRegex.exec(opening)!.groups!.nestingLevel!.length;
111
+ // used as a stack to keep track of nested admonitions
112
+ const nestingLevels: number[] = [openingLevel];
97
113
 
98
114
  let newValue = value;
99
115
  // consume lines until a closing tag
@@ -105,12 +121,32 @@ const plugin: Plugin = function plugin(
105
121
  next !== -1 ? newValue.slice(idx + 1, next) : newValue.slice(idx + 1);
106
122
  food.push(line);
107
123
  newValue = newValue.slice(idx + 1);
108
- // the closing tag is NOT part of the content
109
- if (line.startsWith(options.tag)) {
110
- break;
124
+ const nesting = nestingLevelRegex.exec(line);
125
+ idx = newValue.indexOf(NEWLINE);
126
+ if (!nesting) {
127
+ content.push(line);
128
+ continue;
129
+ }
130
+ const tagLevel = nesting.groups!.nestingLevel!.length;
131
+ // first level
132
+ if (nestingLevels.length === 0) {
133
+ nestingLevels.push(tagLevel);
134
+ content.push(line);
135
+ continue;
136
+ }
137
+ const currentLevel = nestingLevels[nestingLevels.length - 1]!;
138
+ if (tagLevel < currentLevel) {
139
+ // entering a nested admonition block
140
+ nestingLevels.push(tagLevel);
141
+ } else if (tagLevel === currentLevel) {
142
+ // closing a nested admonition block
143
+ nestingLevels.pop();
144
+ // the closing tag is NOT part of the content
145
+ if (nestingLevels.length === 0) {
146
+ break;
147
+ }
111
148
  }
112
149
  content.push(line);
113
- idx = newValue.indexOf(NEWLINE);
114
150
  }
115
151
 
116
152
  // consume the processed tag and replace escape sequences