@slidev/parser 0.35.4 → 0.36.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.
@@ -135,7 +135,9 @@ function parseRangeString(total, rangeStr) {
135
135
  pages.push(+part);
136
136
  } else {
137
137
  const [start, end] = part.split("-", 2);
138
- pages.push(...range(+start, !end ? total + 1 : +end + 1));
138
+ pages.push(
139
+ ...range(+start, !end ? total + 1 : +end + 1)
140
+ );
139
141
  }
140
142
  }
141
143
  return uniq(pages).filter((i) => i <= total).sort((a, b) => a - b);
@@ -154,7 +156,7 @@ function parseAspectRatio(str) {
154
156
  }
155
157
 
156
158
  // src/config.ts
157
- function resolveConfig(headmatter, themeMeta = {}, verify = false) {
159
+ function resolveConfig(headmatter, themeMeta = {}, filepath, verify = false) {
158
160
  var _a, _b;
159
161
  const themeHightlighter = ["prism", "shiki"].includes(themeMeta.highlighter || "") ? themeMeta.highlighter : void 0;
160
162
  const themeColorSchema = ["light", "dark"].includes(themeMeta.colorSchema || "") ? themeMeta.colorSchema : void 0;
@@ -194,7 +196,7 @@ function resolveConfig(headmatter, themeMeta = {}, verify = false) {
194
196
  ...(_b = headmatter.config) == null ? void 0 : _b.fonts,
195
197
  ...headmatter == null ? void 0 : headmatter.fonts
196
198
  }),
197
- drawings: resolveDrawings(headmatter.drawings)
199
+ drawings: resolveDrawings(headmatter.drawings, filepath)
198
200
  };
199
201
  if (config.colorSchema !== "dark" && config.colorSchema !== "light")
200
202
  config.colorSchema = "auto";
