@slidev/parser 0.48.0-beta.9 → 0.48.1

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.
@@ -30,14 +30,16 @@ var toString = (v) => Object.prototype.toString.call(v);
30
30
  function notNullish(v) {
31
31
  return v != null;
32
32
  }
33
- function isTruthy(v) {
34
- return Boolean(v);
35
- }
36
33
  var isNumber = (val) => typeof val === "number";
37
34
  var isObject = (val) => toString(val) === "[object Object]";
38
35
  function slash(str) {
39
36
  return str.replace(/\\/g, "/");
40
37
  }
38
+ function ensurePrefix(prefix, str) {
39
+ if (!str.startsWith(prefix))
40
+ return prefix + str;
41
+ return str;
42
+ }
41
43
  function objectMap(obj, fn) {
42
44
  return Object.fromEntries(
43
45
  Object.entries(obj).map(([k, v]) => fn(k, v)).filter(notNullish)
@@ -85,7 +87,9 @@ function getDefaultConfig() {
85
87
  titleTemplate: "%s - Slidev",
86
88
  addons: [],
87
89
  remoteAssets: false,
88
- monaco: "dev",
90
+ monaco: true,
91
+ monacoTypesSource: "local",
92
+ monacoTypesAdditionalPackages: [],
89
93
  download: false,
90
94
  export: {},
91
95
  info: false,
@@ -251,18 +255,18 @@ function stringify(data) {
251
255
  }
252
256
  function stringifySlide(data, idx = 0) {
253
257
  return data.raw.startsWith("---") || idx === 0 ? data.raw : `---
254
- ${data.raw.startsWith("\n") ? data.raw : `
255
- ${data.raw}`}`;
258
+ ${ensurePrefix("\n", data.raw)}`;
256
259
  }
257
260
  function prettifySlide(data) {
258
- data.content = `
261
+ const trimed = data.content.trim();
262
+ data.content = trimed ? `
259
263
  ${data.content.trim()}
260
- `;
261
- data.raw = Object.keys(data.frontmatter || {}).length ? data.frontmatterStyle === "yaml" ? `\`\`\`yaml
262
- ${YAML.dump(data.frontmatter).trim()}
264
+ ` : "";
265
+ data.raw = data.frontmatterRaw ? data.frontmatterStyle === "yaml" ? `\`\`\`yaml
266
+ ${data.frontmatterRaw.trim()}
263
267
  \`\`\`
264
268
  ${data.content}` : `---
265
- ${YAML.dump(data.frontmatter).trim()}
269
+ ${data.frontmatterRaw.trim()}
266
270
  ---
267
271
  ${data.content}` : data.content;
268
272
  if (data.note)
@@ -271,8 +275,6 @@ ${data.content}` : data.content;
271
275
  ${data.note.trim()}
272
276
  -->
273
277
  `;
274
- else
275
- data.raw += "\n";
276
278
  return data;
277
279
  }
278
280
  function prettify(data) {
@@ -414,18 +416,6 @@ async function parse(markdown, filepath, extensions) {
414
416
  function mergeFeatureFlags(a, b) {
415
417
  return objectMap(a, (k, v) => [k, v || b[k]]);
416
418
  }
417
- function scanMonacoModules(md) {
418
- const typeModules = /* @__PURE__ */ new Set();
419
- md.replace(/^```(\w+?)\s*{monaco([\w:,-]*)}[\s\n]*([\s\S]+?)^```/mg, (full, lang = "ts", options, code) => {
420
- options = options || "";
421
- lang = lang.trim();
422
- if (lang === "ts" || lang === "typescript") {
423
- Array.from(code.matchAll(/\s+from\s+(["'])([\/\w@-]+)\1/g)).map((i) => i[2]).filter(isTruthy).map((i) => typeModules.add(i));
424
- }
425
- return "";
426
- });
427
- return Array.from(typeModules);
428
- }
429
419
 
430
420
  export {
431
421
  slash,
@@ -442,6 +432,5 @@ export {
442
432
  detectFeatures,
443
433
  parseSlide,
444
434
  parse,
445
- mergeFeatureFlags,
446
- scanMonacoModules
435
+ mergeFeatureFlags
447
436
  };
package/dist/core.d.mts CHANGED
@@ -22,6 +22,5 @@ declare function detectFeatures(code: string): SlidevFeatureFlags;
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
24
  declare function mergeFeatureFlags(a: SlidevFeatureFlags, b: SlidevFeatureFlags): SlidevFeatureFlags;
25
- declare function scanMonacoModules(md: string): string[];
26
25
 
27
- export { detectFeatures, getDefaultConfig, mergeFeatureFlags, parse, parseAspectRatio, parseRangeString, parseSlide, prettify, prettifySlide, resolveConfig, resolveFonts, scanMonacoModules, stringify, stringifySlide, verifyConfig };
26
+ export { detectFeatures, getDefaultConfig, mergeFeatureFlags, parse, parseAspectRatio, parseRangeString, parseSlide, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig };
package/dist/core.mjs CHANGED
@@ -10,11 +10,10 @@ import {
10
10
  prettifySlide,
11
11
  resolveConfig,
12
12
  resolveFonts,
13
- scanMonacoModules,
14
13
  stringify,
15
14
  stringifySlide,
16
15
  verifyConfig
17
- } from "./chunk-TPG7RJUH.mjs";
16
+ } from "./chunk-OWSVF5RT.mjs";
18
17
  export {
19
18
  detectFeatures,
20
19
  getDefaultConfig,
@@ -27,7 +26,6 @@ export {
27
26
  prettifySlide,
28
27
  resolveConfig,
29
28
  resolveFonts,
30
- scanMonacoModules,
31
29
  stringify,
32
30
  stringifySlide,
33
31
  verifyConfig
package/dist/fs.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { PreparserExtensionLoader, SlidevData, SlidevMarkdown } from '@slidev/types';
2
- export { detectFeatures, getDefaultConfig, mergeFeatureFlags, parse, parseAspectRatio, parseRangeString, parseSlide, prettify, prettifySlide, resolveConfig, resolveFonts, scanMonacoModules, stringify, stringifySlide, verifyConfig } from './core.mjs';
2
+ export { detectFeatures, getDefaultConfig, mergeFeatureFlags, 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
  /**
@@ -7,7 +7,7 @@ declare function injectPreparserExtensionLoader(fn: PreparserExtensionLoader): v
7
7
  * because config and themeMeta depends on the theme to be loaded.
8
8
  */
9
9
  type LoadedSlidevData = Omit<SlidevData, 'config' | 'themeMeta'>;
10
- declare function load(userRoot: string, filepath: string, content?: string): Promise<LoadedSlidevData>;
10
+ declare function load(userRoot: string, filepath: string, content?: string, mode?: string): Promise<LoadedSlidevData>;
11
11
  declare function save(markdown: SlidevMarkdown): Promise<void>;
12
12
 
13
13
  export { type LoadedSlidevData, injectPreparserExtensionLoader, load, save };
package/dist/fs.mjs CHANGED
@@ -10,12 +10,11 @@ import {
10
10
  prettifySlide,
11
11
  resolveConfig,
12
12
  resolveFonts,
13
- scanMonacoModules,
14
13
  slash,
15
14
  stringify,
16
15
  stringifySlide,
17
16
  verifyConfig
18
- } from "./chunk-TPG7RJUH.mjs";
17
+ } from "./chunk-OWSVF5RT.mjs";
19
18
 
20
19
  // src/fs.ts
21
20
  import { promises as fs } from "node:fs";
@@ -25,7 +24,7 @@ var preparserExtensionLoader = null;
25
24
  function injectPreparserExtensionLoader(fn) {
26
25
  preparserExtensionLoader = fn;
27
26
  }
28
- async function load(userRoot, filepath, content) {
27
+ async function load(userRoot, filepath, content, mode) {
29
28
  const markdown = content ?? await fs.readFile(filepath, "utf-8");
30
29
  let extensions;
31
30
  if (preparserExtensionLoader) {
@@ -38,7 +37,7 @@ async function load(userRoot, filepath, content) {
38
37
  hm = lines.slice(1, hEnd).join("\n");
39
38
  }
40
39
  const o = YAML.load(hm) ?? {};
41
- extensions = await preparserExtensionLoader(o, filepath);
40
+ extensions = await preparserExtensionLoader(o, filepath, mode);
42
41
  }
43
42
  const markdownFiles = {};
44
43
  const slides = [];
@@ -109,7 +108,6 @@ export {
109
108
  resolveConfig,
110
109
  resolveFonts,
111
110
  save,
112
- scanMonacoModules,
113
111
  stringify,
114
112
  stringifySlide,
115
113
  verifyConfig
package/dist/index.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- export { detectFeatures, getDefaultConfig, mergeFeatureFlags, parse, parseAspectRatio, parseRangeString, parseSlide, prettify, prettifySlide, resolveConfig, resolveFonts, scanMonacoModules, stringify, stringifySlide, verifyConfig } from './core.mjs';
1
+ export { detectFeatures, getDefaultConfig, mergeFeatureFlags, parse, parseAspectRatio, parseRangeString, parseSlide, prettify, prettifySlide, resolveConfig, resolveFonts, stringify, stringifySlide, verifyConfig } from './core.mjs';
2
2
  import '@slidev/types';
package/dist/index.mjs CHANGED
@@ -10,11 +10,10 @@ import {
10
10
  prettifySlide,
11
11
  resolveConfig,
12
12
  resolveFonts,
13
- scanMonacoModules,
14
13
  stringify,
15
14
  stringifySlide,
16
15
  verifyConfig
17
- } from "./chunk-TPG7RJUH.mjs";
16
+ } from "./chunk-OWSVF5RT.mjs";
18
17
  export {
19
18
  detectFeatures,
20
19
  getDefaultConfig,
@@ -27,7 +26,6 @@ export {
27
26
  prettifySlide,
28
27
  resolveConfig,
29
28
  resolveFonts,
30
- scanMonacoModules,
31
29
  stringify,
32
30
  stringifySlide,
33
31
  verifyConfig
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slidev/parser",
3
- "version": "0.48.0-beta.9",
3
+ "version": "0.48.1",
4
4
  "description": "Markdown parser for Slidev",
5
5
  "author": "antfu <anthonyfu117@hotmail.com>",
6
6
  "license": "MIT",
@@ -40,7 +40,7 @@
40
40
  },
41
41
  "dependencies": {
42
42
  "js-yaml": "^4.1.0",
43
- "@slidev/types": "0.48.0-beta.9"
43
+ "@slidev/types": "0.48.1"
44
44
  },
45
45
  "scripts": {
46
46
  "build": "rimraf dist && tsup src/index.ts src/core.ts src/fs.ts",