@slidev/parser 52.5.0 → 52.6.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/dist/{core-Y81PGkhC.mjs → core-DFEnpsJg.mjs} +6 -3
- package/dist/{core-CFXrG3vf.d.mts → core-zMJEga1E.d.mts} +1 -1
- package/dist/core.d.mts +3 -3
- package/dist/core.mjs +3 -3
- package/dist/fs.d.mts +3 -3
- package/dist/fs.mjs +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +3 -3
- package/dist/utils-BwHfBd2q.d.mts +47 -0
- package/dist/utils-DDsoDrrS.mjs +146 -0
- package/dist/utils.d.mts +2 -2
- package/dist/utils.mjs +2 -2
- package/package.json +11 -22
- package/dist/utils-CHgwOjtL.d.mts +0 -11
- package/dist/utils-CLLoIRbA.mjs +0 -32
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { parseAspectRatio } from "./utils-
|
|
1
|
+
import { t as parseAspectRatio } from "./utils-DDsoDrrS.mjs";
|
|
2
2
|
import { ensurePrefix, toArray, uniq } from "@antfu/utils";
|
|
3
3
|
import YAML from "yaml";
|
|
4
4
|
|
|
@@ -46,7 +46,10 @@ function getDefaultConfig() {
|
|
|
46
46
|
wakeLock: true,
|
|
47
47
|
remote: false,
|
|
48
48
|
mdc: false,
|
|
49
|
-
seoMeta: {}
|
|
49
|
+
seoMeta: {},
|
|
50
|
+
notesAutoRuby: {},
|
|
51
|
+
duration: "30min",
|
|
52
|
+
timer: "stopwatch"
|
|
50
53
|
};
|
|
51
54
|
}
|
|
52
55
|
function resolveConfig(headmatter, themeMeta = {}, filepath, verify = false) {
|
|
@@ -396,4 +399,4 @@ function hash(str) {
|
|
|
396
399
|
}
|
|
397
400
|
|
|
398
401
|
//#endregion
|
|
399
|
-
export {
|
|
402
|
+
export { prettify as a, stringifySlide as c, resolveFonts as d, verifyConfig as f, parseSync as i, getDefaultConfig as l, parse as n, prettifySlide as o, parseSlide as r, stringify as s, detectFeatures as t, resolveConfig as u };
|
|
@@ -20,4 +20,4 @@ declare function parseSlide(raw: string, options?: SlidevParserOptions): Omit<So
|
|
|
20
20
|
declare function parse(markdown: string, filepath: string, extensions?: SlidevPreparserExtension[], options?: SlidevParserOptions): Promise<SlidevMarkdown>;
|
|
21
21
|
declare function parseSync(markdown: string, filepath: string, options?: SlidevParserOptions): SlidevMarkdown;
|
|
22
22
|
//#endregion
|
|
23
|
-
export {
|
|
23
|
+
export { parseSync as a, stringify as c, resolveConfig as d, resolveFonts as f, parseSlide as i, stringifySlide as l, detectFeatures as n, prettify as o, verifyConfig as p, parse as r, prettifySlide as s, SlidevParserOptions as t, getDefaultConfig as u };
|
package/dist/core.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
export { SlidevParserOptions, detectFeatures, getDefaultConfig, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig };
|
|
1
|
+
import { a as parseSync, c as stringify, d as resolveConfig, f as resolveFonts, i as parseSlide, l as stringifySlide, n as detectFeatures, o as prettify, p as verifyConfig, r as parse, s as prettifySlide, t as SlidevParserOptions, u as getDefaultConfig } from "./core-zMJEga1E.mjs";
|
|
2
|
+
import { a as TimesplitOutput, i as TimesplitInput, n as parseRangeString, o as parseTimesplits, r as parseTimeString, t as parseAspectRatio } from "./utils-BwHfBd2q.mjs";
|
|
3
|
+
export { SlidevParserOptions, TimesplitInput, TimesplitOutput, detectFeatures, getDefaultConfig, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, parseTimeString, parseTimesplits, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig };
|
package/dist/core.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { i as parseTimeString, n as parseRangeString, r as parseTimesplits, t as parseAspectRatio } from "./utils-DDsoDrrS.mjs";
|
|
2
|
+
import { a as prettify, c as stringifySlide, d as resolveFonts, f as verifyConfig, i as parseSync, l as getDefaultConfig, n as parse, o as prettifySlide, r as parseSlide, s as stringify, t as detectFeatures, u as resolveConfig } from "./core-DFEnpsJg.mjs";
|
|
3
3
|
|
|
4
|
-
export { detectFeatures, getDefaultConfig, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig };
|
|
4
|
+
export { detectFeatures, getDefaultConfig, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, parseTimeString, parseTimesplits, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig };
|
package/dist/fs.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { a as parseSync, c as stringify, d as resolveConfig, f as resolveFonts, i as parseSlide, l as stringifySlide, n as detectFeatures, o as prettify, p as verifyConfig, r as parse, s as prettifySlide, t as SlidevParserOptions, u as getDefaultConfig } from "./core-zMJEga1E.mjs";
|
|
2
|
+
import { a as TimesplitOutput, i as TimesplitInput, n as parseRangeString, o as parseTimesplits, r as parseTimeString, t as parseAspectRatio } from "./utils-BwHfBd2q.mjs";
|
|
3
3
|
import { PreparserExtensionLoader, SlidevData, SlidevMarkdown } from "@slidev/types";
|
|
4
4
|
|
|
5
5
|
//#region src/fs.d.ts
|
|
@@ -12,4 +12,4 @@ type LoadedSlidevData = Omit<SlidevData, 'config' | 'themeMeta'>;
|
|
|
12
12
|
declare function load(userRoot: string, filepath: string, loadedSource?: Record<string, string>, mode?: string): Promise<LoadedSlidevData>;
|
|
13
13
|
declare function save(markdown: SlidevMarkdown): Promise<string>;
|
|
14
14
|
//#endregion
|
|
15
|
-
export { LoadedSlidevData, SlidevParserOptions, detectFeatures, getDefaultConfig, injectPreparserExtensionLoader, load, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, prettify, prettifySlide, resolveConfig, resolveFonts, save, stringify, stringifySlide, verifyConfig };
|
|
15
|
+
export { LoadedSlidevData, SlidevParserOptions, TimesplitInput, TimesplitOutput, detectFeatures, getDefaultConfig, injectPreparserExtensionLoader, load, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, parseTimeString, parseTimesplits, prettify, prettifySlide, resolveConfig, resolveFonts, save, stringify, stringifySlide, verifyConfig };
|
package/dist/fs.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { i as parseTimeString, n as parseRangeString, r as parseTimesplits, t as parseAspectRatio } from "./utils-DDsoDrrS.mjs";
|
|
2
|
+
import { a as prettify, c as stringifySlide, d as resolveFonts, f as verifyConfig, i as parseSync, l as getDefaultConfig, n as parse, o as prettifySlide, r as parseSlide, s as stringify, t as detectFeatures, u as resolveConfig } from "./core-DFEnpsJg.mjs";
|
|
3
3
|
import { slash } from "@antfu/utils";
|
|
4
4
|
import YAML from "yaml";
|
|
5
5
|
import fs from "node:fs";
|
|
@@ -103,4 +103,4 @@ async function save(markdown) {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
//#endregion
|
|
106
|
-
export { detectFeatures, getDefaultConfig, injectPreparserExtensionLoader, load, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, prettify, prettifySlide, resolveConfig, resolveFonts, save, stringify, stringifySlide, verifyConfig };
|
|
106
|
+
export { detectFeatures, getDefaultConfig, injectPreparserExtensionLoader, load, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, parseTimeString, parseTimesplits, prettify, prettifySlide, resolveConfig, resolveFonts, save, stringify, stringifySlide, verifyConfig };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
export { SlidevParserOptions, detectFeatures, getDefaultConfig, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig };
|
|
1
|
+
import { a as parseSync, c as stringify, d as resolveConfig, f as resolveFonts, i as parseSlide, l as stringifySlide, n as detectFeatures, o as prettify, p as verifyConfig, r as parse, s as prettifySlide, t as SlidevParserOptions, u as getDefaultConfig } from "./core-zMJEga1E.mjs";
|
|
2
|
+
import { a as TimesplitOutput, i as TimesplitInput, n as parseRangeString, o as parseTimesplits, r as parseTimeString, t as parseAspectRatio } from "./utils-BwHfBd2q.mjs";
|
|
3
|
+
export { SlidevParserOptions, TimesplitInput, TimesplitOutput, detectFeatures, getDefaultConfig, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, parseTimeString, parseTimesplits, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig };
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { i as parseTimeString, n as parseRangeString, r as parseTimesplits, t as parseAspectRatio } from "./utils-DDsoDrrS.mjs";
|
|
2
|
+
import { a as prettify, c as stringifySlide, d as resolveFonts, f as verifyConfig, i as parseSync, l as getDefaultConfig, n as parse, o as prettifySlide, r as parseSlide, s as stringify, t as detectFeatures, u as resolveConfig } from "./core-DFEnpsJg.mjs";
|
|
3
3
|
|
|
4
|
-
export { detectFeatures, getDefaultConfig, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig };
|
|
4
|
+
export { detectFeatures, getDefaultConfig, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, parseTimeString, parseTimesplits, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
//#region src/timesplit/timesplit.d.ts
|
|
2
|
+
interface TimesplitInput {
|
|
3
|
+
no: number;
|
|
4
|
+
timesplit: string;
|
|
5
|
+
title?: string;
|
|
6
|
+
}
|
|
7
|
+
interface TimesplitOutput {
|
|
8
|
+
timestampStart: number;
|
|
9
|
+
timestampEnd: number;
|
|
10
|
+
noStart: number;
|
|
11
|
+
noEnd: number;
|
|
12
|
+
title?: string;
|
|
13
|
+
}
|
|
14
|
+
declare function parseTimesplits(inputs: TimesplitInput[]): TimesplitOutput[];
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region src/timesplit/timestring.d.ts
|
|
17
|
+
/**
|
|
18
|
+
* Parse timestamp into seconds
|
|
19
|
+
*
|
|
20
|
+
* Accepts:
|
|
21
|
+
* - 10:50.1
|
|
22
|
+
* - 10s
|
|
23
|
+
* - 5m
|
|
24
|
+
* - 3min
|
|
25
|
+
* - 3mins 5secs
|
|
26
|
+
* - 10.5m3s
|
|
27
|
+
* - +10s
|
|
28
|
+
* - 1h10m30s
|
|
29
|
+
* - 1h4s
|
|
30
|
+
* - 1:1:1
|
|
31
|
+
*/
|
|
32
|
+
declare function parseTimeString(timestamp: string | number): {
|
|
33
|
+
seconds: number;
|
|
34
|
+
relative: boolean;
|
|
35
|
+
};
|
|
36
|
+
//#endregion
|
|
37
|
+
//#region src/utils.d.ts
|
|
38
|
+
/**
|
|
39
|
+
* 1,3-5,8 => [1, 3, 4, 5, 8]
|
|
40
|
+
*/
|
|
41
|
+
declare function parseRangeString(total: number, rangeStr?: string): number[];
|
|
42
|
+
/**
|
|
43
|
+
* Accepts `16/9` `1:1` `3x4`
|
|
44
|
+
*/
|
|
45
|
+
declare function parseAspectRatio(str: string | number): number;
|
|
46
|
+
//#endregion
|
|
47
|
+
export { TimesplitOutput as a, TimesplitInput as i, parseRangeString as n, parseTimesplits as o, parseTimeString as r, parseAspectRatio as t };
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { isNumber, range, uniq } from "@antfu/utils";
|
|
2
|
+
|
|
3
|
+
//#region src/timesplit/timestring.ts
|
|
4
|
+
/**
|
|
5
|
+
* Parse timestamp into seconds
|
|
6
|
+
*
|
|
7
|
+
* Accepts:
|
|
8
|
+
* - 10:50.1
|
|
9
|
+
* - 10s
|
|
10
|
+
* - 5m
|
|
11
|
+
* - 3min
|
|
12
|
+
* - 3mins 5secs
|
|
13
|
+
* - 10.5m3s
|
|
14
|
+
* - +10s
|
|
15
|
+
* - 1h10m30s
|
|
16
|
+
* - 1h4s
|
|
17
|
+
* - 1:1:1
|
|
18
|
+
*/
|
|
19
|
+
function parseTimeString(timestamp) {
|
|
20
|
+
if (typeof timestamp === "number") return {
|
|
21
|
+
seconds: timestamp,
|
|
22
|
+
relative: false
|
|
23
|
+
};
|
|
24
|
+
const relative = timestamp.startsWith("+");
|
|
25
|
+
if (relative) timestamp = timestamp.slice(1);
|
|
26
|
+
let seconds = 0;
|
|
27
|
+
if (timestamp.includes(":")) {
|
|
28
|
+
const parts = timestamp.split(":").map(Number);
|
|
29
|
+
let h = 0;
|
|
30
|
+
let m = 0;
|
|
31
|
+
let s = 0;
|
|
32
|
+
if (parts.length === 3) {
|
|
33
|
+
h = parts[0];
|
|
34
|
+
m = parts[1];
|
|
35
|
+
s = parts[2];
|
|
36
|
+
} else if (parts.length === 2) {
|
|
37
|
+
m = parts[0];
|
|
38
|
+
s = parts[1];
|
|
39
|
+
} else if (parts.length === 1) s = parts[0];
|
|
40
|
+
else throw new TypeError("Invalid timestamp format");
|
|
41
|
+
if (Number.isNaN(h) || Number.isNaN(m) || Number.isNaN(s)) throw new TypeError("Invalid timestamp format");
|
|
42
|
+
seconds = (h || 0) * 3600 + (m || 0) * 60 + (s || 0);
|
|
43
|
+
} else if (!timestamp.match(/[a-z]/i)) seconds = Number(timestamp);
|
|
44
|
+
else {
|
|
45
|
+
const unitMap = {
|
|
46
|
+
s: 1,
|
|
47
|
+
sec: 1,
|
|
48
|
+
secs: 1,
|
|
49
|
+
m: 60,
|
|
50
|
+
min: 60,
|
|
51
|
+
mins: 60,
|
|
52
|
+
h: 3600,
|
|
53
|
+
hr: 3600,
|
|
54
|
+
hrs: 3600,
|
|
55
|
+
hour: 3600,
|
|
56
|
+
hours: 3600,
|
|
57
|
+
day: 86400,
|
|
58
|
+
days: 86400,
|
|
59
|
+
week: 604800,
|
|
60
|
+
weeks: 604800,
|
|
61
|
+
month: 2629746,
|
|
62
|
+
months: 2629746,
|
|
63
|
+
year: 31556952,
|
|
64
|
+
years: 31556952
|
|
65
|
+
};
|
|
66
|
+
const regex = /([\d.]+)([a-z]+)/gi;
|
|
67
|
+
const matches = timestamp.matchAll(regex);
|
|
68
|
+
if (matches) for (const match of matches) {
|
|
69
|
+
const value = Number(match[1]);
|
|
70
|
+
if (Number.isNaN(value)) throw new TypeError(`Invalid timestamp value: ${match[1]}`);
|
|
71
|
+
const unit = match[2].toLowerCase();
|
|
72
|
+
if (!(unit in unitMap)) throw new TypeError(`Invalid timestamp unit: ${unit}`);
|
|
73
|
+
seconds += value * unitMap[unit];
|
|
74
|
+
}
|
|
75
|
+
const remaining = timestamp.replace(regex, "").trim();
|
|
76
|
+
if (remaining) throw new TypeError(`Unknown timestamp remaining: ${remaining}`);
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
seconds,
|
|
80
|
+
relative
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
//#endregion
|
|
85
|
+
//#region src/timesplit/timesplit.ts
|
|
86
|
+
function parseTimesplits(inputs) {
|
|
87
|
+
let ts = 0;
|
|
88
|
+
const outputs = [];
|
|
89
|
+
let current = {
|
|
90
|
+
timestampStart: ts,
|
|
91
|
+
timestampEnd: ts,
|
|
92
|
+
noStart: 0,
|
|
93
|
+
noEnd: 0,
|
|
94
|
+
title: "[start]"
|
|
95
|
+
};
|
|
96
|
+
outputs.push(current);
|
|
97
|
+
for (const input of inputs) {
|
|
98
|
+
const time = parseTimeString(input.timesplit);
|
|
99
|
+
const end = time.relative ? ts + time.seconds : time.seconds;
|
|
100
|
+
if (end < ts) throw new Error(`Timesplit end ${end} is before start ${ts}`);
|
|
101
|
+
current.timestampEnd = end;
|
|
102
|
+
current.noEnd = input.no;
|
|
103
|
+
if (input.title) current.title = input.title;
|
|
104
|
+
ts = end;
|
|
105
|
+
current = {
|
|
106
|
+
timestampStart: end,
|
|
107
|
+
timestampEnd: end,
|
|
108
|
+
noStart: input.no,
|
|
109
|
+
noEnd: input.no
|
|
110
|
+
};
|
|
111
|
+
outputs.push(current);
|
|
112
|
+
}
|
|
113
|
+
return outputs;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
//#endregion
|
|
117
|
+
//#region src/utils.ts
|
|
118
|
+
/**
|
|
119
|
+
* 1,3-5,8 => [1, 3, 4, 5, 8]
|
|
120
|
+
*/
|
|
121
|
+
function parseRangeString(total, rangeStr) {
|
|
122
|
+
if (!rangeStr || rangeStr === "all" || rangeStr === "*") return range(1, total + 1);
|
|
123
|
+
if (rangeStr === "none") return [];
|
|
124
|
+
const indexes = [];
|
|
125
|
+
for (const part of rangeStr.split(/[,;]/g)) if (!part.includes("-")) indexes.push(+part);
|
|
126
|
+
else {
|
|
127
|
+
const [start, end] = part.split("-", 2);
|
|
128
|
+
indexes.push(...range(+start, !end ? total + 1 : +end + 1));
|
|
129
|
+
}
|
|
130
|
+
return uniq(indexes).filter((i) => i <= total).sort((a, b) => a - b);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Accepts `16/9` `1:1` `3x4`
|
|
134
|
+
*/
|
|
135
|
+
function parseAspectRatio(str) {
|
|
136
|
+
if (isNumber(str)) return str;
|
|
137
|
+
if (!Number.isNaN(+str)) return +str;
|
|
138
|
+
const [wStr = "", hStr = ""] = str.split(/[:/x|]/);
|
|
139
|
+
const w = Number.parseFloat(wStr.trim());
|
|
140
|
+
const h = Number.parseFloat(hStr.trim());
|
|
141
|
+
if (Number.isNaN(w) || Number.isNaN(h) || h === 0) throw new Error(`Invalid aspect ratio "${str}"`);
|
|
142
|
+
return w / h;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
//#endregion
|
|
146
|
+
export { parseTimeString as i, parseRangeString as n, parseTimesplits as r, parseAspectRatio as t };
|
package/dist/utils.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { parseAspectRatio, parseRangeString };
|
|
1
|
+
import { a as TimesplitOutput, i as TimesplitInput, n as parseRangeString, o as parseTimesplits, r as parseTimeString, t as parseAspectRatio } from "./utils-BwHfBd2q.mjs";
|
|
2
|
+
export { TimesplitInput, TimesplitOutput, parseAspectRatio, parseRangeString, parseTimeString, parseTimesplits };
|
package/dist/utils.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { i as parseTimeString, n as parseRangeString, r as parseTimesplits, t as parseAspectRatio } from "./utils-DDsoDrrS.mjs";
|
|
2
2
|
|
|
3
|
-
export { parseAspectRatio, parseRangeString };
|
|
3
|
+
export { parseAspectRatio, parseRangeString, parseTimeString, parseTimesplits };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slidev/parser",
|
|
3
|
-
"version": "52.
|
|
3
|
+
"version": "52.6.0",
|
|
4
4
|
"description": "Markdown parser for Slidev",
|
|
5
5
|
"author": "Anthony Fu <anthonyfu117@hotmail.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -12,26 +12,15 @@
|
|
|
12
12
|
},
|
|
13
13
|
"bugs": "https://github.com/slidevjs/slidev/issues",
|
|
14
14
|
"exports": {
|
|
15
|
-
".":
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"./
|
|
20
|
-
"types": "./dist/core.d.mts",
|
|
21
|
-
"import": "./dist/core.mjs"
|
|
22
|
-
},
|
|
23
|
-
"./fs": {
|
|
24
|
-
"types": "./dist/fs.d.mts",
|
|
25
|
-
"import": "./dist/fs.mjs"
|
|
26
|
-
},
|
|
27
|
-
"./utils": {
|
|
28
|
-
"types": "./dist/utils.d.mts",
|
|
29
|
-
"import": "./dist/utils.mjs"
|
|
30
|
-
}
|
|
15
|
+
".": "./dist/index.mjs",
|
|
16
|
+
"./core": "./dist/core.mjs",
|
|
17
|
+
"./fs": "./dist/fs.mjs",
|
|
18
|
+
"./utils": "./dist/utils.mjs",
|
|
19
|
+
"./package.json": "./package.json"
|
|
31
20
|
},
|
|
32
|
-
"main": "dist/index.mjs",
|
|
33
|
-
"module": "dist/index.mjs",
|
|
34
|
-
"types": "dist/index.d.mts",
|
|
21
|
+
"main": "./dist/index.mjs",
|
|
22
|
+
"module": "./dist/index.mjs",
|
|
23
|
+
"types": "./dist/index.d.mts",
|
|
35
24
|
"files": [
|
|
36
25
|
"*.d.ts",
|
|
37
26
|
"dist"
|
|
@@ -42,10 +31,10 @@
|
|
|
42
31
|
"dependencies": {
|
|
43
32
|
"@antfu/utils": "^9.3.0",
|
|
44
33
|
"yaml": "^2.8.1",
|
|
45
|
-
"@slidev/types": "52.
|
|
34
|
+
"@slidev/types": "52.6.0"
|
|
46
35
|
},
|
|
47
36
|
"scripts": {
|
|
48
|
-
"build": "tsdown
|
|
37
|
+
"build": "tsdown",
|
|
49
38
|
"dev": "nr build --watch"
|
|
50
39
|
}
|
|
51
40
|
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
//#region src/utils.d.ts
|
|
2
|
-
/**
|
|
3
|
-
* 1,3-5,8 => [1, 3, 4, 5, 8]
|
|
4
|
-
*/
|
|
5
|
-
declare function parseRangeString(total: number, rangeStr?: string): number[];
|
|
6
|
-
/**
|
|
7
|
-
* Accepts `16/9` `1:1` `3x4`
|
|
8
|
-
*/
|
|
9
|
-
declare function parseAspectRatio(str: string | number): number;
|
|
10
|
-
//#endregion
|
|
11
|
-
export { parseAspectRatio, parseRangeString };
|
package/dist/utils-CLLoIRbA.mjs
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { isNumber, range, uniq } from "@antfu/utils";
|
|
2
|
-
|
|
3
|
-
//#region src/utils.ts
|
|
4
|
-
/**
|
|
5
|
-
* 1,3-5,8 => [1, 3, 4, 5, 8]
|
|
6
|
-
*/
|
|
7
|
-
function parseRangeString(total, rangeStr) {
|
|
8
|
-
if (!rangeStr || rangeStr === "all" || rangeStr === "*") return range(1, total + 1);
|
|
9
|
-
if (rangeStr === "none") return [];
|
|
10
|
-
const indexes = [];
|
|
11
|
-
for (const part of rangeStr.split(/[,;]/g)) if (!part.includes("-")) indexes.push(+part);
|
|
12
|
-
else {
|
|
13
|
-
const [start, end] = part.split("-", 2);
|
|
14
|
-
indexes.push(...range(+start, !end ? total + 1 : +end + 1));
|
|
15
|
-
}
|
|
16
|
-
return uniq(indexes).filter((i) => i <= total).sort((a, b) => a - b);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Accepts `16/9` `1:1` `3x4`
|
|
20
|
-
*/
|
|
21
|
-
function parseAspectRatio(str) {
|
|
22
|
-
if (isNumber(str)) return str;
|
|
23
|
-
if (!Number.isNaN(+str)) return +str;
|
|
24
|
-
const [wStr = "", hStr = ""] = str.split(/[:/x|]/);
|
|
25
|
-
const w = Number.parseFloat(wStr.trim());
|
|
26
|
-
const h = Number.parseFloat(hStr.trim());
|
|
27
|
-
if (Number.isNaN(w) || Number.isNaN(h) || h === 0) throw new Error(`Invalid aspect ratio "${str}"`);
|
|
28
|
-
return w / h;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
//#endregion
|
|
32
|
-
export { parseAspectRatio, parseRangeString };
|