@slidev/cli 0.43.0 → 0.43.2

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/README.md CHANGED
@@ -61,7 +61,7 @@ Presentation <b>slide</b>s for <b>dev</b>elopers 🧑‍💻👩‍💻👨‍
61
61
 
62
62
  ### Init Project Locally
63
63
 
64
- Install [Node.js >=14](https://nodejs.org/) and run the following command:
64
+ Install [Node.js >=18](https://nodejs.org/) and run the following command:
65
65
 
66
66
  ```bash
67
67
  npm init slidev
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkN7DPKF7Ljs = require('./chunk-N7DPKF7L.js');
5
+ var _chunkEBUHKMOSjs = require('./chunk-EBUHKMOS.js');
6
6
  require('./chunk-KKGXM3XL.js');
7
7
  require('./chunk-JQHGZJGJ.js');
8
8
  require('./chunk-YUG22S6W.js');
@@ -651,16 +651,16 @@ async function build(options, viteConfig = {}, args) {
651
651
  let originalIndexHTML;
652
652
  if (_fsextra2.default.existsSync(indexPath))
653
653
  originalIndexHTML = await _fsextra2.default.readFile(indexPath, "utf-8");
654
- await _fsextra2.default.writeFile(indexPath, await _chunkN7DPKF7Ljs.getIndexHtml.call(void 0, options), "utf-8");
654
+ await _fsextra2.default.writeFile(indexPath, await _chunkEBUHKMOSjs.getIndexHtml.call(void 0, options), "utf-8");
655
655
  let config = void 0;
656
656
  try {
657
- const inlineConfig = await _chunkN7DPKF7Ljs.mergeViteConfigs.call(void 0,
657
+ const inlineConfig = await _chunkEBUHKMOSjs.mergeViteConfigs.call(void 0,
658
658
  options,
659
659
  viteConfig,
660
660
  {
661
661
  root: options.userRoot,
662
662
  plugins: [
663
- await _chunkN7DPKF7Ljs.ViteSlidevPlugin.call(void 0, options, pluginOptions),
663
+ await _chunkEBUHKMOSjs.ViteSlidevPlugin.call(void 0, options, pluginOptions),
664
664
  {
665
665
  name: "resolve-config",
666
666
  configResolved(_config) {
@@ -681,7 +681,7 @@ async function build(options, viteConfig = {}, args) {
681
681
  } else {
682
682
  console.log(_kolorist.blue.call(void 0, " building for Monaco...\n"));
683
683
  await _vite.build.call(void 0,
684
- await _chunkN7DPKF7Ljs.mergeViteConfigs.call(void 0,
684
+ await _chunkEBUHKMOSjs.mergeViteConfigs.call(void 0,
685
685
  options,
686
686
  inlineConfig,
687
687
  {
@@ -2,7 +2,7 @@ import {
2
2
  ViteSlidevPlugin,
3
3
  getIndexHtml,
4
4
  mergeViteConfigs
5
- } from "./chunk-GSGFVYCQ.mjs";
5
+ } from "./chunk-F4WKBMX7.mjs";
6
6
  import "./chunk-JDHANZ37.mjs";
7
7
  import "./chunk-ZEKM4EGL.mjs";
8
8
  import "./chunk-QHOBBTS4.mjs";
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
3
 
4
- var _chunkN7DPKF7Ljs = require('./chunk-N7DPKF7L.js');
4
+ var _chunkEBUHKMOSjs = require('./chunk-EBUHKMOS.js');
5
5
 
6
6
 
7
7
 
@@ -2496,7 +2496,7 @@ async function createServer(options, viteConfig = {}, serverOptions = {}) {
2496
2496
  const pluginOptions = rawConfig.slidev || {};
2497
2497
  _process2.default.env.EDITOR = _process2.default.env.EDITOR || "code";
2498
2498
  const server = await _vite.createServer.call(void 0,
2499
- await _chunkN7DPKF7Ljs.mergeViteConfigs.call(void 0,
2499
+ await _chunkEBUHKMOSjs.mergeViteConfigs.call(void 0,
2500
2500
  options,
2501
2501
  viteConfig,
2502
2502
  {
@@ -2506,7 +2506,7 @@ async function createServer(options, viteConfig = {}, serverOptions = {}) {
2506
2506
  ]
2507
2507
  },
2508
2508
  plugins: [
2509
- await _chunkN7DPKF7Ljs.ViteSlidevPlugin.call(void 0, options, pluginOptions, serverOptions)
2509
+ await _chunkEBUHKMOSjs.ViteSlidevPlugin.call(void 0, options, pluginOptions, serverOptions)
2510
2510
  ]
2511
2511
  },
2512
2512
  "serve"
@@ -2519,7 +2519,7 @@ async function createServer(options, viteConfig = {}, serverOptions = {}) {
2519
2519
  var _fs = require('@slidev/parser/fs'); var parser = _interopRequireWildcard(_fs);
2520
2520
 
2521
2521
  // package.json
2522
- var version = "0.43.0";
2522
+ var version = "0.43.2";
2523
2523
 
2524
2524
  // node/themes.ts
2525
2525
  var _prompts = require('prompts'); var _prompts2 = _interopRequireDefault(_prompts);
@@ -80,9 +80,9 @@ async function getIndexHtml({ clientRoot, themeRoots, addonRoots, data, userRoot
80
80
  continue;
81
81
  const index = await _fs.promises.readFile(path, "utf-8");
82
82
  head += `
83
- ${(_optionalChain([index, 'access', _3 => _3.match, 'call', _4 => _4(/<head>([\s\S]*?)<\/head>/im), 'optionalAccess', _5 => _5[1]]) || "").trim()}`;
83
+ ${(_optionalChain([index, 'access', _4 => _4.match, 'call', _5 => _5(/<head>([\s\S]*?)<\/head>/im), 'optionalAccess', _6 => _6[1]]) || "").trim()}`;
84
84
  body += `
85
- ${(_optionalChain([index, 'access', _6 => _6.match, 'call', _7 => _7(/<body>([\s\S]*?)<\/body>/im), 'optionalAccess', _8 => _8[1]]) || "").trim()}`;
85
+ ${(_optionalChain([index, 'access', _7 => _7.match, 'call', _8 => _8(/<body>([\s\S]*?)<\/body>/im), 'optionalAccess', _9 => _9[1]]) || "").trim()}`;
86
86
  }
87
87
  if (data.features.tweet)
88
88
  body += '\n<script async src="https://platform.twitter.com/widgets.js"></script>';
@@ -105,7 +105,7 @@ async function mergeViteConfigs({ addonRoots, themeRoots }, viteConfig, config,
105
105
  if (!_fs.existsSync.call(void 0, file))
106
106
  continue;
107
107
  const viteConfig2 = await _vite.loadConfigFromFile.call(void 0, configEnv, file);
108
- if (!_optionalChain([viteConfig2, 'optionalAccess', _9 => _9.config]))
108
+ if (!_optionalChain([viteConfig2, 'optionalAccess', _10 => _10.config]))
109
109
  continue;
110
110
  config = _vite.mergeConfig.call(void 0, config, viteConfig2.config);
111
111
  }
@@ -186,14 +186,14 @@ var dependencies = {
186
186
  "@antfu/utils": "^0.7.6",
187
187
  "@slidev/parser": "workspace:*",
188
188
  "@slidev/types": "workspace:*",
189
- "@unocss/reset": "^0.55.6",
189
+ "@unocss/reset": "^0.55.7",
190
190
  "@vueuse/core": "^10.4.1",
191
191
  "@vueuse/head": "^1.3.1",
192
192
  "@vueuse/math": "^10.4.1",
193
193
  "@vueuse/motion": "^2.0.0",
194
194
  codemirror: "^5.65.5",
195
195
  defu: "^6.1.2",
196
- drauu: "^0.3.5",
196
+ drauu: "^0.3.6",
197
197
  "file-saver": "^2.0.5",
198
198
  "fuse.js": "^6.6.2",
199
199
  "js-base64": "^3.7.5",
@@ -205,11 +205,11 @@ var dependencies = {
205
205
  prettier: "^3.0.3",
206
206
  recordrtc: "^5.6.2",
207
207
  resolve: "^1.22.4",
208
- unocss: "^0.55.6",
208
+ unocss: "^0.55.7",
209
209
  "vite-plugin-windicss": "^1.9.1",
210
210
  vue: "^3.3.4",
211
211
  "vue-router": "^4.2.4",
212
- "vue-starport": "^0.3.0",
212
+ "vue-starport": "^0.4.0",
213
213
  windicss: "^3.5.6"
214
214
  };
215
215
 
@@ -415,7 +415,7 @@ md.use(_markdownitlinkattributes2.default, {
415
415
  function prepareSlideInfo(data) {
416
416
  return {
417
417
  ...data,
418
- noteHTML: md.render(_optionalChain([data, 'optionalAccess', _10 => _10.note]) || "")
418
+ noteHTML: md.render(_optionalChain([data, 'optionalAccess', _11 => _11.note]) || "")
419
419
  };
420
420
  }
421
421
  function createSlidesLoader({ data, entry, clientRoot, themeRoots, addonRoots, userRoot, roots, remote, mode }, pluginOptions, serverOptions) {
@@ -431,7 +431,7 @@ function createSlidesLoader({ data, entry, clientRoot, themeRoots, addonRoots, u
431
431
  server = _server;
432
432
  updateServerWatcher();
433
433
  server.middlewares.use(async (req, res, next) => {
434
- const match = _optionalChain([req, 'access', _11 => _11.url, 'optionalAccess', _12 => _12.match, 'call', _13 => _13(regexId)]);
434
+ const match = _optionalChain([req, 'access', _12 => _12.url, 'optionalAccess', _13 => _13.match, 'call', _14 => _14(regexId)]);
435
435
  if (!match)
436
436
  return next();
437
437
  const [, no, type] = match;
@@ -483,7 +483,7 @@ function createSlidesLoader({ data, entry, clientRoot, themeRoots, addonRoots, u
483
483
  for (let i = 0; i < length; i++) {
484
484
  const a = data.slides[i];
485
485
  const b = newData.slides[i];
486
- if (_optionalChain([a, 'optionalAccess', _14 => _14.content, 'access', _15 => _15.trim, 'call', _16 => _16()]) === _optionalChain([b, 'optionalAccess', _17 => _17.content, 'access', _18 => _18.trim, 'call', _19 => _19()]) && _optionalChain([a, 'optionalAccess', _20 => _20.title, 'optionalAccess', _21 => _21.trim, 'call', _22 => _22()]) === _optionalChain([b, 'optionalAccess', _23 => _23.title, 'optionalAccess', _24 => _24.trim, 'call', _25 => _25()]) && _optionalChain([a, 'optionalAccess', _26 => _26.note]) === _optionalChain([b, 'optionalAccess', _27 => _27.note]) && (0, import_fast_deep_equal.default)(a.frontmatter, b.frontmatter))
486
+ if (_optionalChain([a, 'optionalAccess', _15 => _15.content, 'access', _16 => _16.trim, 'call', _17 => _17()]) === _optionalChain([b, 'optionalAccess', _18 => _18.content, 'access', _19 => _19.trim, 'call', _20 => _20()]) && _optionalChain([a, 'optionalAccess', _21 => _21.title, 'optionalAccess', _22 => _22.trim, 'call', _23 => _23()]) === _optionalChain([b, 'optionalAccess', _24 => _24.title, 'optionalAccess', _25 => _25.trim, 'call', _26 => _26()]) && _optionalChain([a, 'optionalAccess', _27 => _27.note]) === _optionalChain([b, 'optionalAccess', _28 => _28.note]) && (0, import_fast_deep_equal.default)(a.frontmatter, b.frontmatter))
487
487
  continue;
488
488
  ctx.server.ws.send({
489
489
  type: "custom",
@@ -495,7 +495,7 @@ function createSlidesLoader({ data, entry, clientRoot, themeRoots, addonRoots, u
495
495
  });
496
496
  hmrPages.add(i);
497
497
  }
498
- _optionalChain([serverOptions, 'access', _28 => _28.onDataReload, 'optionalCall', _29 => _29(newData, data)]);
498
+ _optionalChain([serverOptions, 'access', _29 => _29.onDataReload, 'optionalCall', _30 => _30(newData, data)]);
499
499
  Object.assign(data, newData);
500
500
  if (hmrPages.size > 0)
501
501
  moduleIds.add("/@slidev/titles.md");
@@ -507,7 +507,7 @@ function createSlidesLoader({ data, entry, clientRoot, themeRoots, addonRoots, u
507
507
  const moduleEntries = [
508
508
  ...vueModules,
509
509
  ...Array.from(moduleIds).map((id) => ctx.server.moduleGraph.getModuleById(id))
510
- ].filter(_utils.notNullish).filter((i) => !_optionalChain([i, 'access', _30 => _30.id, 'optionalAccess', _31 => _31.startsWith, 'call', _32 => _32("/@id/@vite-icons")]));
510
+ ].filter(_utils.notNullish).filter((i) => !_optionalChain([i, 'access', _31 => _31.id, 'optionalAccess', _32 => _32.startsWith, 'call', _33 => _33("/@id/@vite-icons")]));
511
511
  updateServerWatcher();
512
512
  return moduleEntries;
513
513
  },
@@ -535,7 +535,7 @@ function createSlidesLoader({ data, entry, clientRoot, themeRoots, addonRoots, u
535
535
  return generateCustomNavControls();
536
536
  if (id === "/@slidev/titles.md") {
537
537
  return {
538
- code: data.slides.filter(({ frontmatter }) => !_optionalChain([frontmatter, 'optionalAccess', _33 => _33.disabled])).map(({ title }, i) => `<template ${i === 0 ? "v-if" : "v-else-if"}="+no === ${i + 1}">
538
+ code: data.slides.filter(({ frontmatter }) => !_optionalChain([frontmatter, 'optionalAccess', _34 => _34.disabled])).map(({ title }, i) => `<template ${i === 0 ? "v-if" : "v-else-if"}="+no === ${i + 1}">
539
539
 
540
540
  ${title}
541
541
 
@@ -554,7 +554,7 @@ ${title}
554
554
  return;
555
555
  if (type === "md") {
556
556
  return {
557
- code: _optionalChain([slide, 'optionalAccess', _34 => _34.content]),
557
+ code: _optionalChain([slide, 'optionalAccess', _35 => _35.content]),
558
558
  map: { mappings: "" }
559
559
  };
560
560
  } else if (type === "frontmatter") {
@@ -576,7 +576,7 @@ ${title}
576
576
  ...mode === "build" ? { raw: "", content: "", note: "" } : {}
577
577
  })}),
578
578
  frontmatter,
579
- filepath: ${JSON.stringify(_optionalChain([slide, 'access', _35 => _35.source, 'optionalAccess', _36 => _36.filepath]) || entry)},
579
+ filepath: ${JSON.stringify(_optionalChain([slide, 'access', _36 => _36.source, 'optionalAccess', _37 => _37.filepath]) || entry)},
580
580
  id: ${pageNo},
581
581
  no: ${no},
582
582
  },
@@ -656,15 +656,15 @@ ${title}
656
656
  function updateServerWatcher() {
657
657
  if (!server)
658
658
  return;
659
- server.watcher.add(_optionalChain([data, 'access', _37 => _37.entries, 'optionalAccess', _38 => _38.map, 'call', _39 => _39(_utils.slash)]) || []);
659
+ server.watcher.add(_optionalChain([data, 'access', _38 => _38.entries, 'optionalAccess', _39 => _39.map, 'call', _40 => _40(_utils.slash)]) || []);
660
660
  }
661
661
  async function transformMarkdown(code, pageNo, data2) {
662
662
  const layouts = await getLayouts();
663
663
  const frontmatter = {
664
- ..._optionalChain([data2, 'access', _40 => _40.headmatter, 'optionalAccess', _41 => _41.defaults]) || {},
665
- ..._optionalChain([data2, 'access', _42 => _42.slides, 'access', _43 => _43[pageNo], 'optionalAccess', _44 => _44.frontmatter]) || {}
664
+ ..._optionalChain([data2, 'access', _41 => _41.headmatter, 'optionalAccess', _42 => _42.defaults]) || {},
665
+ ..._optionalChain([data2, 'access', _43 => _43.slides, 'access', _44 => _44[pageNo], 'optionalAccess', _45 => _45.frontmatter]) || {}
666
666
  };
667
- let layoutName = _optionalChain([frontmatter, 'optionalAccess', _45 => _45.layout]) || (pageNo === 0 ? "cover" : "default");
667
+ let layoutName = _optionalChain([frontmatter, 'optionalAccess', _46 => _46.layout]) || (pageNo === 0 ? "cover" : "default");
668
668
  if (!layouts[layoutName]) {
669
669
  console.error(_kolorist.red.call(void 0, `
670
670
  Unknown layout "${_kolorist.bold.call(void 0, layoutName)}".${_kolorist.yellow.call(void 0, " Available layouts are:")}`) + Object.keys(layouts).map((i, idx) => (idx % 3 === 0 ? "\n " : "") + _kolorist.gray.call(void 0, i.padEnd(15, " "))).join(" "));
@@ -791,6 +791,7 @@ defineProps<{ no: number | string }>()`);
791
791
  `import "${_chunkJQHGZJGJjs.toAtFS.call(void 0, _path.join.call(void 0, clientRoot, "styles/vars.css"))}"`,
792
792
  `import "${_chunkJQHGZJGJjs.toAtFS.call(void 0, _path.join.call(void 0, clientRoot, "styles/index.css"))}"`,
793
793
  `import "${_chunkJQHGZJGJjs.toAtFS.call(void 0, _path.join.call(void 0, clientRoot, "styles/code.css"))}"`,
794
+ `import "${_chunkJQHGZJGJjs.toAtFS.call(void 0, _path.join.call(void 0, clientRoot, "styles/katex.css"))}"`,
794
795
  `import "${_chunkJQHGZJGJjs.toAtFS.call(void 0, _path.join.call(void 0, clientRoot, "styles/transitions.css"))}"`
795
796
  ];
796
797
  const roots2 = _utils.uniq.call(void 0, [
@@ -859,12 +860,12 @@ ${Object.entries(layouts).map(([k, v]) => `"${k}": ${v}`).join(",\n")}
859
860
  const layouts = await getLayouts();
860
861
  imports.push(`import __layout__end from '${layouts.end}'`);
861
862
  let no = 1;
862
- const routes = data.slides.filter(({ frontmatter }) => !_optionalChain([frontmatter, 'optionalAccess', _46 => _46.disabled])).map((i, idx) => {
863
+ const routes = data.slides.filter(({ frontmatter }) => !_optionalChain([frontmatter, 'optionalAccess', _47 => _47.disabled])).map((i, idx) => {
863
864
  imports.push(`import n${no} from '${slidePrefix}${idx + 1}.md'`);
864
865
  imports.push(`import { meta as f${no} } from '${slidePrefix}${idx + 1}.frontmatter'`);
865
866
  const route = `{ path: '${no}', name: 'page-${no}', component: n${no}, meta: f${no} }`;
866
- if (_optionalChain([i, 'access', _47 => _47.frontmatter, 'optionalAccess', _48 => _48.routeAlias]))
867
- redirects.push(`{ path: '${_optionalChain([i, 'access', _49 => _49.frontmatter, 'optionalAccess', _50 => _50.routeAlias])}', redirect: { path: '${no}' } }`);
867
+ if (_optionalChain([i, 'access', _48 => _48.frontmatter, 'optionalAccess', _49 => _49.routeAlias]))
868
+ redirects.push(`{ path: '${_optionalChain([i, 'access', _50 => _50.frontmatter, 'optionalAccess', _51 => _51.routeAlias])}', redirect: { path: '${no}' } }`);
868
869
  no += 1;
869
870
  return route;
870
871
  });
@@ -1190,7 +1191,7 @@ function math_plugin(md2, options) {
1190
1191
 
1191
1192
  // node/plugins/markdown-it-prism.ts
1192
1193
  var _prismjs = require('prismjs'); var _prismjs2 = _interopRequireDefault(_prismjs);
1193
- var _ = require('prismjs/components/'); var _2 = _interopRequireDefault(_);
1194
+ var _2 = require('prismjs/components/'); var _3 = _interopRequireDefault(_2);
1194
1195
  var _htmlparser2 = require('htmlparser2'); var htmlparser2 = _interopRequireWildcard(_htmlparser2);
1195
1196
  var Tag = class {
1196
1197
  constructor(tagname, attributes) {
@@ -1217,7 +1218,7 @@ function loadPrismLang(lang) {
1217
1218
  return void 0;
1218
1219
  let langObject = _prismjs2.default.languages[lang];
1219
1220
  if (langObject === void 0) {
1220
- _2.default.call(void 0, [lang]);
1221
+ _3.default.call(void 0, [lang]);
1221
1222
  langObject = _prismjs2.default.languages[lang];
1222
1223
  }
1223
1224
  return langObject;
@@ -1372,7 +1373,7 @@ async function createMarkdownPlugin({ data: { config }, roots, mode, entry }, {
1372
1373
  html: true,
1373
1374
  xhtmlOut: true,
1374
1375
  linkify: true,
1375
- ..._optionalChain([mdOptions, 'optionalAccess', _51 => _51.markdownItOptions])
1376
+ ..._optionalChain([mdOptions, 'optionalAccess', _52 => _52.markdownItOptions])
1376
1377
  },
1377
1378
  ...mdOptions,
1378
1379
  markdownItSetup(md2) {
@@ -1386,7 +1387,7 @@ async function createMarkdownPlugin({ data: { config }, roots, mode, entry }, {
1386
1387
  md2.use(_markdownitplugins.taskLists, { enabled: true, lineNumber: true, label: true });
1387
1388
  md2.use(math_plugin, KatexOptions);
1388
1389
  setups.forEach((i) => i(md2));
1389
- _optionalChain([mdOptions, 'optionalAccess', _52 => _52.markdownItSetup, 'optionalCall', _53 => _53(md2)]);
1390
+ _optionalChain([mdOptions, 'optionalAccess', _53 => _53.markdownItSetup, 'optionalCall', _54 => _54(md2)]);
1390
1391
  },
1391
1392
  transforms: {
1392
1393
  before(code, id) {
@@ -1399,11 +1400,25 @@ async function createMarkdownPlugin({ data: { config }, roots, mode, entry }, {
1399
1400
  code = monaco(code);
1400
1401
  code = transformHighlighter(code);
1401
1402
  code = transformPageCSS(code, id);
1403
+ code = transformKaTex(code);
1402
1404
  return code;
1403
1405
  }
1404
1406
  }
1405
1407
  });
1406
1408
  }
1409
+ function transformKaTex(md2) {
1410
+ return md2.replace(/^\$\$(?:\s*{([\d\w*,\|-]+)}\s*?({.*?})?\s*?)?\n([\s\S]+?)^\$\$/mg, (full, rangeStr = "", _, code) => {
1411
+ const ranges = rangeStr.split(/\|/g).map((i) => i.trim());
1412
+ code = code.trimEnd();
1413
+ return `<KaTexBlockWrapper :ranges='${JSON.stringify(ranges)}'>
1414
+
1415
+ $$
1416
+ ${code}
1417
+ $$
1418
+ </KaTexBlockWrapper>
1419
+ `;
1420
+ });
1421
+ }
1407
1422
  function transformMarkdownMonaco(md2) {
1408
1423
  md2 = md2.replace(/^```(\w+?)\s*{monaco-diff}\s*?({.*?})?\s*?\n([\s\S]+?)^~~~\s*?\n([\s\S]+?)^```/mg, (full, lang = "ts", options = "{}", code, diff) => {
1409
1424
  lang = lang.trim();
@@ -1460,8 +1475,8 @@ function getCodeBlocks(md2) {
1460
1475
  const codeblocks = Array.from(md2.matchAll(/^```[\s\S]*?^```/mg)).map((m) => {
1461
1476
  const start = m.index;
1462
1477
  const end = m.index + m[0].length;
1463
- const startLine = _optionalChain([md2, 'access', _54 => _54.slice, 'call', _55 => _55(0, start), 'access', _56 => _56.match, 'call', _57 => _57(/\n/g), 'optionalAccess', _58 => _58.length]) || 0;
1464
- const endLine = _optionalChain([md2, 'access', _59 => _59.slice, 'call', _60 => _60(0, end), 'access', _61 => _61.match, 'call', _62 => _62(/\n/g), 'optionalAccess', _63 => _63.length]) || 0;
1478
+ const startLine = _optionalChain([md2, 'access', _55 => _55.slice, 'call', _56 => _56(0, start), 'access', _57 => _57.match, 'call', _58 => _58(/\n/g), 'optionalAccess', _59 => _59.length]) || 0;
1479
+ const endLine = _optionalChain([md2, 'access', _60 => _60.slice, 'call', _61 => _61(0, end), 'access', _62 => _62.match, 'call', _63 => _63(/\n/g), 'optionalAccess', _64 => _64.length]) || 0;
1465
1480
  return [start, end, startLine, endLine];
1466
1481
  });
1467
1482
  return {
@@ -1475,7 +1490,7 @@ function getCodeBlocks(md2) {
1475
1490
  };
1476
1491
  }
1477
1492
  function transformPageCSS(md2, id) {
1478
- const page = _optionalChain([id, 'access', _64 => _64.match, 'call', _65 => _65(/(\d+)\.md$/), 'optionalAccess', _66 => _66[1]]);
1493
+ const page = _optionalChain([id, 'access', _65 => _65.match, 'call', _66 => _66(/(\d+)\.md$/), 'optionalAccess', _67 => _67[1]]);
1479
1494
  if (!page)
1480
1495
  return md2;
1481
1496
  const { isInsideCodeblocks } = getCodeBlocks(md2);
@@ -1589,7 +1604,7 @@ async function ViteSlidevPlugin(options, pluginOptions, serverOptions = {}) {
1589
1604
  return customElements.has(tag);
1590
1605
  }
1591
1606
  },
1592
- ..._optionalChain([vueOptions, 'optionalAccess', _67 => _67.template])
1607
+ ..._optionalChain([vueOptions, 'optionalAccess', _68 => _68.template])
1593
1608
  },
1594
1609
  ...vueOptions
1595
1610
  });
@@ -186,14 +186,14 @@ var dependencies = {
186
186
  "@antfu/utils": "^0.7.6",
187
187
  "@slidev/parser": "workspace:*",
188
188
  "@slidev/types": "workspace:*",
189
- "@unocss/reset": "^0.55.6",
189
+ "@unocss/reset": "^0.55.7",
190
190
  "@vueuse/core": "^10.4.1",
191
191
  "@vueuse/head": "^1.3.1",
192
192
  "@vueuse/math": "^10.4.1",
193
193
  "@vueuse/motion": "^2.0.0",
194
194
  codemirror: "^5.65.5",
195
195
  defu: "^6.1.2",
196
- drauu: "^0.3.5",
196
+ drauu: "^0.3.6",
197
197
  "file-saver": "^2.0.5",
198
198
  "fuse.js": "^6.6.2",
199
199
  "js-base64": "^3.7.5",
@@ -205,11 +205,11 @@ var dependencies = {
205
205
  prettier: "^3.0.3",
206
206
  recordrtc: "^5.6.2",
207
207
  resolve: "^1.22.4",
208
- unocss: "^0.55.6",
208
+ unocss: "^0.55.7",
209
209
  "vite-plugin-windicss": "^1.9.1",
210
210
  vue: "^3.3.4",
211
211
  "vue-router": "^4.2.4",
212
- "vue-starport": "^0.3.0",
212
+ "vue-starport": "^0.4.0",
213
213
  windicss: "^3.5.6"
214
214
  };
215
215
 
@@ -791,6 +791,7 @@ defineProps<{ no: number | string }>()`);
791
791
  `import "${toAtFS(join5(clientRoot, "styles/vars.css"))}"`,
792
792
  `import "${toAtFS(join5(clientRoot, "styles/index.css"))}"`,
793
793
  `import "${toAtFS(join5(clientRoot, "styles/code.css"))}"`,
794
+ `import "${toAtFS(join5(clientRoot, "styles/katex.css"))}"`,
794
795
  `import "${toAtFS(join5(clientRoot, "styles/transitions.css"))}"`
795
796
  ];
796
797
  const roots2 = uniq3([
@@ -1399,11 +1400,25 @@ async function createMarkdownPlugin({ data: { config }, roots, mode, entry }, {
1399
1400
  code = monaco(code);
1400
1401
  code = transformHighlighter(code);
1401
1402
  code = transformPageCSS(code, id);
1403
+ code = transformKaTex(code);
1402
1404
  return code;
1403
1405
  }
1404
1406
  }
1405
1407
  });
1406
1408
  }
1409
+ function transformKaTex(md2) {
1410
+ return md2.replace(/^\$\$(?:\s*{([\d\w*,\|-]+)}\s*?({.*?})?\s*?)?\n([\s\S]+?)^\$\$/mg, (full, rangeStr = "", _, code) => {
1411
+ const ranges = rangeStr.split(/\|/g).map((i) => i.trim());
1412
+ code = code.trimEnd();
1413
+ return `<KaTexBlockWrapper :ranges='${JSON.stringify(ranges)}'>
1414
+
1415
+ $$
1416
+ ${code}
1417
+ $$
1418
+ </KaTexBlockWrapper>
1419
+ `;
1420
+ });
1421
+ }
1407
1422
  function transformMarkdownMonaco(md2) {
1408
1423
  md2 = md2.replace(/^```(\w+?)\s*{monaco-diff}\s*?({.*?})?\s*?\n([\s\S]+?)^~~~\s*?\n([\s\S]+?)^```/mg, (full, lang = "ts", options = "{}", code, diff) => {
1409
1424
  lang = lang.trim();
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ViteSlidevPlugin,
3
3
  mergeViteConfigs
4
- } from "./chunk-GSGFVYCQ.mjs";
4
+ } from "./chunk-F4WKBMX7.mjs";
5
5
  import {
6
6
  packageExists,
7
7
  resolveImportPath
@@ -2519,7 +2519,7 @@ async function createServer(options, viteConfig = {}, serverOptions = {}) {
2519
2519
  import * as parser from "@slidev/parser/fs";
2520
2520
 
2521
2521
  // package.json
2522
- var version = "0.43.0";
2522
+ var version = "0.43.2";
2523
2523
 
2524
2524
  // node/themes.ts
2525
2525
  import prompts2 from "prompts";
package/dist/cli.js CHANGED
@@ -9,10 +9,10 @@
9
9
 
10
10
 
11
11
 
12
- var _chunkUKVDFR2Jjs = require('./chunk-UKVDFR2J.js');
12
+ var _chunkBU6NGBPIjs = require('./chunk-BU6NGBPI.js');
13
13
 
14
14
 
15
- var _chunkN7DPKF7Ljs = require('./chunk-N7DPKF7L.js');
15
+ var _chunkEBUHKMOSjs = require('./chunk-EBUHKMOS.js');
16
16
 
17
17
 
18
18
  var _chunkKKGXM3XLjs = require('./chunk-KKGXM3XL.js');
@@ -22,7 +22,7 @@ require('./chunk-JQHGZJGJ.js');
22
22
  var _chunkYUG22S6Wjs = require('./chunk-YUG22S6W.js');
23
23
 
24
24
  // node/cli.ts
25
- var import_fast_deep_equal = _chunkYUG22S6Wjs.__toESM.call(void 0, _chunkN7DPKF7Ljs.require_fast_deep_equal.call(void 0, ));
25
+ var import_fast_deep_equal = _chunkYUG22S6Wjs.__toESM.call(void 0, _chunkEBUHKMOSjs.require_fast_deep_equal.call(void 0, ));
26
26
  var _path = require('path'); var _path2 = _interopRequireDefault(_path);
27
27
  var _os = require('os'); var _os2 = _interopRequireDefault(_os);
28
28
  var _child_process = require('child_process');
@@ -51,15 +51,15 @@ _fs.injectPreparserExtensionLoader.call(void 0, async (headmatter, filepath) =>
51
51
  const roots = (
52
52
  /* uniq */
53
53
  [
54
- _chunkUKVDFR2Jjs.getUserRoot.call(void 0, {}).userRoot,
55
- ..._chunkUKVDFR2Jjs.getAddonRoots.call(void 0, addons, ""),
56
- _chunkUKVDFR2Jjs.getClientRoot.call(void 0, )
54
+ _chunkBU6NGBPIjs.getUserRoot.call(void 0, {}).userRoot,
55
+ ..._chunkBU6NGBPIjs.getAddonRoots.call(void 0, addons, ""),
56
+ _chunkBU6NGBPIjs.getClientRoot.call(void 0, )
57
57
  ]
58
58
  );
59
59
  const mergeArrays = (a, b) => a.concat(b);
60
60
  return await _chunkKKGXM3XLjs.loadSetups.call(void 0, roots, "preparser.ts", { filepath, headmatter }, [], false, mergeArrays);
61
61
  });
62
- var cli = _yargs2.default.scriptName("slidev").usage("$0 [args]").version(_chunkUKVDFR2Jjs.version).strict().showHelpOnFail(false).alias("h", "help").alias("v", "version");
62
+ var cli = _yargs2.default.scriptName("slidev").usage("$0 [args]").version(_chunkBU6NGBPIjs.version).strict().showHelpOnFail(false).alias("h", "help").alias("v", "version");
63
63
  cli.command(
64
64
  "* [entry]",
65
65
  "Start a local server for Slidev",
@@ -115,9 +115,9 @@ cli.command(
115
115
  async function initServer() {
116
116
  if (server)
117
117
  await server.close();
118
- const options = await _chunkUKVDFR2Jjs.resolveOptions.call(void 0, { entry, remote, theme, inspect }, "dev");
118
+ const options = await _chunkBU6NGBPIjs.resolveOptions.call(void 0, { entry, remote, theme, inspect }, "dev");
119
119
  port = userPort || await findFreePort(3030);
120
- server = await _chunkUKVDFR2Jjs.createServer.call(void 0,
120
+ server = await _chunkBU6NGBPIjs.createServer.call(void 0,
121
121
  options,
122
122
  {
123
123
  server: {
@@ -131,7 +131,7 @@ cli.command(
131
131
  },
132
132
  {
133
133
  onDataReload(newData, data) {
134
- if (!theme && _chunkUKVDFR2Jjs.resolveThemeName.call(void 0, newData.config.theme) !== _chunkUKVDFR2Jjs.resolveThemeName.call(void 0, data.config.theme)) {
134
+ if (!theme && _chunkBU6NGBPIjs.resolveThemeName.call(void 0, newData.config.theme) !== _chunkBU6NGBPIjs.resolveThemeName.call(void 0, data.config.theme)) {
135
135
  console.log(_kolorist.yellow.call(void 0, "\n restarting on theme change\n"));
136
136
  initServer();
137
137
  } else if (CONFIG_RESTART_FIELDS.some((i) => !(0, import_fast_deep_equal.default)(newData.config[i], data.config[i]))) {
@@ -260,9 +260,9 @@ cli.command(
260
260
  }).strict().help(),
261
261
  async (args) => {
262
262
  const { entry, theme, watch, base, download, out, inspect } = args;
263
- const { build } = await Promise.resolve().then(() => require("./build-HRQ6PECB.js"));
263
+ const { build } = await Promise.resolve().then(() => require("./build-3RGTSKVE.js"));
264
264
  for (const entryFile of entry) {
265
- const options = await _chunkUKVDFR2Jjs.resolveOptions.call(void 0, { entry: entryFile, theme, inspect }, "build");
265
+ const options = await _chunkBU6NGBPIjs.resolveOptions.call(void 0, { entry: entryFile, theme, inspect }, "build");
266
266
  if (download && !options.data.config.download)
267
267
  options.data.config.download = download;
268
268
  printInfo(options);
@@ -282,9 +282,9 @@ cli.command(
282
282
  (args) => commonOptions(args).strict().help(),
283
283
  async ({ entry }) => {
284
284
  for (const entryFile of entry) {
285
- const data = await _chunkUKVDFR2Jjs.parser.load(entryFile);
286
- _chunkUKVDFR2Jjs.parser.prettify(data);
287
- await _chunkUKVDFR2Jjs.parser.save(data);
285
+ const data = await _chunkBU6NGBPIjs.parser.load(entryFile);
286
+ _chunkBU6NGBPIjs.parser.prettify(data);
287
+ await _chunkBU6NGBPIjs.parser.save(data);
288
288
  }
289
289
  }
290
290
  );
@@ -300,17 +300,17 @@ cli.command(
300
300
  default: "theme"
301
301
  }),
302
302
  async ({ entry, dir, theme: themeInput }) => {
303
- const data = await _chunkUKVDFR2Jjs.parser.load(entry);
304
- const theme = _chunkUKVDFR2Jjs.resolveThemeName.call(void 0, themeInput || data.config.theme);
303
+ const data = await _chunkBU6NGBPIjs.parser.load(entry);
304
+ const theme = _chunkBU6NGBPIjs.resolveThemeName.call(void 0, themeInput || data.config.theme);
305
305
  if (theme === "none") {
306
306
  console.error('Cannot eject theme "none"');
307
307
  _process2.default.exit(1);
308
308
  }
309
- if (_chunkUKVDFR2Jjs.isPath.call(void 0, theme)) {
309
+ if (_chunkBU6NGBPIjs.isPath.call(void 0, theme)) {
310
310
  console.error("Theme is already ejected");
311
311
  _process2.default.exit(1);
312
312
  }
313
- const roots = _chunkUKVDFR2Jjs.getThemeRoots.call(void 0, theme, entry);
313
+ const roots = _chunkBU6NGBPIjs.getThemeRoots.call(void 0, theme, entry);
314
314
  if (!roots.length) {
315
315
  console.error(`Could not find theme "${theme}"`);
316
316
  _process2.default.exit(1);
@@ -322,7 +322,7 @@ cli.command(
322
322
  const dirPath = `./${dir}`;
323
323
  data.slides[0].frontmatter.theme = dirPath;
324
324
  data.slides[0].raw = null;
325
- await _chunkUKVDFR2Jjs.parser.save(data);
325
+ await _chunkBU6NGBPIjs.parser.save(data);
326
326
  console.log(`Theme "${theme}" ejected successfully to "${dirPath}"`);
327
327
  }
328
328
  );
@@ -342,8 +342,8 @@ cli.command(
342
342
  const { exportSlides, getExportOptions } = await Promise.resolve().then(() => require("./export-MCALG7XD.js"));
343
343
  const port = await findFreePort(12445);
344
344
  for (const entryFile of entry) {
345
- const options = await _chunkUKVDFR2Jjs.resolveOptions.call(void 0, { entry: entryFile, theme }, "export");
346
- const server = await _chunkUKVDFR2Jjs.createServer.call(void 0,
345
+ const options = await _chunkBU6NGBPIjs.resolveOptions.call(void 0, { entry: entryFile, theme }, "export");
346
+ const server = await _chunkBU6NGBPIjs.createServer.call(void 0,
347
347
  options,
348
348
  {
349
349
  server: { port },
@@ -352,7 +352,7 @@ cli.command(
352
352
  );
353
353
  await server.listen(port);
354
354
  printInfo(options);
355
- _chunkUKVDFR2Jjs.parser.filterDisabled(options.data);
355
+ _chunkBU6NGBPIjs.parser.filterDisabled(options.data);
356
356
  const result = await exportSlides({
357
357
  port,
358
358
  ...getExportOptions({ ...args, entry: entryFile }, options)
@@ -388,8 +388,8 @@ cli.command(
388
388
  const { exportNotes } = await Promise.resolve().then(() => require("./export-MCALG7XD.js"));
389
389
  const port = await findFreePort(12445);
390
390
  for (const entryFile of entry) {
391
- const options = await _chunkUKVDFR2Jjs.resolveOptions.call(void 0, { entry: entryFile }, "export");
392
- const server = await _chunkUKVDFR2Jjs.createServer.call(void 0,
391
+ const options = await _chunkBU6NGBPIjs.resolveOptions.call(void 0, { entry: entryFile }, "export");
392
+ const server = await _chunkBU6NGBPIjs.createServer.call(void 0,
393
393
  options,
394
394
  {
395
395
  server: { port },
@@ -398,7 +398,7 @@ cli.command(
398
398
  );
399
399
  await server.listen(port);
400
400
  printInfo(options);
401
- _chunkUKVDFR2Jjs.parser.filterDisabled(options.data);
401
+ _chunkBU6NGBPIjs.parser.filterDisabled(options.data);
402
402
  const result = await exportNotes({
403
403
  port,
404
404
  output: output || (options.data.config.exportFilename ? `${options.data.config.exportFilename}-notes` : `${_path2.default.basename(entryFile, ".md")}-export-notes`),
@@ -459,7 +459,7 @@ function printInfo(options, port, remote, tunnelUrl) {
459
459
  console.log();
460
460
  console.log();
461
461
  console.log(` ${_kolorist.cyan.call(void 0, "\u25CF") + _kolorist.blue.call(void 0, "\u25A0") + _kolorist.yellow.call(void 0, "\u25B2")}`);
462
- console.log(`${_kolorist.bold.call(void 0, " Slidev")} ${_kolorist.blue.call(void 0, `v${_chunkUKVDFR2Jjs.version}`)} ${_isinstalledglobally2.default ? _kolorist.yellow.call(void 0, "(global)") : ""}`);
462
+ console.log(`${_kolorist.bold.call(void 0, " Slidev")} ${_kolorist.blue.call(void 0, `v${_chunkBU6NGBPIjs.version}`)} ${_isinstalledglobally2.default ? _kolorist.yellow.call(void 0, "(global)") : ""}`);
463
463
  console.log();
464
464
  _parser.verifyConfig.call(void 0, options.data.config, options.data.themeMeta, (v) => console.warn(_kolorist.yellow.call(void 0, ` ! ${v}`)));
465
465
  console.log(_kolorist.dim.call(void 0, " theme ") + (options.theme ? _kolorist.green.call(void 0, options.theme) : _kolorist.gray.call(void 0, "none")));
package/dist/cli.mjs CHANGED
@@ -9,10 +9,10 @@ import {
9
9
  resolveOptions,
10
10
  resolveThemeName,
11
11
  version
12
- } from "./chunk-SQ2GXQ2V.mjs";
12
+ } from "./chunk-YELLDOPK.mjs";
13
13
  import {
14
14
  require_fast_deep_equal
15
- } from "./chunk-GSGFVYCQ.mjs";
15
+ } from "./chunk-F4WKBMX7.mjs";
16
16
  import {
17
17
  loadSetups
18
18
  } from "./chunk-JDHANZ37.mjs";
@@ -260,7 +260,7 @@ cli.command(
260
260
  }).strict().help(),
261
261
  async (args) => {
262
262
  const { entry, theme, watch, base, download, out, inspect } = args;
263
- const { build } = await import("./build-SZLXRWCX.mjs");
263
+ const { build } = await import("./build-KFTDUDMO.mjs");
264
264
  for (const entryFile of entry) {
265
265
  const options = await resolveOptions({ entry: entryFile, theme, inspect }, "build");
266
266
  if (download && !options.data.config.download)
package/dist/index.js CHANGED
@@ -9,13 +9,13 @@
9
9
 
10
10
 
11
11
 
12
- var _chunkUKVDFR2Jjs = require('./chunk-UKVDFR2J.js');
12
+ var _chunkBU6NGBPIjs = require('./chunk-BU6NGBPI.js');
13
13
 
14
14
 
15
15
  var _chunkJ7PXWEZ7js = require('./chunk-J7PXWEZ7.js');
16
16
 
17
17
 
18
- var _chunkN7DPKF7Ljs = require('./chunk-N7DPKF7L.js');
18
+ var _chunkEBUHKMOSjs = require('./chunk-EBUHKMOS.js');
19
19
  require('./chunk-KKGXM3XL.js');
20
20
  require('./chunk-JQHGZJGJ.js');
21
21
  require('./chunk-YUG22S6W.js');
@@ -32,4 +32,4 @@ require('./chunk-YUG22S6W.js');
32
32
 
33
33
 
34
34
 
35
- exports.ViteSlidevPlugin = _chunkN7DPKF7Ljs.ViteSlidevPlugin; exports.createServer = _chunkUKVDFR2Jjs.createServer; exports.createWindiCSSPlugin = _chunkJ7PXWEZ7js.createWindiCSSPlugin; exports.getAddonRoots = _chunkUKVDFR2Jjs.getAddonRoots; exports.getCLIRoot = _chunkUKVDFR2Jjs.getCLIRoot; exports.getClientRoot = _chunkUKVDFR2Jjs.getClientRoot; exports.getRoot = _chunkUKVDFR2Jjs.getRoot; exports.getThemeRoots = _chunkUKVDFR2Jjs.getThemeRoots; exports.getUserRoot = _chunkUKVDFR2Jjs.getUserRoot; exports.isPath = _chunkUKVDFR2Jjs.isPath; exports.parser = _chunkUKVDFR2Jjs.parser; exports.resolveOptions = _chunkUKVDFR2Jjs.resolveOptions;
35
+ exports.ViteSlidevPlugin = _chunkEBUHKMOSjs.ViteSlidevPlugin; exports.createServer = _chunkBU6NGBPIjs.createServer; exports.createWindiCSSPlugin = _chunkJ7PXWEZ7js.createWindiCSSPlugin; exports.getAddonRoots = _chunkBU6NGBPIjs.getAddonRoots; exports.getCLIRoot = _chunkBU6NGBPIjs.getCLIRoot; exports.getClientRoot = _chunkBU6NGBPIjs.getClientRoot; exports.getRoot = _chunkBU6NGBPIjs.getRoot; exports.getThemeRoots = _chunkBU6NGBPIjs.getThemeRoots; exports.getUserRoot = _chunkBU6NGBPIjs.getUserRoot; exports.isPath = _chunkBU6NGBPIjs.isPath; exports.parser = _chunkBU6NGBPIjs.parser; exports.resolveOptions = _chunkBU6NGBPIjs.resolveOptions;
package/dist/index.mjs CHANGED
@@ -9,13 +9,13 @@ import {
9
9
  isPath,
10
10
  parser,
11
11
  resolveOptions
12
- } from "./chunk-SQ2GXQ2V.mjs";
12
+ } from "./chunk-YELLDOPK.mjs";
13
13
  import {
14
14
  createWindiCSSPlugin
15
15
  } from "./chunk-HO75FTDI.mjs";
16
16
  import {
17
17
  ViteSlidevPlugin
18
- } from "./chunk-GSGFVYCQ.mjs";
18
+ } from "./chunk-F4WKBMX7.mjs";
19
19
  import "./chunk-JDHANZ37.mjs";
20
20
  import "./chunk-ZEKM4EGL.mjs";
21
21
  import "./chunk-QHOBBTS4.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slidev/cli",
3
- "version": "0.43.0",
3
+ "version": "0.43.2",
4
4
  "description": "Presentation slides for developers",
5
5
  "author": "antfu <anthonyfu117@hotmail.com>",
6
6
  "license": "MIT",
@@ -48,7 +48,8 @@
48
48
  "@iconify-json/ph": "^1.1.6",
49
49
  "@lillallol/outline-pdf": "^4.0.0",
50
50
  "@mrdrogdrog/optional": "^1.2.1",
51
- "@unocss/extractor-mdc": "^0.55.6",
51
+ "@unocss/extractor-mdc": "^0.55.7",
52
+ "@unocss/reset": "^0.55.7",
52
53
  "@vitejs/plugin-vue": "^4.3.4",
53
54
  "@vitejs/plugin-vue-jsx": "^3.0.2",
54
55
  "@windicss/config": "^1.9.1",
@@ -58,12 +59,12 @@
58
59
  "debug": "^4.3.4",
59
60
  "fast-glob": "^3.3.1",
60
61
  "fs-extra": "^11.1.1",
61
- "get-port-please": "^3.0.2",
62
+ "get-port-please": "^3.1.1",
62
63
  "global-dirs": "^3.0.1",
63
64
  "htmlparser2": "^9.0.0",
64
65
  "import-from": "^4.0.0",
65
66
  "is-installed-globally": "^0.4.0",
66
- "jiti": "^1.19.3",
67
+ "jiti": "^1.20.0",
67
68
  "js-base64": "^3.7.5",
68
69
  "katex": "^0.16.8",
69
70
  "kolorist": "^1.8.0",
@@ -71,7 +72,7 @@
71
72
  "markdown-it": "^13.0.1",
72
73
  "markdown-it-footnote": "^3.0.3",
73
74
  "markdown-it-link-attributes": "^4.0.1",
74
- "markdown-it-mdc": "^0.1.3",
75
+ "markdown-it-mdc": "^0.1.4",
75
76
  "monaco-editor": "^0.37.1",
76
77
  "nanoid": "^4.0.2",
77
78
  "open": "^8.4.1",
@@ -83,8 +84,8 @@
83
84
  "resolve": "^1.22.4",
84
85
  "resolve-from": "^5.0.0",
85
86
  "resolve-global": "^1.0.0",
86
- "shiki": "npm:shikiji-compat@^0.6.6",
87
- "unocss": "^0.55.6",
87
+ "shiki": "npm:shikiji-compat@^0.6.8",
88
+ "unocss": "^0.55.7",
88
89
  "unplugin-icons": "^0.17.0",
89
90
  "unplugin-vue-components": "^0.25.2",
90
91
  "unplugin-vue-markdown": "^0.24.3",
@@ -98,9 +99,9 @@
98
99
  "vue": "^3.3.4",
99
100
  "windicss": "^3.5.6",
100
101
  "yargs": "^17.7.2",
101
- "@slidev/client": "0.43.0",
102
- "@slidev/parser": "0.43.0",
103
- "@slidev/types": "0.43.0"
102
+ "@slidev/client": "0.43.2",
103
+ "@slidev/parser": "0.43.2",
104
+ "@slidev/types": "0.43.2"
104
105
  },
105
106
  "devDependencies": {
106
107
  "@types/plantuml-encoder": "^1.4.0",