@slidev/parser 0.49.0-beta.3 → 0.49.0-beta.5
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/{chunk-S3IBVRFG.mjs → chunk-G3BCFBME.mjs} +35 -54
- package/dist/core.d.mts +3 -4
- package/dist/core.mjs +1 -3
- package/dist/fs.d.mts +1 -1
- package/dist/fs.mjs +2 -4
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -3
- package/package.json +4 -3
|
@@ -1,51 +1,9 @@
|
|
|
1
1
|
// src/core.ts
|
|
2
2
|
import YAML from "yaml";
|
|
3
|
-
|
|
4
|
-
// ../../node_modules/.pnpm/@antfu+utils@0.7.7/node_modules/@antfu/utils/dist/index.mjs
|
|
5
|
-
function toArray(array) {
|
|
6
|
-
array = array ?? [];
|
|
7
|
-
return Array.isArray(array) ? array : [array];
|
|
8
|
-
}
|
|
9
|
-
function uniq(array) {
|
|
10
|
-
return Array.from(new Set(array));
|
|
11
|
-
}
|
|
12
|
-
function range(...args) {
|
|
13
|
-
let start, stop, step;
|
|
14
|
-
if (args.length === 1) {
|
|
15
|
-
start = 0;
|
|
16
|
-
step = 1;
|
|
17
|
-
[stop] = args;
|
|
18
|
-
} else {
|
|
19
|
-
[start, stop, step = 1] = args;
|
|
20
|
-
}
|
|
21
|
-
const arr = [];
|
|
22
|
-
let current = start;
|
|
23
|
-
while (current < stop) {
|
|
24
|
-
arr.push(current);
|
|
25
|
-
current += step || 1;
|
|
26
|
-
}
|
|
27
|
-
return arr;
|
|
28
|
-
}
|
|
29
|
-
function notNullish(v) {
|
|
30
|
-
return v != null;
|
|
31
|
-
}
|
|
32
|
-
var isNumber = (val) => typeof val === "number";
|
|
33
|
-
function slash(str) {
|
|
34
|
-
return str.replace(/\\/g, "/");
|
|
35
|
-
}
|
|
36
|
-
function ensurePrefix(prefix, str) {
|
|
37
|
-
if (!str.startsWith(prefix))
|
|
38
|
-
return prefix + str;
|
|
39
|
-
return str;
|
|
40
|
-
}
|
|
41
|
-
function objectMap(obj, fn) {
|
|
42
|
-
return Object.fromEntries(
|
|
43
|
-
Object.entries(obj).map(([k, v]) => fn(k, v)).filter(notNullish)
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
var VOID = Symbol("p-void");
|
|
3
|
+
import { ensurePrefix } from "@antfu/utils";
|
|
47
4
|
|
|
48
5
|
// src/utils.ts
|
|
6
|
+
import { isNumber, range, uniq } from "@antfu/utils";
|
|
49
7
|
function parseRangeString(total, rangeStr) {
|
|
50
8
|
if (!rangeStr || rangeStr === "all" || rangeStr === "*")
|
|
51
9
|
return range(1, total + 1);
|
|
@@ -78,6 +36,7 @@ function parseAspectRatio(str) {
|
|
|
78
36
|
}
|
|
79
37
|
|
|
80
38
|
// src/config.ts
|
|
39
|
+
import { toArray, uniq as uniq2 } from "@antfu/utils";
|
|
81
40
|
function getDefaultConfig() {
|
|
82
41
|
return {
|
|
83
42
|
theme: "default",
|
|
@@ -88,6 +47,7 @@ function getDefaultConfig() {
|
|
|
88
47
|
monaco: true,
|
|
89
48
|
monacoTypesSource: "local",
|
|
90
49
|
monacoTypesAdditionalPackages: [],
|
|
50
|
+
monacoRunAdditionalDeps: [],
|
|
91
51
|
download: false,
|
|
92
52
|
export: {},
|
|
93
53
|
info: false,
|
|
@@ -175,7 +135,7 @@ function resolveFonts(fonts = {}) {
|
|
|
175
135
|
const weights = toArray(fonts.weights || "200,400,600").flatMap((i) => i.toString().split(/,\s*/g)).map((i) => i.trim());
|
|
176
136
|
const custom = toArray(fonts.custom).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
|
|
177
137
|
const local = toArray(fonts.local).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
|
|
178
|
-
const webfonts = fonts.webfonts ? fonts.webfonts : fallbacks ?
|
|
138
|
+
const webfonts = fonts.webfonts ? fonts.webfonts : fallbacks ? uniq2([...sans, ...serif, ...mono, ...custom]) : [];
|
|
179
139
|
webfonts.filter((i) => local.includes(i));
|
|
180
140
|
function toQuoted(font) {
|
|
181
141
|
if (/^(['"]).*\1$/.test(font))
|
|
@@ -183,7 +143,7 @@ function resolveFonts(fonts = {}) {
|
|
|
183
143
|
return `"${font}"`;
|
|
184
144
|
}
|
|
185
145
|
if (fallbacks) {
|
|
186
|
-
sans =
|
|
146
|
+
sans = uniq2([
|
|
187
147
|
...sans.map(toQuoted),
|
|
188
148
|
"ui-sans-serif",
|
|
189
149
|
"system-ui",
|
|
@@ -200,7 +160,7 @@ function resolveFonts(fonts = {}) {
|
|
|
200
160
|
'"Segoe UI Symbol"',
|
|
201
161
|
'"Noto Color Emoji"'
|
|
202
162
|
]);
|
|
203
|
-
serif =
|
|
163
|
+
serif = uniq2([
|
|
204
164
|
...serif.map(toQuoted),
|
|
205
165
|
"ui-serif",
|
|
206
166
|
"Georgia",
|
|
@@ -209,7 +169,7 @@ function resolveFonts(fonts = {}) {
|
|
|
209
169
|
"Times",
|
|
210
170
|
"serif"
|
|
211
171
|
]);
|
|
212
|
-
mono =
|
|
172
|
+
mono = uniq2([
|
|
213
173
|
...mono.map(toQuoted),
|
|
214
174
|
"ui-monospace",
|
|
215
175
|
"SFMono-Regular",
|
|
@@ -308,7 +268,7 @@ function matter(code) {
|
|
|
308
268
|
function detectFeatures(code) {
|
|
309
269
|
return {
|
|
310
270
|
katex: !!code.match(/\$.*?\$/) || !!code.match(/\$\$/),
|
|
311
|
-
monaco:
|
|
271
|
+
monaco: code.match(/{monaco.*}/) ? scanMonacoReferencedMods(code) : false,
|
|
312
272
|
tweet: !!code.match(/<Tweet\b/),
|
|
313
273
|
mermaid: !!code.match(/^```mermaid/m)
|
|
314
274
|
};
|
|
@@ -409,12 +369,34 @@ async function parse(markdown, filepath, extensions) {
|
|
|
409
369
|
slides
|
|
410
370
|
};
|
|
411
371
|
}
|
|
412
|
-
function
|
|
413
|
-
|
|
372
|
+
function scanMonacoReferencedMods(md) {
|
|
373
|
+
const types = /* @__PURE__ */ new Set();
|
|
374
|
+
const deps = /* @__PURE__ */ new Set();
|
|
375
|
+
md.replace(
|
|
376
|
+
/^```(\w+?)\s*{monaco(.*?)}[\s\n]*([\s\S]+?)^```/mg,
|
|
377
|
+
(full, lang = "ts", kind, code) => {
|
|
378
|
+
lang = lang.trim();
|
|
379
|
+
const isDep = kind === "-run";
|
|
380
|
+
if (["js", "javascript", "ts", "typescript"].includes(lang)) {
|
|
381
|
+
for (const [, , specifier] of code.matchAll(/\s+from\s+(["'])([\/\.\w@-]+)\1/g)) {
|
|
382
|
+
if (specifier) {
|
|
383
|
+
if (!"./".includes(specifier))
|
|
384
|
+
types.add(specifier);
|
|
385
|
+
if (isDep)
|
|
386
|
+
deps.add(specifier);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
return "";
|
|
391
|
+
}
|
|
392
|
+
);
|
|
393
|
+
return {
|
|
394
|
+
types: Array.from(types),
|
|
395
|
+
deps: Array.from(deps)
|
|
396
|
+
};
|
|
414
397
|
}
|
|
415
398
|
|
|
416
399
|
export {
|
|
417
|
-
slash,
|
|
418
400
|
parseRangeString,
|
|
419
401
|
parseAspectRatio,
|
|
420
402
|
getDefaultConfig,
|
|
@@ -427,6 +409,5 @@ export {
|
|
|
427
409
|
prettify,
|
|
428
410
|
detectFeatures,
|
|
429
411
|
parseSlide,
|
|
430
|
-
parse
|
|
431
|
-
mergeFeatureFlags
|
|
412
|
+
parse
|
|
432
413
|
};
|
package/dist/core.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SlidevConfig, SlidevThemeMeta, FontOptions, ResolvedFontOptions, SlidevMarkdown, SourceSlideInfo,
|
|
1
|
+
import { SlidevConfig, SlidevThemeMeta, FontOptions, ResolvedFontOptions, SlidevMarkdown, SourceSlideInfo, SlidevDetectedFeatures, SlidevPreparserExtension } from '@slidev/types';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* 1,3-5,8 => [1, 3, 4, 5, 8]
|
|
@@ -18,9 +18,8 @@ declare function stringify(data: SlidevMarkdown): string;
|
|
|
18
18
|
declare function stringifySlide(data: SourceSlideInfo, idx?: number): string;
|
|
19
19
|
declare function prettifySlide(data: SourceSlideInfo): SourceSlideInfo;
|
|
20
20
|
declare function prettify(data: SlidevMarkdown): SlidevMarkdown;
|
|
21
|
-
declare function detectFeatures(code: string):
|
|
21
|
+
declare function detectFeatures(code: string): SlidevDetectedFeatures;
|
|
22
22
|
declare function parseSlide(raw: string): Omit<SourceSlideInfo, 'filepath' | 'index' | 'start' | 'end'>;
|
|
23
23
|
declare function parse(markdown: string, filepath: string, extensions?: SlidevPreparserExtension[]): Promise<SlidevMarkdown>;
|
|
24
|
-
declare function mergeFeatureFlags(a: SlidevFeatureFlags, b: SlidevFeatureFlags): SlidevFeatureFlags;
|
|
25
24
|
|
|
26
|
-
export { detectFeatures, getDefaultConfig,
|
|
25
|
+
export { detectFeatures, getDefaultConfig, parse, parseAspectRatio, parseRangeString, parseSlide, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig };
|
package/dist/core.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
detectFeatures,
|
|
3
3
|
getDefaultConfig,
|
|
4
|
-
mergeFeatureFlags,
|
|
5
4
|
parse,
|
|
6
5
|
parseAspectRatio,
|
|
7
6
|
parseRangeString,
|
|
@@ -13,11 +12,10 @@ import {
|
|
|
13
12
|
stringify,
|
|
14
13
|
stringifySlide,
|
|
15
14
|
verifyConfig
|
|
16
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-G3BCFBME.mjs";
|
|
17
16
|
export {
|
|
18
17
|
detectFeatures,
|
|
19
18
|
getDefaultConfig,
|
|
20
|
-
mergeFeatureFlags,
|
|
21
19
|
parse,
|
|
22
20
|
parseAspectRatio,
|
|
23
21
|
parseRangeString,
|
package/dist/fs.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PreparserExtensionLoader, SlidevData, SlidevMarkdown } from '@slidev/types';
|
|
2
|
-
export { detectFeatures, getDefaultConfig,
|
|
2
|
+
export { detectFeatures, getDefaultConfig, parse, parseAspectRatio, parseRangeString, parseSlide, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig } from './core.mjs';
|
|
3
3
|
|
|
4
4
|
declare function injectPreparserExtensionLoader(fn: PreparserExtensionLoader): void;
|
|
5
5
|
/**
|
package/dist/fs.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
detectFeatures,
|
|
3
3
|
getDefaultConfig,
|
|
4
|
-
mergeFeatureFlags,
|
|
5
4
|
parse,
|
|
6
5
|
parseAspectRatio,
|
|
7
6
|
parseRangeString,
|
|
@@ -10,16 +9,16 @@ import {
|
|
|
10
9
|
prettifySlide,
|
|
11
10
|
resolveConfig,
|
|
12
11
|
resolveFonts,
|
|
13
|
-
slash,
|
|
14
12
|
stringify,
|
|
15
13
|
stringifySlide,
|
|
16
14
|
verifyConfig
|
|
17
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-G3BCFBME.mjs";
|
|
18
16
|
|
|
19
17
|
// src/fs.ts
|
|
20
18
|
import { promises as fs } from "node:fs";
|
|
21
19
|
import { dirname, resolve } from "node:path";
|
|
22
20
|
import YAML from "yaml";
|
|
21
|
+
import { slash } from "@antfu/utils";
|
|
23
22
|
var preparserExtensionLoader = null;
|
|
24
23
|
function injectPreparserExtensionLoader(fn) {
|
|
25
24
|
preparserExtensionLoader = fn;
|
|
@@ -100,7 +99,6 @@ export {
|
|
|
100
99
|
getDefaultConfig,
|
|
101
100
|
injectPreparserExtensionLoader,
|
|
102
101
|
load,
|
|
103
|
-
mergeFeatureFlags,
|
|
104
102
|
parse,
|
|
105
103
|
parseAspectRatio,
|
|
106
104
|
parseRangeString,
|
package/dist/index.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { detectFeatures, getDefaultConfig,
|
|
1
|
+
export { detectFeatures, getDefaultConfig, parse, parseAspectRatio, parseRangeString, parseSlide, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig } from './core.mjs';
|
|
2
2
|
import '@slidev/types';
|
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
detectFeatures,
|
|
3
3
|
getDefaultConfig,
|
|
4
|
-
mergeFeatureFlags,
|
|
5
4
|
parse,
|
|
6
5
|
parseAspectRatio,
|
|
7
6
|
parseRangeString,
|
|
@@ -13,11 +12,10 @@ import {
|
|
|
13
12
|
stringify,
|
|
14
13
|
stringifySlide,
|
|
15
14
|
verifyConfig
|
|
16
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-G3BCFBME.mjs";
|
|
17
16
|
export {
|
|
18
17
|
detectFeatures,
|
|
19
18
|
getDefaultConfig,
|
|
20
|
-
mergeFeatureFlags,
|
|
21
19
|
parse,
|
|
22
20
|
parseAspectRatio,
|
|
23
21
|
parseRangeString,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slidev/parser",
|
|
3
|
-
"version": "0.49.0-beta.
|
|
3
|
+
"version": "0.49.0-beta.5",
|
|
4
4
|
"description": "Markdown parser for Slidev",
|
|
5
5
|
"author": "antfu <anthonyfu117@hotmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -39,8 +39,9 @@
|
|
|
39
39
|
"node": ">=18.0.0"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"
|
|
43
|
-
"
|
|
42
|
+
"@antfu/utils": "^0.7.7",
|
|
43
|
+
"yaml": "^2.4.2",
|
|
44
|
+
"@slidev/types": "0.49.0-beta.5"
|
|
44
45
|
},
|
|
45
46
|
"scripts": {
|
|
46
47
|
"build": "rimraf dist && tsup src/index.ts src/core.ts src/fs.ts",
|