@slidev/parser 52.15.1 → 52.15.2
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/dist/core.mjs +32 -4
- package/package.json +2 -2
package/dist/core.mjs
CHANGED
|
@@ -206,6 +206,22 @@ const RE_MERMAID_CODEBLOCK = /^```mermaid/m;
|
|
|
206
206
|
const RE_HEADING = /^(#+) (.*)$/m;
|
|
207
207
|
const RE_LEADING_BACKTICKS = /^\s*`+/;
|
|
208
208
|
const RE_CRLF = /\r?\n/g;
|
|
209
|
+
function advanceHtmlCommentState(line, inHtmlComment) {
|
|
210
|
+
let cursor = 0;
|
|
211
|
+
while (cursor < line.length) if (inHtmlComment) {
|
|
212
|
+
const end = line.indexOf("-->", cursor);
|
|
213
|
+
if (end < 0) return true;
|
|
214
|
+
inHtmlComment = false;
|
|
215
|
+
cursor = end + 3;
|
|
216
|
+
} else {
|
|
217
|
+
const start = line.indexOf("<!--", cursor);
|
|
218
|
+
if (start < 0) return false;
|
|
219
|
+
const end = line.indexOf("-->", start + 4);
|
|
220
|
+
if (end < 0) return true;
|
|
221
|
+
cursor = end + 3;
|
|
222
|
+
}
|
|
223
|
+
return inHtmlComment;
|
|
224
|
+
}
|
|
209
225
|
function stringify(data) {
|
|
210
226
|
return `${data.slides.map(stringifySlide).join("\n").trim()}\n`;
|
|
211
227
|
}
|
|
@@ -321,6 +337,7 @@ async function parse(markdown, filepath, extensions, options = {}) {
|
|
|
321
337
|
const slides = [];
|
|
322
338
|
let start = 0;
|
|
323
339
|
let contentStart = 0;
|
|
340
|
+
let inHtmlComment = false;
|
|
324
341
|
async function slice(end) {
|
|
325
342
|
if (start === end) return;
|
|
326
343
|
const slide = {
|
|
@@ -351,7 +368,12 @@ async function parse(markdown, filepath, extensions, options = {}) {
|
|
|
351
368
|
for (const e of extensions) if (e.transformRawLines) await e.transformRawLines(lines);
|
|
352
369
|
}
|
|
353
370
|
for (let i = 0; i < lines.length; i++) {
|
|
354
|
-
const
|
|
371
|
+
const rawLine = lines[i];
|
|
372
|
+
const line = rawLine.trimEnd();
|
|
373
|
+
if (inHtmlComment) {
|
|
374
|
+
inHtmlComment = advanceHtmlCommentState(rawLine, true);
|
|
375
|
+
continue;
|
|
376
|
+
}
|
|
355
377
|
if (line.startsWith("---")) {
|
|
356
378
|
await slice(i);
|
|
357
379
|
const next = lines[i + 1];
|
|
@@ -365,7 +387,7 @@ async function parse(markdown, filepath, extensions, options = {}) {
|
|
|
365
387
|
let j = i + 1;
|
|
366
388
|
for (; j < lines.length; j++) if (lines[j].startsWith(codeBlockLevel)) break;
|
|
367
389
|
if (j !== lines.length) i = j;
|
|
368
|
-
}
|
|
390
|
+
} else inHtmlComment = advanceHtmlCommentState(rawLine, false);
|
|
369
391
|
}
|
|
370
392
|
if (start <= lines.length - 1) await slice(lines.length);
|
|
371
393
|
return {
|
|
@@ -379,6 +401,7 @@ function parseSync(markdown, filepath, options = {}) {
|
|
|
379
401
|
const slides = [];
|
|
380
402
|
let start = 0;
|
|
381
403
|
let contentStart = 0;
|
|
404
|
+
let inHtmlComment = false;
|
|
382
405
|
function slice(end) {
|
|
383
406
|
if (start === end) return;
|
|
384
407
|
const slide = {
|
|
@@ -394,7 +417,12 @@ function parseSync(markdown, filepath, options = {}) {
|
|
|
394
417
|
contentStart = end + 1;
|
|
395
418
|
}
|
|
396
419
|
for (let i = 0; i < lines.length; i++) {
|
|
397
|
-
const
|
|
420
|
+
const rawLine = lines[i];
|
|
421
|
+
const line = rawLine.trimEnd();
|
|
422
|
+
if (inHtmlComment) {
|
|
423
|
+
inHtmlComment = advanceHtmlCommentState(rawLine, true);
|
|
424
|
+
continue;
|
|
425
|
+
}
|
|
398
426
|
if (line.startsWith("---")) {
|
|
399
427
|
slice(i);
|
|
400
428
|
const next = lines[i + 1];
|
|
@@ -408,7 +436,7 @@ function parseSync(markdown, filepath, options = {}) {
|
|
|
408
436
|
let j = i + 1;
|
|
409
437
|
for (; j < lines.length; j++) if (lines[j].startsWith(codeBlockLevel)) break;
|
|
410
438
|
if (j !== lines.length) i = j;
|
|
411
|
-
}
|
|
439
|
+
} else inHtmlComment = advanceHtmlCommentState(rawLine, false);
|
|
412
440
|
}
|
|
413
441
|
if (start <= lines.length - 1) slice(lines.length);
|
|
414
442
|
return {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slidev/parser",
|
|
3
|
-
"version": "52.15.
|
|
3
|
+
"version": "52.15.2",
|
|
4
4
|
"description": "Markdown parser for Slidev",
|
|
5
5
|
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@antfu/utils": "^9.3.0",
|
|
33
33
|
"yaml": "^2.8.3",
|
|
34
|
-
"@slidev/types": "52.15.
|
|
34
|
+
"@slidev/types": "52.15.2"
|
|
35
35
|
},
|
|
36
36
|
"scripts": {
|
|
37
37
|
"build": "tsdown",
|