@@ -216,10 +218,6 @@ function verifyConfig(config, themeMeta = {}, warn = (v) => console.warn(`[slide
216
218
  warn(`Unsupported Atomic CSS engine "${config.css}", fallback to Windi CSS`);
217
219
  config.css = "windicss";
218
220
  }
219
- if (config.css === "unocss") {
220
- warn("UnoCSS support is experimental, the styling might break without following semver.");
221
- warn("We suggest pinning the version of Slidev when using experimental features.");
222
- }
223
221
  }
224
222
  function resolveFonts(fonts = {}) {
225
223
  const {
@@ -290,14 +288,15 @@ function resolveFonts(fonts = {}) {
290
288
  weights
291
289
  };
292
290
  }
293
- function resolveDrawings(options = {}) {
291
+ function resolveDrawings(options = {}, filepath) {
292
+ var _a;
294
293
  const {
295
294
  enabled = true,
296
295
  persist = false,
297
296
  presenterOnly = false,
298
297
  syncAll = true
299
298
  } = options;
300
- const persistPath = typeof persist === "string" ? persist : persist ? ".slidev/drawings" : false;
299
+ const persistPath = typeof persist === "string" ? persist : persist ? `.slidev/drawings${filepath ? `/${(_a = filepath.match(/([^\\\/]+?)(\.\w+)?$/)) == null ? void 0 : _a[1]}` : ""}` : false;
301
300
  return {
302
301
  enabled,
303
302
  persist: persistPath,
@@ -349,12 +348,15 @@ function prettify(data) {
349
348
  }
350
349
  function matter(code) {
351
350
  let data = {};
352
- const content = code.replace(/^---.*\r?\n([\s\S]*?)---/, (_, d) => {
353
- data = YAML.load(d);
354
- if (!isObject(data))
355
- data = {};
356
- return "";
357
- });
351
+ const content = code.replace(
352
+ /^---.*\r?\n([\s\S]*?)---/,
353
+ (_, d) => {
354
+ data = YAML.load(d);
355
+ if (!isObject(data))
356
+ data = {};
357
+ return "";
358
+ }
359
+ );
358
360
  return { data, content };
359
361
  }
360
362
  function detectFeatures(code) {
@@ -438,7 +440,7 @@ function parse(markdown, filepath, themeMeta) {
438
440
  slice(lines.length);
439
441
  const headmatter = ((_a = slides[0]) == null ? void 0 : _a.frontmatter) || {};
440
442
  headmatter.title = headmatter.title || ((_b = slides[0]) == null ? void 0 : _b.title);
441
- const config = resolveConfig(headmatter, themeMeta);
443
+ const config = resolveConfig(headmatter, themeMeta, filepath);
442
444
  const features = detectFeatures(markdown);
443
445
  return {
444
446
  raw: markdown,
@@ -135,7 +135,9 @@ function parseRangeString(total, rangeStr) {
135
135
  pages.push(+part);
136
136
  } else {
137
137
  const [start, end] = part.split("-", 2);
138
- pages.push(...range(+start, !end ? total + 1 : +end + 1));
138
+ pages.push(
139
+ ...range(+start, !end ? total + 1 : +end + 1)
140
+ );
139
141
  }
140
142
  }
141
143
  return uniq(pages).filter((i) => i <= total).sort((a, b) => a - b);
@@ -154,7 +156,7 @@ function parseAspectRatio(str) {
154
156
  }
155
157
 
156
158
  // src/config.ts
157
- function resolveConfig(headmatter, themeMeta = {}, verify = false) {
159
+ function resolveConfig(headmatter, themeMeta = {}, filepath, verify = false) {
158
160
  var _a, _b;
159
161
  const themeHightlighter = ["prism", "shiki"].includes(themeMeta.highlighter || "") ? themeMeta.highlighter : void 0;
160
162
  const themeColorSchema = ["light", "dark"].includes(themeMeta.colorSchema || "") ? themeMeta.colorSchema : void 0;
@@ -194,7 +196,7 @@ function resolveConfig(headmatter, themeMeta = {}, verify = false) {
194
196
  ...(_b = headmatter.config) == null ? void 0 : _b.fonts,
195
197
  ...headmatter == null ? void 0 : headmatter.fonts
196
198
  }),
197
- drawings: resolveDrawings(headmatter.drawings)
199
+ drawings: resolveDrawings(headmatter.drawings, filepath)
198
200
  };
199
201
  if (config.colorSchema !== "dark" && config.colorSchema !== "light")
200
202
  config.colorSchema = "auto";
@@ -216,10 +218,6 @@ function verifyConfig(config, themeMeta = {}, warn = (v) => console.warn(`[slide
216
218
  warn(`Unsupported Atomic CSS engine "${config.css}", fallback to Windi CSS`);
217
219
  config.css = "windicss";
218
220
  }
219
- if (config.css === "unocss") {
220
- warn("UnoCSS support is experimental, the styling might break without following semver.");
221
- warn("We suggest pinning the version of Slidev when using experimental features.");
222
- }
223
221
  }
224
222
  function resolveFonts(fonts = {}) {
225
223
  const {
@@ -290,14 +288,15 @@ function resolveFonts(fonts = {}) {
290
288
  weights
291
289
  };
292
290
  }
293
- function resolveDrawings(options = {}) {
291
+ function resolveDrawings(options = {}, filepath) {
292
+ var _a;
294
293
  const {
295
294
  enabled = true,
296
295
  persist = false,
297
296
  presenterOnly = false,
298
297
  syncAll = true
299
298
  } = options;
300
- const persistPath = typeof persist === "string" ? persist : persist ? ".slidev/drawings" : false;
299
+ const persistPath = typeof persist === "string" ? persist : persist ? `.slidev/drawings${filepath ? `/${(_a = filepath.match(/([^\\\/]+?)(\.\w+)?$/)) == null ? void 0 : _a[1]}` : ""}` : false;
301
300
  return {
302
301
  enabled,
303
302
  persist: persistPath,
@@ -349,12 +348,15 @@ function prettify(data) {
349
348
  }
350
349
  function matter(code) {
351
350
  let data = {};
352
- const content = code.replace(/^---.*\r?\n([\s\S]*?)---/, (_, d) => {
353
- data = _jsyaml2.default.load(d);
354
- if (!isObject(data))
355
- data = {};
356
- return "";
357
- });
351
+ const content = code.replace(
352
+ /^---.*\r?\n([\s\S]*?)---/,
353
+ (_, d) => {
354
+ data = _jsyaml2.default.load(d);
355
+ if (!isObject(data))
356
+ data = {};
357
+ return "";
358
+ }
359
+ );
358
360
  return { data, content };
359
361
  }
360
362
  function detectFeatures(code) {
@@ -438,7 +440,7 @@ function parse(markdown, filepath, themeMeta) {
438
440
  slice(lines.length);
439
441
  const headmatter = ((_a = slides[0]) == null ? void 0 : _a.frontmatter) || {};
440
442
  headmatter.title = headmatter.title || ((_b = slides[0]) == null ? void 0 : _b.title);
441
- const config = resolveConfig(headmatter, themeMeta);
443
+ const config = resolveConfig(headmatter, themeMeta, filepath);
442
444
  const features = detectFeatures(markdown);
443
445
  return {
444
446
  raw: markdown,
package/dist/core.d.ts CHANGED
@@ -9,7 +9,7 @@ declare function parseRangeString(total: number, rangeStr?: string): number[];
9
9
  */
10
10
  declare function parseAspectRatio(str: string | number): number;
11
11
 
12
- declare function resolveConfig(headmatter: any, themeMeta?: SlidevThemeMeta, verify?: boolean): SlidevConfig;
12
+ declare function resolveConfig(headmatter: any, themeMeta?: SlidevThemeMeta, filepath?: string, verify?: boolean): SlidevConfig;
13
13
  declare function verifyConfig(config: SlidevConfig, themeMeta?: SlidevThemeMeta, warn?: (v: string) => void): void;
14
14
  declare function resolveFonts(fonts?: FontOptions): ResolvedFontOptions;
15
15
 
package/dist/core.js CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- var _chunkQTXEXD4Xjs = require('./chunk-QTXEXD4X.js');
17
+ var _chunkPOYSXW27js = require('./chunk-POYSXW27.js');
18
18
 
19
19
 
20
20
 
@@ -31,4 +31,4 @@ var _chunkQTXEXD4Xjs = require('./chunk-QTXEXD4X.js');
31
31
 
32
32
 
33
33
 
34
- exports.detectFeatures = _chunkQTXEXD4Xjs.detectFeatures; exports.filterDisabled = _chunkQTXEXD4Xjs.filterDisabled; exports.mergeFeatureFlags = _chunkQTXEXD4Xjs.mergeFeatureFlags; exports.parse = _chunkQTXEXD4Xjs.parse; exports.parseAspectRatio = _chunkQTXEXD4Xjs.parseAspectRatio; exports.parseRangeString = _chunkQTXEXD4Xjs.parseRangeString; exports.parseSlide = _chunkQTXEXD4Xjs.parseSlide; exports.prettify = _chunkQTXEXD4Xjs.prettify; exports.prettifySlide = _chunkQTXEXD4Xjs.prettifySlide; exports.resolveConfig = _chunkQTXEXD4Xjs.resolveConfig; exports.resolveFonts = _chunkQTXEXD4Xjs.resolveFonts; exports.scanMonacoModules = _chunkQTXEXD4Xjs.scanMonacoModules; exports.stringify = _chunkQTXEXD4Xjs.stringify; exports.stringifySlide = _chunkQTXEXD4Xjs.stringifySlide; exports.verifyConfig = _chunkQTXEXD4Xjs.verifyConfig;
34
+ exports.detectFeatures = _chunkPOYSXW27js.detectFeatures; exports.filterDisabled = _chunkPOYSXW27js.filterDisabled; exports.mergeFeatureFlags = _chunkPOYSXW27js.mergeFeatureFlags; exports.parse = _chunkPOYSXW27js.parse; exports.parseAspectRatio = _chunkPOYSXW27js.parseAspectRatio; exports.parseRangeString = _chunkPOYSXW27js.parseRangeString; exports.parseSlide = _chunkPOYSXW27js.parseSlide; exports.prettify = _chunkPOYSXW27js.prettify; exports.prettifySlide = _chunkPOYSXW27js.prettifySlide; exports.resolveConfig = _chunkPOYSXW27js.resolveConfig; exports.resolveFonts = _chunkPOYSXW27js.resolveFonts; exports.scanMonacoModules = _chunkPOYSXW27js.scanMonacoModules; exports.stringify = _chunkPOYSXW27js.stringify; exports.stringifySlide = _chunkPOYSXW27js.stringifySlide; exports.verifyConfig = _chunkPOYSXW27js.verifyConfig;
package/dist/core.mjs CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  stringify,
15
15
  stringifySlide,
16
16
  verifyConfig
17
- } from "./chunk-O5ABVILF.mjs";
17
+ } from "./chunk-HAH3WBCS.mjs";
18
18
  export {
19
19
  detectFeatures,
20
20
  filterDisabled,
package/dist/fs.js CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- var _chunkQTXEXD4Xjs = require('./chunk-QTXEXD4X.js');
17
+ var _chunkPOYSXW27js = require('./chunk-POYSXW27.js');
18
18
 
19
19
  // src/fs.ts
20
20
  var _fs = require('fs');
@@ -22,7 +22,7 @@ var _path = require('path');
22
22
  async function load(filepath, themeMeta, content) {
23
23
  const dir = _path.dirname.call(void 0, filepath);
24
24
  const markdown = content != null ? content : await _fs.promises.readFile(filepath, "utf-8");
25
- const data = _chunkQTXEXD4Xjs.parse.call(void 0, markdown, filepath, themeMeta);
25
+ const data = _chunkPOYSXW27js.parse.call(void 0, markdown, filepath, themeMeta);
26
26
  const entries = /* @__PURE__ */ new Set([
27
27
  filepath
28
28
  ]);
@@ -36,7 +36,7 @@ async function load(filepath, themeMeta, content) {
36
36
  const srcExpression = baseSlide.frontmatter.src;
37
37
  const path = _path.resolve.call(void 0, dir, srcExpression);
38
38
  const raw = await _fs.promises.readFile(path, "utf-8");
39
- const subSlides = _chunkQTXEXD4Xjs.parse.call(void 0, raw, path, themeMeta);
39
+ const subSlides = _chunkPOYSXW27js.parse.call(void 0, raw, path, themeMeta);
40
40
  for (const [offset, subSlide] of subSlides.slides.entries()) {
41
41
  const slide = { ...baseSlide };
42
42
  slide.source = {
@@ -57,7 +57,7 @@ async function load(filepath, themeMeta, content) {
57
57
  ...baseSlideFrontMatterWithoutSrc,
58
58
  srcSequence: `${baseSlide.frontmatter.srcSequence ? `${baseSlide.frontmatter.srcSequence},` : ""}${srcExpression}`
59
59
  };
60
- data.features = _chunkQTXEXD4Xjs.mergeFeatureFlags.call(void 0, data.features, _chunkQTXEXD4Xjs.detectFeatures.call(void 0, raw));
60
+ data.features = _chunkPOYSXW27js.mergeFeatureFlags.call(void 0, data.features, _chunkPOYSXW27js.detectFeatures.call(void 0, raw));
61
61
  entries.add(path);
62
62
  data.slides.splice(iSlide + offset, 0, slide);
63
63
  }
@@ -69,10 +69,10 @@ async function load(filepath, themeMeta, content) {
69
69
  }
70
70
  async function save(data, filepath) {
71
71
  filepath = filepath || data.filepath;
72
- await _fs.promises.writeFile(filepath, _chunkQTXEXD4Xjs.stringify.call(void 0, data), "utf-8");
72
+ await _fs.promises.writeFile(filepath, _chunkPOYSXW27js.stringify.call(void 0, data), "utf-8");
73
73
  }
74
74
  async function saveExternalSlide(slide) {
75
- await _fs.promises.writeFile(slide.filepath, _chunkQTXEXD4Xjs.stringifySlide.call(void 0, slide), "utf-8");
75
+ await _fs.promises.writeFile(slide.filepath, _chunkPOYSXW27js.stringifySlide.call(void 0, slide), "utf-8");
76
76
  }
77
77
 
78
78
 
@@ -93,4 +93,4 @@ async function saveExternalSlide(slide) {
93
93
 
94
94
 
95
95
 
96
- exports.detectFeatures = _chunkQTXEXD4Xjs.detectFeatures; exports.filterDisabled = _chunkQTXEXD4Xjs.filterDisabled; exports.load = load; exports.mergeFeatureFlags = _chunkQTXEXD4Xjs.mergeFeatureFlags; exports.parse = _chunkQTXEXD4Xjs.parse; exports.parseAspectRatio = _chunkQTXEXD4Xjs.parseAspectRatio; exports.parseRangeString = _chunkQTXEXD4Xjs.parseRangeString; exports.parseSlide = _chunkQTXEXD4Xjs.parseSlide; exports.prettify = _chunkQTXEXD4Xjs.prettify; exports.prettifySlide = _chunkQTXEXD4Xjs.prettifySlide; exports.resolveConfig = _chunkQTXEXD4Xjs.resolveConfig; exports.resolveFonts = _chunkQTXEXD4Xjs.resolveFonts; exports.save = save; exports.saveExternalSlide = saveExternalSlide; exports.scanMonacoModules = _chunkQTXEXD4Xjs.scanMonacoModules; exports.stringify = _chunkQTXEXD4Xjs.stringify; exports.stringifySlide = _chunkQTXEXD4Xjs.stringifySlide; exports.verifyConfig = _chunkQTXEXD4Xjs.verifyConfig;
96
+ exports.detectFeatures = _chunkPOYSXW27js.detectFeatures; exports.filterDisabled = _chunkPOYSXW27js.filterDisabled; exports.load = load; exports.mergeFeatureFlags = _chunkPOYSXW27js.mergeFeatureFlags; exports.parse = _chunkPOYSXW27js.parse; exports.parseAspectRatio = _chunkPOYSXW27js.parseAspectRatio; exports.parseRangeString = _chunkPOYSXW27js.parseRangeString; exports.parseSlide = _chunkPOYSXW27js.parseSlide; exports.prettify = _chunkPOYSXW27js.prettify; exports.prettifySlide = _chunkPOYSXW27js.prettifySlide; exports.resolveConfig = _chunkPOYSXW27js.resolveConfig; exports.resolveFonts = _chunkPOYSXW27js.resolveFonts; exports.save = save; exports.saveExternalSlide = saveExternalSlide; exports.scanMonacoModules = _chunkPOYSXW27js.scanMonacoModules; exports.stringify = _chunkPOYSXW27js.stringify; exports.stringifySlide = _chunkPOYSXW27js.stringifySlide; exports.verifyConfig = _chunkPOYSXW27js.verifyConfig;
package/dist/fs.mjs CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  stringify,
15
15
  stringifySlide,
16
16
  verifyConfig
17
- } from "./chunk-O5ABVILF.mjs";
17
+ } from "./chunk-HAH3WBCS.mjs";
18
18
 
19
19
  // src/fs.ts
20
20
  import { promises as fs } from "fs";
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- var _chunkQTXEXD4Xjs = require('./chunk-QTXEXD4X.js');
17
+ var _chunkPOYSXW27js = require('./chunk-POYSXW27.js');
18
18
 
19
19
 
20
20
 
@@ -31,4 +31,4 @@ var _chunkQTXEXD4Xjs = require('./chunk-QTXEXD4X.js');
31
31
 
32
32
 
33
33
 
34
- exports.detectFeatures = _chunkQTXEXD4Xjs.detectFeatures; exports.filterDisabled = _chunkQTXEXD4Xjs.filterDisabled; exports.mergeFeatureFlags = _chunkQTXEXD4Xjs.mergeFeatureFlags; exports.parse = _chunkQTXEXD4Xjs.parse; exports.parseAspectRatio = _chunkQTXEXD4Xjs.parseAspectRatio; exports.parseRangeString = _chunkQTXEXD4Xjs.parseRangeString; exports.parseSlide = _chunkQTXEXD4Xjs.parseSlide; exports.prettify = _chunkQTXEXD4Xjs.prettify; exports.prettifySlide = _chunkQTXEXD4Xjs.prettifySlide; exports.resolveConfig = _chunkQTXEXD4Xjs.resolveConfig; exports.resolveFonts = _chunkQTXEXD4Xjs.resolveFonts; exports.scanMonacoModules = _chunkQTXEXD4Xjs.scanMonacoModules; exports.stringify = _chunkQTXEXD4Xjs.stringify; exports.stringifySlide = _chunkQTXEXD4Xjs.stringifySlide; exports.verifyConfig = _chunkQTXEXD4Xjs.verifyConfig;
34
+ exports.detectFeatures = _chunkPOYSXW27js.detectFeatures; exports.filterDisabled = _chunkPOYSXW27js.filterDisabled; exports.mergeFeatureFlags = _chunkPOYSXW27js.mergeFeatureFlags; exports.parse = _chunkPOYSXW27js.parse; exports.parseAspectRatio = _chunkPOYSXW27js.parseAspectRatio; exports.parseRangeString = _chunkPOYSXW27js.parseRangeString; exports.parseSlide = _chunkPOYSXW27js.parseSlide; exports.prettify = _chunkPOYSXW27js.prettify; exports.prettifySlide = _chunkPOYSXW27js.prettifySlide; exports.resolveConfig = _chunkPOYSXW27js.resolveConfig; exports.resolveFonts = _chunkPOYSXW27js.resolveFonts; exports.scanMonacoModules = _chunkPOYSXW27js.scanMonacoModules; exports.stringify = _chunkPOYSXW27js.stringify; exports.stringifySlide = _chunkPOYSXW27js.stringifySlide; exports.verifyConfig = _chunkPOYSXW27js.verifyConfig;
package/dist/index.mjs CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  stringify,
15
15
  stringifySlide,
16
16
  verifyConfig
17
- } from "./chunk-O5ABVILF.mjs";
17
+ } from "./chunk-HAH3WBCS.mjs";
18
18
  export {
19
19
  detectFeatures,
20
20
  filterDisabled,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slidev/parser",
3
- "version": "0.35.4",
3
+ "version": "0.36.0",
4
4
  "description": "Markdown parser for Slidev",
5
5
  "author": "antfu <anthonyfu117@hotmail.com>",
6
6
  "license": "MIT",
@@ -39,7 +39,7 @@
39
39
  "node": ">=14.0.0"
40
40
  },
41
41
  "dependencies": {
42
- "@slidev/types": "0.35.4",
42
+ "@slidev/types": "0.36.0",
43
43
  "js-yaml": "^4.1.0"
44
44
  },
45
45
  "scripts": {