@slidev/parser 0.50.0-beta.3 → 0.50.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.
@@ -0,0 +1,37 @@
1
+ // src/utils.ts
2
+ import { isNumber, range, uniq } from "@antfu/utils";
3
+ function parseRangeString(total, rangeStr) {
4
+ if (!rangeStr || rangeStr === "all" || rangeStr === "*")
5
+ return range(1, total + 1);
6
+ if (rangeStr === "none")
7
+ return [];
8
+ const pages = [];
9
+ for (const part of rangeStr.split(/[,;]/g)) {
10
+ if (!part.includes("-")) {
11
+ pages.push(+part);
12
+ } else {
13
+ const [start, end] = part.split("-", 2);
14
+ pages.push(
15
+ ...range(+start, !end ? total + 1 : +end + 1)
16
+ );
17
+ }
18
+ }
19
+ return uniq(pages).filter((i) => i <= total).sort((a, b) => a - b);
20
+ }
21
+ function parseAspectRatio(str) {
22
+ if (isNumber(str))
23
+ return str;
24
+ if (!Number.isNaN(+str))
25
+ return +str;
26
+ const [wStr = "", hStr = ""] = str.split(/[:/x|]/);
27
+ const w = Number.parseFloat(wStr.trim());
28
+ const h = Number.parseFloat(hStr.trim());
29
+ if (Number.isNaN(w) || Number.isNaN(h) || h === 0)
30
+ throw new Error(`Invalid aspect ratio "${str}"`);
31
+ return w / h;
32
+ }
33
+
34
+ export {
35
+ parseRangeString,
36
+ parseAspectRatio
37
+ };
@@ -1,44 +1,13 @@
1
+ import {
2
+ parseAspectRatio
3
+ } from "./chunk-KUD5POMT.mjs";
4
+
1
5
  // src/core.ts
2
6
  import { ensurePrefix } from "@antfu/utils";
3
7
  import YAML from "yaml";
4
8
 
5
9
  // src/config.ts
6
- import { toArray, uniq as uniq2 } from "@antfu/utils";
7
-
8
- // src/utils.ts
9
- import { isNumber, range, uniq } from "@antfu/utils";
10
- function parseRangeString(total, rangeStr) {
11
- if (!rangeStr || rangeStr === "all" || rangeStr === "*")
12
- return range(1, total + 1);
13
- if (rangeStr === "none")
14
- return [];
15
- const pages = [];
16
- for (const part of rangeStr.split(/[,;]/g)) {
17
- if (!part.includes("-")) {
18
- pages.push(+part);
19
- } else {
20
- const [start, end] = part.split("-", 2);
21
- pages.push(
22
- ...range(+start, !end ? total + 1 : +end + 1)
23
- );
24
- }
25
- }
26
- return uniq(pages).filter((i) => i <= total).sort((a, b) => a - b);
27
- }
28
- function parseAspectRatio(str) {
29
- if (isNumber(str))
30
- return str;
31
- if (!Number.isNaN(+str))
32
- return +str;
33
- const [wStr = "", hStr = ""] = str.split(/[:/x|]/);
34
- const w = Number.parseFloat(wStr.trim());
35
- const h = Number.parseFloat(hStr.trim());
36
- if (Number.isNaN(w) || Number.isNaN(h) || h === 0)
37
- throw new Error(`Invalid aspect ratio "${str}"`);
38
- return w / h;
39
- }
40
-
41
- // src/config.ts
10
+ import { toArray, uniq } from "@antfu/utils";
42
11
  function getDefaultConfig() {
43
12
  return {
44
13
  theme: "default",
@@ -144,7 +113,7 @@ function resolveFonts(fonts = {}) {
144
113
  const weights = toArray(fonts.weights || "200,400,600").flatMap((i) => i.toString().split(/,\s*/g)).map((i) => i.trim());
145
114
  const custom = toArray(fonts.custom).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
146
115
  const local = toArray(fonts.local).flatMap((i) => i.split(/,\s*/g)).map((i) => i.trim());
147
- const webfonts = fonts.webfonts ? fonts.webfonts : fallbacks ? uniq2([...sans, ...serif, ...mono, ...custom]) : [];
116
+ const webfonts = fonts.webfonts ? fonts.webfonts : fallbacks ? uniq([...sans, ...serif, ...mono, ...custom]) : [];
148
117
  webfonts.filter((i) => local.includes(i));
149
118
  function toQuoted(font) {
150
119
  if (/^(['"]).*\1$/.test(font))
@@ -152,7 +121,7 @@ function resolveFonts(fonts = {}) {
152
121
  return `"${font}"`;
153
122
  }
154
123
  if (fallbacks) {
155
- sans = uniq2([
124
+ sans = uniq([
156
125
  ...sans.map(toQuoted),
157
126
  "ui-sans-serif",
158
127
  "system-ui",
@@ -169,7 +138,7 @@ function resolveFonts(fonts = {}) {
169
138
  '"Segoe UI Symbol"',
170
139
  '"Noto Color Emoji"'
171
140
  ]);
172
- serif = uniq2([
141
+ serif = uniq([
173
142
  ...serif.map(toQuoted),
174
143
  "ui-serif",
175
144
  "Georgia",
@@ -178,7 +147,7 @@ function resolveFonts(fonts = {}) {
178
147
  "Times",
179
148
  "serif"
180
149
  ]);
181
- mono = uniq2([
150
+ mono = uniq([
182
151
  ...mono.map(toQuoted),
183
152
  "ui-monospace",
184
153
  "SFMono-Regular",
@@ -477,8 +446,6 @@ function hash(str) {
477
446
  }
478
447
 
479
448
  export {
480
- parseRangeString,
481
- parseAspectRatio,
482
449
  getDefaultConfig,
483
450
  resolveConfig,
484
451
  verifyConfig,
package/dist/core.d.mts CHANGED
@@ -1,19 +1,11 @@
1
1
  import { SlidevConfig, SlidevThemeMeta, FontOptions, ResolvedFontOptions, SlidevMarkdown, SourceSlideInfo, SlidevDetectedFeatures, SlidevPreparserExtension } from '@slidev/types';
2
+ export { parseAspectRatio, parseRangeString } from './utils.mjs';
2
3
 
3
4
  declare function getDefaultConfig(): SlidevConfig;
4
5
  declare function resolveConfig(headmatter: any, themeMeta?: SlidevThemeMeta, filepath?: string, verify?: boolean): SlidevConfig;
5
6
  declare function verifyConfig(config: SlidevConfig, themeMeta?: SlidevThemeMeta, warn?: (v: string) => void): void;
6
7
  declare function resolveFonts(fonts?: FontOptions): ResolvedFontOptions;
7
8
 
8
- /**
9
- * 1,3-5,8 => [1, 3, 4, 5, 8]
10
- */
11
- declare function parseRangeString(total: number, rangeStr?: string): number[];
12
- /**
13
- * Accepts `16/9` `1:1` `3x4`
14
- */
15
- declare function parseAspectRatio(str: string | number): number;
16
-
17
9
  interface SlidevParserOptions {
18
10
  noParseYAML?: boolean;
19
11
  preserveCR?: boolean;
@@ -27,4 +19,4 @@ declare function parseSlide(raw: string, options?: SlidevParserOptions): Omit<So
27
19
  declare function parse(markdown: string, filepath: string, extensions?: SlidevPreparserExtension[], options?: SlidevParserOptions): Promise<SlidevMarkdown>;
28
20
  declare function parseSync(markdown: string, filepath: string, options?: SlidevParserOptions): SlidevMarkdown;
29
21
 
30
- export { type SlidevParserOptions, detectFeatures, getDefaultConfig, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig };
22
+ export { type SlidevParserOptions, detectFeatures, getDefaultConfig, parse, parseSlide, parseSync, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig };
package/dist/core.mjs CHANGED
@@ -2,8 +2,6 @@ import {
2
2
  detectFeatures,
3
3
  getDefaultConfig,
4
4
  parse,
5
- parseAspectRatio,
6
- parseRangeString,
7
5
  parseSlide,
8
6
  parseSync,
9
7
  prettify,
@@ -13,7 +11,11 @@ import {
13
11
  stringify,
14
12
  stringifySlide,
15
13
  verifyConfig
16
- } from "./chunk-R2T34HUD.mjs";
14
+ } from "./chunk-QBSOSQIN.mjs";
15
+ import {
16
+ parseAspectRatio,
17
+ parseRangeString
18
+ } from "./chunk-KUD5POMT.mjs";
17
19
  export {
18
20
  detectFeatures,
19
21
  getDefaultConfig,
package/dist/fs.d.mts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { PreparserExtensionLoader, SlidevData, SlidevMarkdown } from '@slidev/types';
2
- export { SlidevParserOptions, detectFeatures, getDefaultConfig, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig } from './core.mjs';
2
+ export { SlidevParserOptions, detectFeatures, getDefaultConfig, parse, parseSlide, parseSync, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig } from './core.mjs';
3
+ export { parseAspectRatio, parseRangeString } from './utils.mjs';
3
4
 
4
5
  declare function injectPreparserExtensionLoader(fn: PreparserExtensionLoader): void;
5
6
  /**
package/dist/fs.mjs CHANGED
@@ -2,8 +2,6 @@ import {
2
2
  detectFeatures,
3
3
  getDefaultConfig,
4
4
  parse,
5
- parseAspectRatio,
6
- parseRangeString,
7
5
  parseSlide,
8
6
  parseSync,
9
7
  prettify,
@@ -13,7 +11,11 @@ import {
13
11
  stringify,
14
12
  stringifySlide,
15
13
  verifyConfig
16
- } from "./chunk-R2T34HUD.mjs";
14
+ } from "./chunk-QBSOSQIN.mjs";
15
+ import {
16
+ parseAspectRatio,
17
+ parseRangeString
18
+ } from "./chunk-KUD5POMT.mjs";
17
19
 
18
20
  // src/fs.ts
19
21
  import fs from "node:fs";
package/dist/index.d.mts CHANGED
@@ -1,2 +1,3 @@
1
- export { SlidevParserOptions, detectFeatures, getDefaultConfig, parse, parseAspectRatio, parseRangeString, parseSlide, parseSync, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig } from './core.mjs';
1
+ export { SlidevParserOptions, detectFeatures, getDefaultConfig, parse, parseSlide, parseSync, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig } from './core.mjs';
2
+ export { parseAspectRatio, parseRangeString } from './utils.mjs';
2
3
  import '@slidev/types';
package/dist/index.mjs CHANGED
@@ -2,8 +2,6 @@ import {
2
2
  detectFeatures,
3
3
  getDefaultConfig,
4
4
  parse,
5
- parseAspectRatio,
6
- parseRangeString,
7
5
  parseSlide,
8
6
  parseSync,
9
7
  prettify,
@@ -13,7 +11,11 @@ import {
13
11
  stringify,
14
12
  stringifySlide,
15
13
  verifyConfig
16
- } from "./chunk-R2T34HUD.mjs";
14
+ } from "./chunk-QBSOSQIN.mjs";
15
+ import {
16
+ parseAspectRatio,
17
+ parseRangeString
18
+ } from "./chunk-KUD5POMT.mjs";
17
19
  export {
18
20
  detectFeatures,
19
21
  getDefaultConfig,
@@ -0,0 +1,10 @@
1
+ /**
2
+ * 1,3-5,8 => [1, 3, 4, 5, 8]
3
+ */
4
+ declare function parseRangeString(total: number, rangeStr?: string): number[];
5
+ /**
6
+ * Accepts `16/9` `1:1` `3x4`
7
+ */
8
+ declare function parseAspectRatio(str: string | number): number;
9
+
10
+ export { parseAspectRatio, parseRangeString };
package/dist/utils.mjs ADDED
@@ -0,0 +1,8 @@
1
+ import {
2
+ parseAspectRatio,
3
+ parseRangeString
4
+ } from "./chunk-KUD5POMT.mjs";
5
+ export {
6
+ parseAspectRatio,
7
+ parseRangeString
8
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slidev/parser",
3
- "version": "0.50.0-beta.3",
3
+ "version": "0.50.0-beta.5",
4
4
  "description": "Markdown parser for Slidev",
5
5
  "author": "antfu <anthonyfu117@hotmail.com>",
6
6
  "license": "MIT",
@@ -23,6 +23,10 @@
23
23
  "./fs": {
24
24
  "types": "./dist/fs.d.mts",
25
25
  "import": "./dist/fs.mjs"
26
+ },
27
+ "./utils": {
28
+ "types": "./dist/utils.d.mts",
29
+ "import": "./dist/utils.mjs"
26
30
  }
27
31
  },
28
32
  "main": "dist/index.mjs",
@@ -37,11 +41,11 @@
37
41
  },
38
42
  "dependencies": {
39
43
  "@antfu/utils": "^0.7.10",
40
- "yaml": "^2.5.1",
41
- "@slidev/types": "0.50.0-beta.3"
44
+ "yaml": "^2.6.0",
45
+ "@slidev/types": "0.50.0-beta.5"
42
46
  },
43
47
  "scripts": {
44
- "build": "rimraf dist && tsup src/index.ts src/core.ts src/fs.ts",
48
+ "build": "rimraf dist && tsup src/index.ts src/core.ts src/fs.ts src/utils.ts",
45
49
  "dev": "nr build --watch"
46
50
  }
47
51
  }