vitepress 1.1.4 → 1.2.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.
- package/dist/client/app/index.js +15 -2
- package/dist/client/app/router.js +7 -1
- package/dist/client/shared.js +7 -4
- package/dist/client/theme-default/NotFound.vue +13 -37
- package/dist/client/theme-default/components/VPDocAsideOutline.vue +0 -1
- package/dist/client/theme-default/components/VPHomeContent.vue +5 -2
- package/dist/client/theme-default/components/VPLink.vue +5 -1
- package/dist/client/theme-default/components/VPLocalSearchBox.vue +1 -5
- package/dist/client/theme-default/composables/langs.js +2 -4
- package/dist/client/theme-default/styles/vars.css +4 -4
- package/dist/node/cli.js +17 -11
- package/dist/node/index.d.ts +373 -232
- package/dist/node/index.js +11 -9
- package/dist/node/{serve-CXVdC751.js → serve-DGS-XFVh.js} +236 -262
- package/package.json +32 -35
- package/types/shared.d.ts +6 -1
|
@@ -1,25 +1,29 @@
|
|
|
1
1
|
import { createHash } from 'crypto';
|
|
2
2
|
import { createRequire } from 'module';
|
|
3
|
-
import path$q, {
|
|
4
|
-
import path$r from 'node:path';
|
|
3
|
+
import path$q, { resolve as resolve$1, parse as parse$b, basename, join, dirname, normalize as normalize$3 } from 'path';
|
|
4
|
+
import path$r, { win32, posix as posix$1 } from 'node:path';
|
|
5
5
|
import process$2, { stdin, stdout } from 'node:process';
|
|
6
|
-
import 'node:fs/promises';
|
|
6
|
+
import { lstat as lstat$4, readdir as readdir$5, readlink, realpath } from 'node:fs/promises';
|
|
7
7
|
import { fileURLToPath } from 'node:url';
|
|
8
|
-
import fs$
|
|
9
|
-
import
|
|
10
|
-
import * as fs$
|
|
8
|
+
import * as fs$t from 'node:fs';
|
|
9
|
+
import fs__default$1 from 'node:fs';
|
|
10
|
+
import * as fs$u from 'fs';
|
|
11
11
|
import fs__default, { realpathSync as realpathSync$1, lstatSync, readdir as readdir$4, readdirSync as readdirSync$1, readlinkSync, unlinkSync, rmdirSync, chmodSync, statSync as statSync$1, renameSync, rmSync } from 'fs';
|
|
12
|
-
import {
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import require$$1, { StringDecoder } from 'string_decoder';
|
|
12
|
+
import { EventEmitter } from 'node:events';
|
|
13
|
+
import Stream$2 from 'node:stream';
|
|
14
|
+
import { StringDecoder } from 'node:string_decoder';
|
|
16
15
|
import require$$0$3, { inspect } from 'util';
|
|
17
16
|
import require$$0$5, { tmpdir } from 'os';
|
|
17
|
+
import require$$3, { fileURLToPath as fileURLToPath$1, URL as URL$1, pathToFileURL } from 'url';
|
|
18
18
|
import require$$5 from 'assert';
|
|
19
|
+
import require$$0$6 from 'events';
|
|
19
20
|
import { normalizePath, loadConfigFromFile, createLogger, mergeConfig as mergeConfig$1, searchForWorkspaceRoot, build as build$1, transformWithEsbuild, createServer as createServer$1 } from 'vite';
|
|
21
|
+
import require$$0$2 from 'stream';
|
|
20
22
|
import require$$2$1 from 'readline';
|
|
21
23
|
import require$$0$7 from 'child_process';
|
|
24
|
+
import require$$1 from 'string_decoder';
|
|
22
25
|
import zlib from 'zlib';
|
|
26
|
+
import { isBooleanAttr } from '@vue/shared';
|
|
23
27
|
import f$1 from 'node:readline';
|
|
24
28
|
import { WriteStream } from 'node:tty';
|
|
25
29
|
import http from 'http';
|
|
@@ -2684,7 +2688,7 @@ function findUpSync(name, {
|
|
|
2684
2688
|
const filePath = path$r.isAbsolute(name) ? name : path$r.join(directory, name);
|
|
2685
2689
|
|
|
2686
2690
|
try {
|
|
2687
|
-
const stats =
|
|
2691
|
+
const stats = fs__default$1.statSync(filePath, {throwIfNoEntry: false});
|
|
2688
2692
|
if ((type === 'file' && stats?.isFile()) || (type === 'directory' && stats?.isDirectory())) {
|
|
2689
2693
|
return filePath;
|
|
2690
2694
|
}
|
|
@@ -6193,7 +6197,7 @@ const proc = typeof process === 'object' && process
|
|
|
6193
6197
|
const isStream = (s) => !!s &&
|
|
6194
6198
|
typeof s === 'object' &&
|
|
6195
6199
|
(s instanceof Minipass ||
|
|
6196
|
-
s instanceof
|
|
6200
|
+
s instanceof Stream$2 ||
|
|
6197
6201
|
isReadable(s) ||
|
|
6198
6202
|
isWritable(s));
|
|
6199
6203
|
/**
|
|
@@ -6204,7 +6208,7 @@ const isReadable = (s) => !!s &&
|
|
|
6204
6208
|
s instanceof EventEmitter &&
|
|
6205
6209
|
typeof s.pipe === 'function' &&
|
|
6206
6210
|
// node core Writable streams have a pipe() method, but it throws
|
|
6207
|
-
s.pipe !==
|
|
6211
|
+
s.pipe !== Stream$2.Writable.prototype.pipe;
|
|
6208
6212
|
/**
|
|
6209
6213
|
* Return true if the argument is a valid {@link Minipass.Writable}
|
|
6210
6214
|
*/
|
|
@@ -7210,8 +7214,8 @@ const defaultFS = {
|
|
|
7210
7214
|
},
|
|
7211
7215
|
};
|
|
7212
7216
|
// if they just gave us require('fs') then use our default
|
|
7213
|
-
const fsFromOption = (fsOption) => !fsOption || fsOption === defaultFS || fsOption === fs$t
|
|
7214
|
-
|
|
7217
|
+
const fsFromOption = (fsOption) => !fsOption || fsOption === defaultFS || fsOption === fs$t ?
|
|
7218
|
+
defaultFS
|
|
7215
7219
|
: {
|
|
7216
7220
|
...defaultFS,
|
|
7217
7221
|
...fsOption,
|
|
@@ -7252,20 +7256,13 @@ const ENOREADLINK = 0b0001_0000_0000;
|
|
|
7252
7256
|
const ENOREALPATH = 0b0010_0000_0000;
|
|
7253
7257
|
const ENOCHILD = ENOTDIR | ENOENT | ENOREALPATH;
|
|
7254
7258
|
const TYPEMASK = 0b0011_1111_1111;
|
|
7255
|
-
const entToType = (s) => s.isFile()
|
|
7256
|
-
?
|
|
7257
|
-
|
|
7258
|
-
|
|
7259
|
-
|
|
7260
|
-
|
|
7261
|
-
|
|
7262
|
-
? IFCHR
|
|
7263
|
-
: s.isBlockDevice()
|
|
7264
|
-
? IFBLK
|
|
7265
|
-
: s.isSocket()
|
|
7266
|
-
? IFSOCK
|
|
7267
|
-
: s.isFIFO()
|
|
7268
|
-
? IFIFO
|
|
7259
|
+
const entToType = (s) => s.isFile() ? IFREG
|
|
7260
|
+
: s.isDirectory() ? IFDIR
|
|
7261
|
+
: s.isSymbolicLink() ? IFLNK
|
|
7262
|
+
: s.isCharacterDevice() ? IFCHR
|
|
7263
|
+
: s.isBlockDevice() ? IFBLK
|
|
7264
|
+
: s.isSocket() ? IFSOCK
|
|
7265
|
+
: s.isFIFO() ? IFIFO
|
|
7269
7266
|
: UNKNOWN;
|
|
7270
7267
|
// normalize unicode path names
|
|
7271
7268
|
const normalizeCache = new Map();
|
|
@@ -7367,6 +7364,11 @@ class PathBase {
|
|
|
7367
7364
|
* @internal
|
|
7368
7365
|
*/
|
|
7369
7366
|
nocase;
|
|
7367
|
+
/**
|
|
7368
|
+
* boolean indicating that this path is the current working directory
|
|
7369
|
+
* of the PathScurry collection that contains it.
|
|
7370
|
+
*/
|
|
7371
|
+
isCWD = false;
|
|
7370
7372
|
// potential default fs override
|
|
7371
7373
|
#fs;
|
|
7372
7374
|
// Stats fields
|
|
@@ -7454,14 +7456,20 @@ class PathBase {
|
|
|
7454
7456
|
#realpath;
|
|
7455
7457
|
/**
|
|
7456
7458
|
* This property is for compatibility with the Dirent class as of
|
|
7457
|
-
* Node v20, where Dirent['
|
|
7458
|
-
* that was passed to readdir.
|
|
7459
|
-
*
|
|
7460
|
-
* For root entries, it's the path to the entry itself.
|
|
7459
|
+
* Node v20, where Dirent['parentPath'] refers to the path of the
|
|
7460
|
+
* directory that was passed to readdir. For root entries, it's the path
|
|
7461
|
+
* to the entry itself.
|
|
7461
7462
|
*/
|
|
7462
|
-
get
|
|
7463
|
+
get parentPath() {
|
|
7463
7464
|
return (this.parent || this).fullpath();
|
|
7464
7465
|
}
|
|
7466
|
+
/**
|
|
7467
|
+
* Deprecated alias for Dirent['parentPath'] Somewhat counterintuitively,
|
|
7468
|
+
* this property refers to the *parent* path, not the path object itself.
|
|
7469
|
+
*/
|
|
7470
|
+
get path() {
|
|
7471
|
+
return this.parentPath;
|
|
7472
|
+
}
|
|
7465
7473
|
/**
|
|
7466
7474
|
* Do not create new Path objects directly. They should always be accessed
|
|
7467
7475
|
* via the PathScurry class or other methods on the Path class.
|
|
@@ -7515,8 +7523,8 @@ class PathBase {
|
|
|
7515
7523
|
const rootPath = this.getRootString(path);
|
|
7516
7524
|
const dir = path.substring(rootPath.length);
|
|
7517
7525
|
const dirParts = dir.split(this.splitSep);
|
|
7518
|
-
const result = rootPath
|
|
7519
|
-
|
|
7526
|
+
const result = rootPath ?
|
|
7527
|
+
this.getRoot(rootPath).#resolveParts(dirParts)
|
|
7520
7528
|
: this.#resolveParts(dirParts);
|
|
7521
7529
|
return result;
|
|
7522
7530
|
}
|
|
@@ -7567,9 +7575,7 @@ class PathBase {
|
|
|
7567
7575
|
}
|
|
7568
7576
|
// find the child
|
|
7569
7577
|
const children = this.children();
|
|
7570
|
-
const name = this.nocase
|
|
7571
|
-
? normalizeNocase(pathPart)
|
|
7572
|
-
: normalize$2(pathPart);
|
|
7578
|
+
const name = this.nocase ? normalizeNocase(pathPart) : normalize$2(pathPart);
|
|
7573
7579
|
for (const p of children) {
|
|
7574
7580
|
if (p.#matchName === name) {
|
|
7575
7581
|
return p;
|
|
@@ -7579,9 +7585,7 @@ class PathBase {
|
|
|
7579
7585
|
// actually exist. If we know the parent isn't a dir, then
|
|
7580
7586
|
// in fact it CAN'T exist.
|
|
7581
7587
|
const s = this.parent ? this.sep : '';
|
|
7582
|
-
const fullpath = this.#fullpath
|
|
7583
|
-
? this.#fullpath + s + pathPart
|
|
7584
|
-
: undefined;
|
|
7588
|
+
const fullpath = this.#fullpath ? this.#fullpath + s + pathPart : undefined;
|
|
7585
7589
|
const pchild = this.newChild(pathPart, UNKNOWN, {
|
|
7586
7590
|
...opts,
|
|
7587
7591
|
parent: this,
|
|
@@ -7600,6 +7604,8 @@ class PathBase {
|
|
|
7600
7604
|
* the cwd, then this ends up being equivalent to the fullpath()
|
|
7601
7605
|
*/
|
|
7602
7606
|
relative() {
|
|
7607
|
+
if (this.isCWD)
|
|
7608
|
+
return '';
|
|
7603
7609
|
if (this.#relative !== undefined) {
|
|
7604
7610
|
return this.#relative;
|
|
7605
7611
|
}
|
|
@@ -7620,6 +7626,8 @@ class PathBase {
|
|
|
7620
7626
|
relativePosix() {
|
|
7621
7627
|
if (this.sep === '/')
|
|
7622
7628
|
return this.relative();
|
|
7629
|
+
if (this.isCWD)
|
|
7630
|
+
return '';
|
|
7623
7631
|
if (this.#relativePosix !== undefined)
|
|
7624
7632
|
return this.#relativePosix;
|
|
7625
7633
|
const name = this.name;
|
|
@@ -7685,23 +7693,15 @@ class PathBase {
|
|
|
7685
7693
|
return this[`is${type}`]();
|
|
7686
7694
|
}
|
|
7687
7695
|
getType() {
|
|
7688
|
-
return this.isUnknown()
|
|
7689
|
-
? '
|
|
7690
|
-
|
|
7691
|
-
|
|
7692
|
-
|
|
7693
|
-
|
|
7694
|
-
|
|
7695
|
-
|
|
7696
|
-
|
|
7697
|
-
? 'FIFO'
|
|
7698
|
-
: this.isCharacterDevice()
|
|
7699
|
-
? 'CharacterDevice'
|
|
7700
|
-
: this.isBlockDevice()
|
|
7701
|
-
? 'BlockDevice'
|
|
7702
|
-
: /* c8 ignore start */ this.isSocket()
|
|
7703
|
-
? 'Socket'
|
|
7704
|
-
: 'Unknown';
|
|
7696
|
+
return (this.isUnknown() ? 'Unknown'
|
|
7697
|
+
: this.isDirectory() ? 'Directory'
|
|
7698
|
+
: this.isFile() ? 'File'
|
|
7699
|
+
: this.isSymbolicLink() ? 'SymbolicLink'
|
|
7700
|
+
: this.isFIFO() ? 'FIFO'
|
|
7701
|
+
: this.isCharacterDevice() ? 'CharacterDevice'
|
|
7702
|
+
: this.isBlockDevice() ? 'BlockDevice'
|
|
7703
|
+
: /* c8 ignore start */ this.isSocket() ? 'Socket'
|
|
7704
|
+
: 'Unknown');
|
|
7705
7705
|
/* c8 ignore stop */
|
|
7706
7706
|
}
|
|
7707
7707
|
/**
|
|
@@ -7835,8 +7835,8 @@ class PathBase {
|
|
|
7835
7835
|
* directly.
|
|
7836
7836
|
*/
|
|
7837
7837
|
isNamed(n) {
|
|
7838
|
-
return !this.nocase
|
|
7839
|
-
|
|
7838
|
+
return !this.nocase ?
|
|
7839
|
+
this.#matchName === normalize$2(n)
|
|
7840
7840
|
: this.#matchName === normalizeNocase(n);
|
|
7841
7841
|
}
|
|
7842
7842
|
/**
|
|
@@ -7892,7 +7892,7 @@ class PathBase {
|
|
|
7892
7892
|
/* c8 ignore stop */
|
|
7893
7893
|
try {
|
|
7894
7894
|
const read = this.#fs.readlinkSync(this.fullpath());
|
|
7895
|
-
const linkTarget =
|
|
7895
|
+
const linkTarget = this.parent.realpathSync()?.resolve(read);
|
|
7896
7896
|
if (linkTarget) {
|
|
7897
7897
|
return (this.#linkTarget = linkTarget);
|
|
7898
7898
|
}
|
|
@@ -8013,9 +8013,7 @@ class PathBase {
|
|
|
8013
8013
|
#readdirMaybePromoteChild(e, c) {
|
|
8014
8014
|
for (let p = c.provisional; p < c.length; p++) {
|
|
8015
8015
|
const pchild = c[p];
|
|
8016
|
-
const name = this.nocase
|
|
8017
|
-
? normalizeNocase(e.name)
|
|
8018
|
-
: normalize$2(e.name);
|
|
8016
|
+
const name = this.nocase ? normalizeNocase(e.name) : normalize$2(e.name);
|
|
8019
8017
|
if (name !== pchild.#matchName) {
|
|
8020
8018
|
continue;
|
|
8021
8019
|
}
|
|
@@ -8314,6 +8312,8 @@ class PathBase {
|
|
|
8314
8312
|
[setAsCwd](oldCwd) {
|
|
8315
8313
|
if (oldCwd === this)
|
|
8316
8314
|
return;
|
|
8315
|
+
oldCwd.isCWD = false;
|
|
8316
|
+
this.isCWD = true;
|
|
8317
8317
|
const changed = new Set([]);
|
|
8318
8318
|
let rp = [];
|
|
8319
8319
|
let p = this;
|
|
@@ -8487,7 +8487,7 @@ class PathScurryBase {
|
|
|
8487
8487
|
constructor(cwd = process.cwd(), pathImpl, sep, { nocase, childrenCacheSize = 16 * 1024, fs = defaultFS, } = {}) {
|
|
8488
8488
|
this.#fs = fsFromOption(fs);
|
|
8489
8489
|
if (cwd instanceof URL || cwd.startsWith('file://')) {
|
|
8490
|
-
cwd = fileURLToPath
|
|
8490
|
+
cwd = fileURLToPath(cwd);
|
|
8491
8491
|
}
|
|
8492
8492
|
// resolve and split root, and then add to the store.
|
|
8493
8493
|
// this is the only time we call path.resolve()
|
|
@@ -9165,10 +9165,8 @@ process.platform === 'win32' ? PathWin32 : PathPosix;
|
|
|
9165
9165
|
* {@link PathScurryWin32} on Windows systems, {@link PathScurryDarwin} on
|
|
9166
9166
|
* Darwin (macOS) systems, {@link PathScurryPosix} on all others.
|
|
9167
9167
|
*/
|
|
9168
|
-
const PathScurry = process.platform === 'win32'
|
|
9169
|
-
?
|
|
9170
|
-
: process.platform === 'darwin'
|
|
9171
|
-
? PathScurryDarwin
|
|
9168
|
+
const PathScurry = process.platform === 'win32' ? PathScurryWin32
|
|
9169
|
+
: process.platform === 'darwin' ? PathScurryDarwin
|
|
9172
9170
|
: PathScurryPosix;
|
|
9173
9171
|
|
|
9174
9172
|
// this is just a very light wrapper around 2 arrays with an offset index
|
|
@@ -10227,7 +10225,7 @@ class Glob {
|
|
|
10227
10225
|
this.cwd = '';
|
|
10228
10226
|
}
|
|
10229
10227
|
else if (opts.cwd instanceof URL || opts.cwd.startsWith('file://')) {
|
|
10230
|
-
opts.cwd = fileURLToPath
|
|
10228
|
+
opts.cwd = fileURLToPath(opts.cwd);
|
|
10231
10229
|
}
|
|
10232
10230
|
this.cwd = opts.cwd || '';
|
|
10233
10231
|
this.root = opts.root;
|
|
@@ -10483,12 +10481,12 @@ const optArgT = (opt) => {
|
|
|
10483
10481
|
if (!glob) {
|
|
10484
10482
|
return options;
|
|
10485
10483
|
}
|
|
10486
|
-
const globOpt = glob === true
|
|
10487
|
-
|
|
10488
|
-
|
|
10484
|
+
const globOpt = glob === true ?
|
|
10485
|
+
opt.signal ?
|
|
10486
|
+
{ signal: opt.signal }
|
|
10489
10487
|
: {}
|
|
10490
|
-
: opt.signal
|
|
10491
|
-
|
|
10488
|
+
: opt.signal ?
|
|
10489
|
+
{
|
|
10492
10490
|
signal: opt.signal,
|
|
10493
10491
|
...glob,
|
|
10494
10492
|
}
|
|
@@ -10513,10 +10511,8 @@ const pathArg = (path, opt = {}) => {
|
|
|
10513
10511
|
const type = typeof path;
|
|
10514
10512
|
if (type !== 'string') {
|
|
10515
10513
|
const ctor = path && type === 'object' && path.constructor;
|
|
10516
|
-
const received = ctor && ctor.name
|
|
10517
|
-
|
|
10518
|
-
: type === 'object'
|
|
10519
|
-
? inspect(path)
|
|
10514
|
+
const received = ctor && ctor.name ? `an instance of ${ctor.name}`
|
|
10515
|
+
: type === 'object' ? inspect(path)
|
|
10520
10516
|
: `type ${type} ${path}`;
|
|
10521
10517
|
const msg = 'The "path" argument must be of type string. ' + `Received ${received}`;
|
|
10522
10518
|
throw Object.assign(new TypeError(msg), {
|
|
@@ -10563,7 +10559,7 @@ const readdirSync = (path) => readdirSync$1(path, { withFileTypes: true });
|
|
|
10563
10559
|
const chmod$2 = (path, mode) => new Promise((res, rej) => fs__default.chmod(path, mode, (er, ...d) => (er ? rej(er) : res(...d))));
|
|
10564
10560
|
const mkdir = (path, options) => new Promise((res, rej) => fs__default.mkdir(path, options, (er, made) => (er ? rej(er) : res(made))));
|
|
10565
10561
|
const readdir$3 = (path) => new Promise((res, rej) => fs__default.readdir(path, { withFileTypes: true }, (er, data) => er ? rej(er) : res(data)));
|
|
10566
|
-
const rename$1 = (oldPath, newPath) => new Promise((res, rej) => fs__default.rename(oldPath, newPath, (er, ...d) =>
|
|
10562
|
+
const rename$1 = (oldPath, newPath) => new Promise((res, rej) => fs__default.rename(oldPath, newPath, (er, ...d) => er ? rej(er) : res(...d)));
|
|
10567
10563
|
const rm$1 = (path, options) => new Promise((res, rej) => fs__default.rm(path, options, (er, ...d) => (er ? rej(er) : res(...d))));
|
|
10568
10564
|
const rmdir$3 = (path) => new Promise((res, rej) => fs__default.rmdir(path, (er, ...d) => (er ? rej(er) : res(...d))));
|
|
10569
10565
|
const stat$2 = (path) => new Promise((res, rej) => fs__default.stat(path, (er, data) => (er ? rej(er) : res(data))));
|
|
@@ -11271,11 +11267,11 @@ const [major = 0, minor = 0] = versArr.map(v => parseInt(v, 10));
|
|
|
11271
11267
|
const hasNative = major > 14 || (major === 14 && minor >= 14);
|
|
11272
11268
|
// we do NOT use native by default on Windows, because Node's native
|
|
11273
11269
|
// rm implementation is less advanced. Change this code if that changes.
|
|
11274
|
-
const useNative = !hasNative || platform === 'win32'
|
|
11275
|
-
|
|
11270
|
+
const useNative = !hasNative || platform === 'win32' ?
|
|
11271
|
+
() => false
|
|
11276
11272
|
: opt => !opt?.signal && !opt?.filter;
|
|
11277
|
-
const useNativeSync = !hasNative || platform === 'win32'
|
|
11278
|
-
|
|
11273
|
+
const useNativeSync = !hasNative || platform === 'win32' ?
|
|
11274
|
+
() => false
|
|
11279
11275
|
: opt => !opt?.signal && !opt?.filter;
|
|
11280
11276
|
|
|
11281
11277
|
const wrap = (fn) => async (path, opt) => {
|
|
@@ -11316,7 +11312,9 @@ const moveRemoveSync = wrapSync(rimrafMoveRemoveSync);
|
|
|
11316
11312
|
const moveRemove = Object.assign(wrap(rimrafMoveRemove), {
|
|
11317
11313
|
sync: moveRemoveSync,
|
|
11318
11314
|
});
|
|
11319
|
-
const rimrafSync = wrapSync((path, opt) => useNativeSync(opt) ?
|
|
11315
|
+
const rimrafSync = wrapSync((path, opt) => useNativeSync(opt) ?
|
|
11316
|
+
rimrafNativeSync(path, opt)
|
|
11317
|
+
: rimrafManualSync(path, opt));
|
|
11320
11318
|
const rimraf_ = wrap((path, opt) => useNative(opt) ? rimrafNative(path, opt) : rimrafManual(path, opt));
|
|
11321
11319
|
const rimraf = Object.assign(rimraf_, {
|
|
11322
11320
|
rimraf: rimraf_,
|
|
@@ -12390,17 +12388,21 @@ if (typeof process === 'undefined' || process.type === 'renderer' || process.bro
|
|
|
12390
12388
|
var srcExports = src$1.exports;
|
|
12391
12389
|
var _debug = /*@__PURE__*/getDefaultExportFromCjs(srcExports);
|
|
12392
12390
|
|
|
12393
|
-
|
|
12391
|
+
function commonjsRequire(path) {
|
|
12392
|
+
throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
|
|
12393
|
+
}
|
|
12394
12394
|
|
|
12395
|
-
|
|
12395
|
+
var picocolors = {exports: {}};
|
|
12396
12396
|
|
|
12397
|
+
let argv = process.argv || [],
|
|
12398
|
+
env = process.env;
|
|
12397
12399
|
let isColorSupported =
|
|
12398
|
-
!("NO_COLOR" in
|
|
12399
|
-
("FORCE_COLOR" in
|
|
12400
|
-
|
|
12400
|
+
!("NO_COLOR" in env || argv.includes("--no-color")) &&
|
|
12401
|
+
("FORCE_COLOR" in env ||
|
|
12402
|
+
argv.includes("--color") ||
|
|
12401
12403
|
process.platform === "win32" ||
|
|
12402
|
-
(
|
|
12403
|
-
"CI" in
|
|
12404
|
+
(commonjsRequire != null && require$$0$4.isatty(1) && env.TERM !== "dumb") ||
|
|
12405
|
+
"CI" in env);
|
|
12404
12406
|
|
|
12405
12407
|
let formatter =
|
|
12406
12408
|
(open, close, replace = open) =>
|
|
@@ -12413,40 +12415,47 @@ let formatter =
|
|
|
12413
12415
|
};
|
|
12414
12416
|
|
|
12415
12417
|
let replaceClose = (string, close, replace, index) => {
|
|
12416
|
-
let
|
|
12417
|
-
let
|
|
12418
|
-
|
|
12419
|
-
|
|
12420
|
-
|
|
12421
|
-
|
|
12422
|
-
|
|
12423
|
-
|
|
12424
|
-
|
|
12425
|
-
|
|
12426
|
-
|
|
12427
|
-
|
|
12428
|
-
|
|
12429
|
-
|
|
12430
|
-
|
|
12431
|
-
|
|
12432
|
-
|
|
12433
|
-
|
|
12434
|
-
|
|
12435
|
-
|
|
12436
|
-
|
|
12437
|
-
|
|
12438
|
-
|
|
12439
|
-
|
|
12440
|
-
|
|
12441
|
-
|
|
12442
|
-
|
|
12443
|
-
|
|
12444
|
-
|
|
12445
|
-
|
|
12446
|
-
|
|
12447
|
-
|
|
12448
|
-
|
|
12449
|
-
|
|
12418
|
+
let result = "";
|
|
12419
|
+
let cursor = 0;
|
|
12420
|
+
do {
|
|
12421
|
+
result += string.substring(cursor, index) + replace;
|
|
12422
|
+
cursor = index + close.length;
|
|
12423
|
+
index = string.indexOf(close, cursor);
|
|
12424
|
+
} while (~index)
|
|
12425
|
+
return result + string.substring(cursor)
|
|
12426
|
+
};
|
|
12427
|
+
|
|
12428
|
+
let createColors = (enabled = isColorSupported) => {
|
|
12429
|
+
let init = enabled ? formatter : () => String;
|
|
12430
|
+
return {
|
|
12431
|
+
isColorSupported: enabled,
|
|
12432
|
+
reset: init("\x1b[0m", "\x1b[0m"),
|
|
12433
|
+
bold: init("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m"),
|
|
12434
|
+
dim: init("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m"),
|
|
12435
|
+
italic: init("\x1b[3m", "\x1b[23m"),
|
|
12436
|
+
underline: init("\x1b[4m", "\x1b[24m"),
|
|
12437
|
+
inverse: init("\x1b[7m", "\x1b[27m"),
|
|
12438
|
+
hidden: init("\x1b[8m", "\x1b[28m"),
|
|
12439
|
+
strikethrough: init("\x1b[9m", "\x1b[29m"),
|
|
12440
|
+
black: init("\x1b[30m", "\x1b[39m"),
|
|
12441
|
+
red: init("\x1b[31m", "\x1b[39m"),
|
|
12442
|
+
green: init("\x1b[32m", "\x1b[39m"),
|
|
12443
|
+
yellow: init("\x1b[33m", "\x1b[39m"),
|
|
12444
|
+
blue: init("\x1b[34m", "\x1b[39m"),
|
|
12445
|
+
magenta: init("\x1b[35m", "\x1b[39m"),
|
|
12446
|
+
cyan: init("\x1b[36m", "\x1b[39m"),
|
|
12447
|
+
white: init("\x1b[37m", "\x1b[39m"),
|
|
12448
|
+
gray: init("\x1b[90m", "\x1b[39m"),
|
|
12449
|
+
bgBlack: init("\x1b[40m", "\x1b[49m"),
|
|
12450
|
+
bgRed: init("\x1b[41m", "\x1b[49m"),
|
|
12451
|
+
bgGreen: init("\x1b[42m", "\x1b[49m"),
|
|
12452
|
+
bgYellow: init("\x1b[43m", "\x1b[49m"),
|
|
12453
|
+
bgBlue: init("\x1b[44m", "\x1b[49m"),
|
|
12454
|
+
bgMagenta: init("\x1b[45m", "\x1b[49m"),
|
|
12455
|
+
bgCyan: init("\x1b[46m", "\x1b[49m"),
|
|
12456
|
+
bgWhite: init("\x1b[47m", "\x1b[49m"),
|
|
12457
|
+
}
|
|
12458
|
+
};
|
|
12450
12459
|
|
|
12451
12460
|
picocolors.exports = createColors();
|
|
12452
12461
|
picocolors.exports.createColors = createColors;
|
|
@@ -19701,8 +19710,7 @@ const dynamicRoutesPlugin = async (config) => {
|
|
|
19701
19710
|
server = _server;
|
|
19702
19711
|
},
|
|
19703
19712
|
resolveId(id) {
|
|
19704
|
-
if (!id.endsWith(".md"))
|
|
19705
|
-
return;
|
|
19713
|
+
if (!id.endsWith(".md")) return;
|
|
19706
19714
|
const normalizedId = id.startsWith(config.srcDir) ? id : normalizePath(path$q.resolve(config.srcDir, id.replace(/^\//, "")));
|
|
19707
19715
|
const matched = config.dynamicRoutes.routes.find(
|
|
19708
19716
|
(r) => r.fullPath === normalizedId
|
|
@@ -19770,9 +19778,12 @@ async function resolveDynamicRoutes(srcDir, routes, logger) {
|
|
|
19770
19778
|
"silent"
|
|
19771
19779
|
);
|
|
19772
19780
|
routeModuleCache.set(pathsFile, mod);
|
|
19773
|
-
} catch (
|
|
19774
|
-
logger.warn(
|
|
19775
|
-
${
|
|
19781
|
+
} catch (err) {
|
|
19782
|
+
logger.warn(
|
|
19783
|
+
`${c$1.yellow(`Failed to load ${pathsFile}:`)}
|
|
19784
|
+
${err.message}
|
|
19785
|
+
${err.stack}`
|
|
19786
|
+
);
|
|
19776
19787
|
continue;
|
|
19777
19788
|
}
|
|
19778
19789
|
}
|
|
@@ -19819,7 +19830,7 @@ const HASH_OR_QUERY_RE = /[?#].*$/;
|
|
|
19819
19830
|
const INDEX_OR_EXT_RE = /(?:(^|\/)index)?\.(?:md|html)$/;
|
|
19820
19831
|
const inBrowser = typeof document !== "undefined";
|
|
19821
19832
|
const notFoundPageData = {
|
|
19822
|
-
relativePath: "",
|
|
19833
|
+
relativePath: "404.md",
|
|
19823
19834
|
filePath: "",
|
|
19824
19835
|
title: "404",
|
|
19825
19836
|
description: "Not Found",
|
|
@@ -19851,10 +19862,13 @@ function normalize$1(path) {
|
|
|
19851
19862
|
function isExternal(path) {
|
|
19852
19863
|
return EXTERNAL_URL_RE.test(path);
|
|
19853
19864
|
}
|
|
19854
|
-
function
|
|
19855
|
-
|
|
19865
|
+
function getLocaleForPath(siteData, relativePath) {
|
|
19866
|
+
return Object.keys(siteData?.locales || {}).find(
|
|
19856
19867
|
(key) => key !== "root" && !isExternal(key) && isActive(relativePath, `/${key}/`, true)
|
|
19857
19868
|
) || "root";
|
|
19869
|
+
}
|
|
19870
|
+
function resolveSiteDataByRoute(siteData, relativePath) {
|
|
19871
|
+
const localeIndex = getLocaleForPath(siteData, relativePath);
|
|
19858
19872
|
return Object.assign({}, siteData, {
|
|
19859
19873
|
localeIndex,
|
|
19860
19874
|
lang: siteData.locales[localeIndex]?.lang ?? siteData.lang,
|
|
@@ -19895,11 +19909,9 @@ function createTitleTemplate(siteTitle, template) {
|
|
|
19895
19909
|
}
|
|
19896
19910
|
function hasTag(head, tag) {
|
|
19897
19911
|
const [tagType, tagAttrs] = tag;
|
|
19898
|
-
if (tagType !== "meta")
|
|
19899
|
-
return false;
|
|
19912
|
+
if (tagType !== "meta") return false;
|
|
19900
19913
|
const keyAttr = Object.entries(tagAttrs)[0];
|
|
19901
|
-
if (keyAttr == null)
|
|
19902
|
-
return false;
|
|
19914
|
+
if (keyAttr == null) return false;
|
|
19903
19915
|
return head.some(
|
|
19904
19916
|
([type, attrs]) => type === tagType && attrs[keyAttr[0]] === keyAttr[1]
|
|
19905
19917
|
);
|
|
@@ -21674,10 +21686,6 @@ var merge = new Type$7('tag:yaml.org,2002:merge', {
|
|
|
21674
21686
|
resolve: resolveYamlMerge
|
|
21675
21687
|
});
|
|
21676
21688
|
|
|
21677
|
-
function commonjsRequire(path) {
|
|
21678
|
-
throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
|
|
21679
|
-
}
|
|
21680
|
-
|
|
21681
21689
|
/*eslint-disable no-bitwise*/
|
|
21682
21690
|
|
|
21683
21691
|
var NodeBuffer;
|
|
@@ -26687,7 +26695,7 @@ function replaceUnsafeChar$1 (ch) {
|
|
|
26687
26695
|
return HTML_REPLACEMENTS$1[ch]
|
|
26688
26696
|
}
|
|
26689
26697
|
|
|
26690
|
-
function escapeHtml$
|
|
26698
|
+
function escapeHtml$2 (str) {
|
|
26691
26699
|
if (HTML_ESCAPE_TEST_RE$1.test(str)) {
|
|
26692
26700
|
return str.replace(HTML_ESCAPE_REPLACE_RE$1, replaceUnsafeChar$1)
|
|
26693
26701
|
}
|
|
@@ -26845,7 +26853,7 @@ var utils$3 = /*#__PURE__*/Object.freeze({
|
|
|
26845
26853
|
__proto__: null,
|
|
26846
26854
|
arrayReplaceAt: arrayReplaceAt,
|
|
26847
26855
|
assign: assign$1,
|
|
26848
|
-
escapeHtml: escapeHtml$
|
|
26856
|
+
escapeHtml: escapeHtml$2,
|
|
26849
26857
|
escapeRE: escapeRE$1,
|
|
26850
26858
|
fromCodePoint: fromCodePoint,
|
|
26851
26859
|
has: has,
|
|
@@ -27078,7 +27086,7 @@ default_rules.code_inline = function (tokens, idx, options, env, slf) {
|
|
|
27078
27086
|
const token = tokens[idx];
|
|
27079
27087
|
|
|
27080
27088
|
return '<code' + slf.renderAttrs(token) + '>' +
|
|
27081
|
-
escapeHtml$
|
|
27089
|
+
escapeHtml$2(token.content) +
|
|
27082
27090
|
'</code>'
|
|
27083
27091
|
};
|
|
27084
27092
|
|
|
@@ -27086,7 +27094,7 @@ default_rules.code_block = function (tokens, idx, options, env, slf) {
|
|
|
27086
27094
|
const token = tokens[idx];
|
|
27087
27095
|
|
|
27088
27096
|
return '<pre' + slf.renderAttrs(token) + '><code>' +
|
|
27089
|
-
escapeHtml$
|
|
27097
|
+
escapeHtml$2(tokens[idx].content) +
|
|
27090
27098
|
'</code></pre>\n'
|
|
27091
27099
|
};
|
|
27092
27100
|
|
|
@@ -27104,9 +27112,9 @@ default_rules.fence = function (tokens, idx, options, env, slf) {
|
|
|
27104
27112
|
|
|
27105
27113
|
let highlighted;
|
|
27106
27114
|
if (options.highlight) {
|
|
27107
|
-
highlighted = options.highlight(token.content, langName, langAttrs) || escapeHtml$
|
|
27115
|
+
highlighted = options.highlight(token.content, langName, langAttrs) || escapeHtml$2(token.content);
|
|
27108
27116
|
} else {
|
|
27109
|
-
highlighted = escapeHtml$
|
|
27117
|
+
highlighted = escapeHtml$2(token.content);
|
|
27110
27118
|
}
|
|
27111
27119
|
|
|
27112
27120
|
if (highlighted.indexOf('<pre') === 0) {
|
|
@@ -27160,7 +27168,7 @@ default_rules.softbreak = function (tokens, idx, options /*, env */) {
|
|
|
27160
27168
|
};
|
|
27161
27169
|
|
|
27162
27170
|
default_rules.text = function (tokens, idx /*, options, env */) {
|
|
27163
|
-
return escapeHtml$
|
|
27171
|
+
return escapeHtml$2(tokens[idx].content)
|
|
27164
27172
|
};
|
|
27165
27173
|
|
|
27166
27174
|
default_rules.html_block = function (tokens, idx /*, options, env */) {
|
|
@@ -27220,7 +27228,7 @@ Renderer.prototype.renderAttrs = function renderAttrs (token) {
|
|
|
27220
27228
|
result = '';
|
|
27221
27229
|
|
|
27222
27230
|
for (i = 0, l = token.attrs.length; i < l; i++) {
|
|
27223
|
-
result += ' ' + escapeHtml$
|
|
27231
|
+
result += ' ' + escapeHtml$2(token.attrs[i][0]) + '="' + escapeHtml$2(token.attrs[i][1]) + '"';
|
|
27224
27232
|
}
|
|
27225
27233
|
|
|
27226
27234
|
return result
|
|
@@ -28407,7 +28415,7 @@ function smartquotes (state) {
|
|
|
28407
28415
|
// For example, `\:)` shouldn't be replaced with an emoji.
|
|
28408
28416
|
//
|
|
28409
28417
|
|
|
28410
|
-
function text_join (state) {
|
|
28418
|
+
function text_join$1 (state) {
|
|
28411
28419
|
let curr, last;
|
|
28412
28420
|
const blockTokens = state.tokens;
|
|
28413
28421
|
const l = blockTokens.length;
|
|
@@ -28460,7 +28468,7 @@ const _rules$2 = [
|
|
|
28460
28468
|
['smartquotes', smartquotes],
|
|
28461
28469
|
// `text_join` finds `text_special` tokens (for escape sequences)
|
|
28462
28470
|
// and joins them with the rest of the text
|
|
28463
|
-
['text_join', text_join]
|
|
28471
|
+
['text_join', text_join$1]
|
|
28464
28472
|
];
|
|
28465
28473
|
|
|
28466
28474
|
/**
|
|
@@ -36923,10 +36931,7 @@ function preWrapperPlugin(md, options) {
|
|
|
36923
36931
|
const active = / active( |$)/.test(token.info) ? " active" : "";
|
|
36924
36932
|
token.info = token.info.replace(/ active$/, "").replace(/ active /, " ");
|
|
36925
36933
|
const lang = extractLang(token.info);
|
|
36926
|
-
|
|
36927
|
-
return `<div class="language-${lang}${getAdaptiveThemeMarker(
|
|
36928
|
-
options
|
|
36929
|
-
)}${active}"><button title="Copy Code" class="copy"></button><span class="lang">${lang}</span>${rawCode}</div>`;
|
|
36934
|
+
return `<div class="language-${lang}${getAdaptiveThemeMarker(options)}${active}"><button title="${options.codeCopyButtonTitle}" class="copy"></button><span class="lang">${lang}</span>` + fence(...args) + "</div>";
|
|
36930
36935
|
};
|
|
36931
36936
|
}
|
|
36932
36937
|
function getAdaptiveThemeMarker(options) {
|
|
@@ -36989,8 +36994,7 @@ function createContainer(klass, defaultTitle, md) {
|
|
|
36989
36994
|
`;
|
|
36990
36995
|
return `<div class="${klass} custom-block"${attrs}><p class="custom-block-title">${title}</p>
|
|
36991
36996
|
`;
|
|
36992
|
-
} else
|
|
36993
|
-
return klass === "details" ? `</details>
|
|
36997
|
+
} else return klass === "details" ? `</details>
|
|
36994
36998
|
` : `</div>
|
|
36995
36999
|
`;
|
|
36996
37000
|
}
|
|
@@ -37006,7 +37010,7 @@ function createCodeGroup(options) {
|
|
|
37006
37010
|
if (tokens[idx].nesting === 1) {
|
|
37007
37011
|
const name = nanoid$1(5);
|
|
37008
37012
|
let tabs = "";
|
|
37009
|
-
let checked =
|
|
37013
|
+
let checked = "checked";
|
|
37010
37014
|
for (let i = idx + 1; !(tokens[i].nesting === -1 && tokens[i].type === "container_code-group_close"); ++i) {
|
|
37011
37015
|
const isHtml = tokens[i].type === "html_block";
|
|
37012
37016
|
if (tokens[i].type === "fence" && tokens[i].tag === "code" || isHtml) {
|
|
@@ -37017,8 +37021,7 @@ function createCodeGroup(options) {
|
|
|
37017
37021
|
if (title) {
|
|
37018
37022
|
const id = nanoid$1(7);
|
|
37019
37023
|
tabs += `<input type="radio" name="group-${name}" id="tab-${id}" ${checked}><label for="tab-${id}">${title}</label>`;
|
|
37020
|
-
if (checked && !isHtml)
|
|
37021
|
-
tokens[i].info += " active";
|
|
37024
|
+
if (checked && !isHtml) tokens[i].info += " active";
|
|
37022
37025
|
checked = "";
|
|
37023
37026
|
}
|
|
37024
37027
|
}
|
|
@@ -37055,15 +37058,12 @@ const gitHubAlertsPlugin = (md, options) => {
|
|
|
37055
37058
|
let endIndex = i + 1;
|
|
37056
37059
|
while (endIndex < tokens.length && (tokens[endIndex].type !== "blockquote_close" || tokens[endIndex].level !== open.level))
|
|
37057
37060
|
endIndex++;
|
|
37058
|
-
if (endIndex === tokens.length)
|
|
37059
|
-
continue;
|
|
37061
|
+
if (endIndex === tokens.length) continue;
|
|
37060
37062
|
const close = tokens[endIndex];
|
|
37061
37063
|
const firstContent = tokens.slice(startIndex, endIndex + 1).find((token) => token.type === "inline");
|
|
37062
|
-
if (!firstContent)
|
|
37063
|
-
continue;
|
|
37064
|
+
if (!firstContent) continue;
|
|
37064
37065
|
const match = firstContent.content.match(markerRE);
|
|
37065
|
-
if (!match)
|
|
37066
|
-
continue;
|
|
37066
|
+
if (!match) continue;
|
|
37067
37067
|
const type = match[1].toLowerCase();
|
|
37068
37068
|
const title = match[2].trim() || titleMark[type] || capitalize(type);
|
|
37069
37069
|
firstContent.content = firstContent.content.slice(match[0].length).trimStart();
|
|
@@ -37138,7 +37138,6 @@ async function highlight(theme, options, logger = console) {
|
|
|
37138
37138
|
{
|
|
37139
37139
|
name: "vitepress:clean-up",
|
|
37140
37140
|
pre(node) {
|
|
37141
|
-
delete node.properties.tabindex;
|
|
37142
37141
|
delete node.properties.style;
|
|
37143
37142
|
}
|
|
37144
37143
|
}
|
|
@@ -37165,8 +37164,7 @@ The language '${lang}' is not loaded, falling back to '${defaultLang || "txt"}'
|
|
|
37165
37164
|
const lineOptions = attrsToLines(attrs);
|
|
37166
37165
|
const mustaches = /* @__PURE__ */ new Map();
|
|
37167
37166
|
const removeMustache = (s) => {
|
|
37168
|
-
if (vPre)
|
|
37169
|
-
return s;
|
|
37167
|
+
if (vPre) return s;
|
|
37170
37168
|
return s.replace(mustacheRE, (match) => {
|
|
37171
37169
|
let marker = mustaches.get(match);
|
|
37172
37170
|
if (!marker) {
|
|
@@ -37191,8 +37189,7 @@ The language '${lang}' is not loaded, falling back to '${defaultLang || "txt"}'
|
|
|
37191
37189
|
{
|
|
37192
37190
|
name: "vitepress:v-pre",
|
|
37193
37191
|
pre(node) {
|
|
37194
|
-
if (vPre)
|
|
37195
|
-
node.properties["v-pre"] = "";
|
|
37192
|
+
if (vPre) node.properties["v-pre"] = "";
|
|
37196
37193
|
}
|
|
37197
37194
|
},
|
|
37198
37195
|
{
|
|
@@ -37253,8 +37250,7 @@ const imagePlugin = (md, { lazyLoading } = {}) => {
|
|
|
37253
37250
|
const token = tokens[idx];
|
|
37254
37251
|
let url = token.attrGet("src");
|
|
37255
37252
|
if (url && !EXTERNAL_URL_RE.test(url)) {
|
|
37256
|
-
if (!/^\.?\//.test(url))
|
|
37257
|
-
url = "./" + url;
|
|
37253
|
+
if (!/^\.?\//.test(url)) url = "./" + url;
|
|
37258
37254
|
token.attrSet("src", decodeURIComponent(url));
|
|
37259
37255
|
}
|
|
37260
37256
|
if (lazyLoading) {
|
|
@@ -37357,13 +37353,36 @@ const linkPlugin = (md, externalAttrs, base) => {
|
|
|
37357
37353
|
};
|
|
37358
37354
|
|
|
37359
37355
|
function restoreEntities(md) {
|
|
37360
|
-
md.core.ruler.
|
|
37361
|
-
md.renderer.rules.
|
|
37362
|
-
|
|
37363
|
-
|
|
37364
|
-
|
|
37365
|
-
|
|
37366
|
-
|
|
37356
|
+
md.core.ruler.at("text_join", text_join);
|
|
37357
|
+
md.renderer.rules.text = (tokens, idx) => escapeHtml$1(tokens[idx].content);
|
|
37358
|
+
}
|
|
37359
|
+
function text_join(state) {
|
|
37360
|
+
let curr, last;
|
|
37361
|
+
const blockTokens = state.tokens;
|
|
37362
|
+
const l = blockTokens.length;
|
|
37363
|
+
for (let j = 0; j < l; ++j) {
|
|
37364
|
+
if (blockTokens[j].type !== "inline") continue;
|
|
37365
|
+
const tokens = blockTokens[j].children || [];
|
|
37366
|
+
const max = tokens.length;
|
|
37367
|
+
for (curr = 0; curr < max; ++curr)
|
|
37368
|
+
if (tokens[curr].type === "text_special") tokens[curr].type = "text";
|
|
37369
|
+
for (curr = last = 0; curr < max; ++curr)
|
|
37370
|
+
if (tokens[curr].type === "text" && curr + 1 < max && tokens[curr + 1].type === "text") {
|
|
37371
|
+
tokens[curr + 1].content = getContent(tokens[curr]) + getContent(tokens[curr + 1]);
|
|
37372
|
+
tokens[curr + 1].info = "";
|
|
37373
|
+
tokens[curr + 1].markup = "";
|
|
37374
|
+
} else {
|
|
37375
|
+
if (curr !== last) tokens[last] = tokens[curr];
|
|
37376
|
+
++last;
|
|
37377
|
+
}
|
|
37378
|
+
if (curr !== last) tokens.length = last;
|
|
37379
|
+
}
|
|
37380
|
+
}
|
|
37381
|
+
function getContent(token) {
|
|
37382
|
+
return token.info === "entity" ? token.markup : token.info === "escape" && token.content === "&" ? "&" : token.content;
|
|
37383
|
+
}
|
|
37384
|
+
function escapeHtml$1(str) {
|
|
37385
|
+
return str.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """);
|
|
37367
37386
|
}
|
|
37368
37387
|
|
|
37369
37388
|
const rawPathRegexp = /^(.+?(?:(?:\.([a-z0-9]+))?))(?:(#[\w-]+))?(?: ?(?:{(\d+(?:[,-]\d+)*)? ?(\S+)?}))? ?(?:\[(.+)\])?$/;
|
|
@@ -37383,8 +37402,7 @@ function dedent(text) {
|
|
|
37383
37402
|
const lines = text.split("\n");
|
|
37384
37403
|
const minIndentLength = lines.reduce((acc, line) => {
|
|
37385
37404
|
for (let i = 0; i < line.length; i++) {
|
|
37386
|
-
if (line[i] !== " " && line[i] !== " ")
|
|
37387
|
-
return Math.min(i, acc);
|
|
37405
|
+
if (line[i] !== " " && line[i] !== " ") return Math.min(i, acc);
|
|
37388
37406
|
}
|
|
37389
37407
|
return acc;
|
|
37390
37408
|
}, Infinity);
|
|
@@ -37441,8 +37459,7 @@ const snippetPlugin = (md, srcDir) => {
|
|
|
37441
37459
|
}
|
|
37442
37460
|
for (let i = 0; i < 3; ++i) {
|
|
37443
37461
|
const ch = state.src.charCodeAt(pos + i);
|
|
37444
|
-
if (ch !== CH || pos + i >= max)
|
|
37445
|
-
return false;
|
|
37462
|
+
if (ch !== CH || pos + i >= max) return false;
|
|
37446
37463
|
}
|
|
37447
37464
|
if (silent) {
|
|
37448
37465
|
return true;
|
|
@@ -37466,8 +37483,7 @@ const snippetPlugin = (md, srcDir) => {
|
|
|
37466
37483
|
const [tokens, idx, , { includes }] = args;
|
|
37467
37484
|
const token = tokens[idx];
|
|
37468
37485
|
const [src, regionName] = token.src ?? [];
|
|
37469
|
-
if (!src)
|
|
37470
|
-
return fence(...args);
|
|
37486
|
+
if (!src) return fence(...args);
|
|
37471
37487
|
if (includes) {
|
|
37472
37488
|
includes.push(src);
|
|
37473
37489
|
}
|
|
@@ -37495,6 +37511,7 @@ const snippetPlugin = (md, srcDir) => {
|
|
|
37495
37511
|
|
|
37496
37512
|
const createMarkdownRenderer = async (srcDir, options = {}, base = "/", logger = console) => {
|
|
37497
37513
|
const theme = options.theme ?? { light: "github-light", dark: "github-dark" };
|
|
37514
|
+
const codeCopyButtonTitle = options.codeCopyButtonTitle || "Copy Code";
|
|
37498
37515
|
const hasSingleTheme = typeof theme === "string" || "name" in theme;
|
|
37499
37516
|
const md = MarkdownIt({
|
|
37500
37517
|
html: true,
|
|
@@ -37507,7 +37524,7 @@ const createMarkdownRenderer = async (srcDir, options = {}, base = "/", logger =
|
|
|
37507
37524
|
if (options.preConfig) {
|
|
37508
37525
|
options.preConfig(md);
|
|
37509
37526
|
}
|
|
37510
|
-
md.use(componentPlugin, { ...options.component }).use(highlightLinePlugin).use(preWrapperPlugin, { hasSingleTheme }).use(snippetPlugin, srcDir).use(containerPlugin, { hasSingleTheme }, options.container).use(imagePlugin, options.image).use(
|
|
37527
|
+
md.use(componentPlugin, { ...options.component }).use(highlightLinePlugin).use(preWrapperPlugin, { codeCopyButtonTitle, hasSingleTheme }).use(snippetPlugin, srcDir).use(containerPlugin, { hasSingleTheme }, options.container).use(imagePlugin, options.image).use(
|
|
37511
37528
|
linkPlugin,
|
|
37512
37529
|
{ target: "_blank", rel: "noreferrer", ...options.externalLinks },
|
|
37513
37530
|
base
|
|
@@ -38203,12 +38220,10 @@ crossSpawn.exports._enoent = enoent;
|
|
|
38203
38220
|
const cache$2 = /* @__PURE__ */ new Map();
|
|
38204
38221
|
function getGitTimestamp(file) {
|
|
38205
38222
|
const cached = cache$2.get(file);
|
|
38206
|
-
if (cached)
|
|
38207
|
-
return cached;
|
|
38223
|
+
if (cached) return cached;
|
|
38208
38224
|
return new Promise((resolve, reject) => {
|
|
38209
38225
|
const cwd = dirname(file);
|
|
38210
|
-
if (!fs$a.existsSync(cwd))
|
|
38211
|
-
return resolve(0);
|
|
38226
|
+
if (!fs$a.existsSync(cwd)) return resolve(0);
|
|
38212
38227
|
const fileName = basename(file);
|
|
38213
38228
|
const child = spawn_1("git", ["log", "-1", '--pretty="%ai"', fileName], {
|
|
38214
38229
|
cwd
|
|
@@ -38228,8 +38243,7 @@ function processIncludes(srcDir, src, file, includes) {
|
|
|
38228
38243
|
const includesRE = /<!--\s*@include:\s*(.*?)\s*-->/g;
|
|
38229
38244
|
const rangeRE = /\{(\d*),(\d*)\}$/;
|
|
38230
38245
|
return src.replace(includesRE, (m, m1) => {
|
|
38231
|
-
if (!m1.length)
|
|
38232
|
-
return m;
|
|
38246
|
+
if (!m1.length) return m;
|
|
38233
38247
|
const range = m1.match(rangeRE);
|
|
38234
38248
|
range && (m1 = m1.slice(0, -range[0].length));
|
|
38235
38249
|
const atPresent = m1[0] === "@";
|
|
@@ -38297,12 +38311,14 @@ async function createMarkdownToVueRenderFn(srcDir, options = {}, pages, isBuild
|
|
|
38297
38311
|
);
|
|
38298
38312
|
let includes = [];
|
|
38299
38313
|
src = processIncludes(srcDir, src, fileOrig, includes);
|
|
38314
|
+
const localeIndex = getLocaleForPath(siteConfig?.site, relativePath);
|
|
38300
38315
|
const env = {
|
|
38301
38316
|
path: file,
|
|
38302
38317
|
relativePath,
|
|
38303
38318
|
cleanUrls,
|
|
38304
38319
|
includes,
|
|
38305
|
-
realPath: fileOrig
|
|
38320
|
+
realPath: fileOrig,
|
|
38321
|
+
localeIndex
|
|
38306
38322
|
};
|
|
38307
38323
|
const html = md.render(src, env);
|
|
38308
38324
|
const {
|
|
@@ -38343,11 +38359,9 @@ async function createMarkdownToVueRenderFn(srcDir, options = {}, pages, isBuild
|
|
|
38343
38359
|
const dir = path$q.dirname(file);
|
|
38344
38360
|
for (let url of links) {
|
|
38345
38361
|
const { pathname } = new URL(url, "http://a.com");
|
|
38346
|
-
if (!treatAsHtml(pathname))
|
|
38347
|
-
continue;
|
|
38362
|
+
if (!treatAsHtml(pathname)) continue;
|
|
38348
38363
|
url = url.replace(/[?#].*$/, "").replace(/\.(html|md)$/, "");
|
|
38349
|
-
if (url.endsWith("/"))
|
|
38350
|
-
url += `index`;
|
|
38364
|
+
if (url.endsWith("/")) url += `index`;
|
|
38351
38365
|
let resolved = decodeURIComponent(
|
|
38352
38366
|
slash(
|
|
38353
38367
|
url.startsWith("/") ? url.slice(1) : path$q.relative(srcDir, path$q.resolve(dir, url))
|
|
@@ -38472,8 +38486,7 @@ function serializeFunctions(value, key) {
|
|
|
38472
38486
|
return value.map((v) => serializeFunctions(v));
|
|
38473
38487
|
} else if (typeof value === "object" && value !== null) {
|
|
38474
38488
|
return Object.keys(value).reduce((acc, key2) => {
|
|
38475
|
-
if (key2[0] === "_")
|
|
38476
|
-
return acc;
|
|
38489
|
+
if (key2[0] === "_") return acc;
|
|
38477
38490
|
acc[key2] = serializeFunctions(value[key2], key2);
|
|
38478
38491
|
return acc;
|
|
38479
38492
|
}, {});
|
|
@@ -41956,15 +41969,13 @@ async function localSearchPlugin(siteConfig) {
|
|
|
41956
41969
|
);
|
|
41957
41970
|
const options = siteConfig.site.themeConfig.search.options || {};
|
|
41958
41971
|
async function render(file) {
|
|
41959
|
-
if (!fs$a.existsSync(file))
|
|
41960
|
-
return "";
|
|
41972
|
+
if (!fs$a.existsSync(file)) return "";
|
|
41961
41973
|
const { srcDir, cleanUrls = false } = siteConfig;
|
|
41962
41974
|
const relativePath = slash(path$q.relative(srcDir, file));
|
|
41963
41975
|
const env = { path: file, relativePath, cleanUrls };
|
|
41964
41976
|
const md_raw = await fs$a.promises.readFile(file, "utf-8");
|
|
41965
41977
|
const md_src = processIncludes(srcDir, md_raw, file, []);
|
|
41966
|
-
if (options._render)
|
|
41967
|
-
return await options._render(md_src, env, md);
|
|
41978
|
+
if (options._render) return await options._render(md_src, env, md);
|
|
41968
41979
|
else {
|
|
41969
41980
|
const html = md.render(md_src, env);
|
|
41970
41981
|
return env.frontmatter?.search === false ? "" : html;
|
|
@@ -41983,11 +41994,6 @@ async function localSearchPlugin(siteConfig) {
|
|
|
41983
41994
|
}
|
|
41984
41995
|
return index;
|
|
41985
41996
|
}
|
|
41986
|
-
function getLocaleForPath(file) {
|
|
41987
|
-
const relativePath = slash(path$q.relative(siteConfig.srcDir, file));
|
|
41988
|
-
const siteData = resolveSiteDataByRoute(siteConfig.site, relativePath);
|
|
41989
|
-
return siteData?.localeIndex ?? "root";
|
|
41990
|
-
}
|
|
41991
41997
|
let server;
|
|
41992
41998
|
function onIndexUpdated() {
|
|
41993
41999
|
if (server) {
|
|
@@ -41995,8 +42001,7 @@ async function localSearchPlugin(siteConfig) {
|
|
|
41995
42001
|
const mod = server.moduleGraph.getModuleById(
|
|
41996
42002
|
LOCAL_SEARCH_INDEX_REQUEST_PATH
|
|
41997
42003
|
);
|
|
41998
|
-
if (!mod)
|
|
41999
|
-
return;
|
|
42004
|
+
if (!mod) return;
|
|
42000
42005
|
server.ws.send({
|
|
42001
42006
|
type: "update",
|
|
42002
42007
|
updates: [
|
|
@@ -42021,7 +42026,7 @@ async function localSearchPlugin(siteConfig) {
|
|
|
42021
42026
|
async function indexFile(page) {
|
|
42022
42027
|
const file = path$q.join(siteConfig.srcDir, page);
|
|
42023
42028
|
const fileId = getDocId(file);
|
|
42024
|
-
const locale = getLocaleForPath(
|
|
42029
|
+
const locale = getLocaleForPath(siteConfig.site, page);
|
|
42025
42030
|
const index = getIndexByLocale(locale);
|
|
42026
42031
|
const html = await render(file);
|
|
42027
42032
|
const sections = (
|
|
@@ -42030,8 +42035,7 @@ async function localSearchPlugin(siteConfig) {
|
|
|
42030
42035
|
splitPageIntoSections(html)
|
|
42031
42036
|
);
|
|
42032
42037
|
for await (const section of sections) {
|
|
42033
|
-
if (!section || !(section.text || section.titles))
|
|
42034
|
-
break;
|
|
42038
|
+
if (!section || !(section.text || section.titles)) break;
|
|
42035
42039
|
const { anchor, text, titles } = section;
|
|
42036
42040
|
const id = anchor ? [fileId, anchor].join("#") : fileId;
|
|
42037
42041
|
index.add({
|
|
@@ -42116,8 +42120,7 @@ function* splitPageIntoSections(html) {
|
|
|
42116
42120
|
const title = clearHtmlTags(headingResult?.[1] ?? "").trim();
|
|
42117
42121
|
const anchor = headingResult?.[2] ?? "";
|
|
42118
42122
|
const content = result[i + 2];
|
|
42119
|
-
if (!title || !content)
|
|
42120
|
-
continue;
|
|
42123
|
+
if (!title || !content) continue;
|
|
42121
42124
|
let titles = parentTitles.slice(0, level);
|
|
42122
42125
|
titles[level] = title;
|
|
42123
42126
|
titles = titles.filter(Boolean);
|
|
@@ -42200,8 +42203,7 @@ const staticDataPlugin = {
|
|
|
42200
42203
|
const result = `export const data = JSON.parse(${JSON.stringify(
|
|
42201
42204
|
JSON.stringify(data)
|
|
42202
42205
|
)})`;
|
|
42203
|
-
if (_resolve)
|
|
42204
|
-
_resolve(result);
|
|
42206
|
+
if (_resolve) _resolve(result);
|
|
42205
42207
|
return result;
|
|
42206
42208
|
}
|
|
42207
42209
|
},
|
|
@@ -42302,8 +42304,7 @@ async function createVitePressPlugin(siteConfig, ssr = false, pageToHashMap, cli
|
|
|
42302
42304
|
);
|
|
42303
42305
|
const processClientJS = (code, id) => {
|
|
42304
42306
|
return scriptClientRE.test(code) ? code.replace(scriptClientRE, (_, content) => {
|
|
42305
|
-
if (ssr && clientJSMap)
|
|
42306
|
-
clientJSMap[id] = content;
|
|
42307
|
+
if (ssr && clientJSMap) clientJSMap[id] = content;
|
|
42307
42308
|
return `
|
|
42308
42309
|
`.repeat(_.split("\n").length - 1);
|
|
42309
42310
|
}) : code;
|
|
@@ -46468,11 +46469,9 @@ function requireDist () {
|
|
|
46468
46469
|
var distExports = requireDist();
|
|
46469
46470
|
|
|
46470
46471
|
async function generateSitemap(siteConfig) {
|
|
46471
|
-
if (!siteConfig.sitemap?.hostname)
|
|
46472
|
-
return;
|
|
46472
|
+
if (!siteConfig.sitemap?.hostname) return;
|
|
46473
46473
|
const getLastmod = async (url) => {
|
|
46474
|
-
if (!siteConfig.lastUpdated)
|
|
46475
|
-
return void 0;
|
|
46474
|
+
if (!siteConfig.lastUpdated) return void 0;
|
|
46476
46475
|
let file = url.replace(/(^|\/)$/, "$1index");
|
|
46477
46476
|
file = file.replace(/(\.html)?$/, ".md");
|
|
46478
46477
|
file = siteConfig.rewrites.inv[file] || file;
|
|
@@ -46494,10 +46493,8 @@ async function generateSitemap(siteConfig) {
|
|
|
46494
46493
|
const lang = locales[locale]?.lang || defaultLang;
|
|
46495
46494
|
let url = page.replace(/(^|\/)index\.md$/, "$1");
|
|
46496
46495
|
url = url.replace(/\.md$/, siteConfig.cleanUrls ? "" : ".html");
|
|
46497
|
-
if (filteredLocales.includes(locale))
|
|
46498
|
-
|
|
46499
|
-
if (!groupedPages[page])
|
|
46500
|
-
groupedPages[page] = [];
|
|
46496
|
+
if (filteredLocales.includes(locale)) page = page.slice(locale.length + 1);
|
|
46497
|
+
if (!groupedPages[page]) groupedPages[page] = [];
|
|
46501
46498
|
groupedPages[page].push({ url, lang });
|
|
46502
46499
|
});
|
|
46503
46500
|
const _items = await Promise.all(
|
|
@@ -46522,26 +46519,6 @@ async function generateSitemap(siteConfig) {
|
|
|
46522
46519
|
});
|
|
46523
46520
|
}
|
|
46524
46521
|
|
|
46525
|
-
/**
|
|
46526
|
-
* @vue/shared v3.4.25
|
|
46527
|
-
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
46528
|
-
* @license MIT
|
|
46529
|
-
**/
|
|
46530
|
-
/*! #__NO_SIDE_EFFECTS__ */
|
|
46531
|
-
// @__NO_SIDE_EFFECTS__
|
|
46532
|
-
function makeMap(str, expectsLowerCase) {
|
|
46533
|
-
const set = new Set(str.split(","));
|
|
46534
|
-
return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);
|
|
46535
|
-
}
|
|
46536
|
-
|
|
46537
|
-
!!(process.env.NODE_ENV !== "production") ? Object.freeze({}) : {};
|
|
46538
|
-
!!(process.env.NODE_ENV !== "production") ? Object.freeze([]) : [];
|
|
46539
|
-
|
|
46540
|
-
const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
|
|
46541
|
-
const isBooleanAttr = /* @__PURE__ */ makeMap(
|
|
46542
|
-
specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`
|
|
46543
|
-
);
|
|
46544
|
-
|
|
46545
46522
|
/*!
|
|
46546
46523
|
* escape-html
|
|
46547
46524
|
* Copyright(c) 2012-2013 TJ Holowaychuk
|
|
@@ -46621,7 +46598,7 @@ function escapeHtml(string) {
|
|
|
46621
46598
|
|
|
46622
46599
|
var escape$1 = /*@__PURE__*/getDefaultExportFromCjs(escapeHtml_1);
|
|
46623
46600
|
|
|
46624
|
-
var version = "1.1
|
|
46601
|
+
var version = "1.2.1";
|
|
46625
46602
|
|
|
46626
46603
|
async function renderPage(render, config, page, result, appChunk, cssChunk, assets, pageToHashMap, metadataScript, additionalHeadTags) {
|
|
46627
46604
|
const routePath = `/${page.replace(/\.md$/, "")}`;
|
|
@@ -46718,7 +46695,7 @@ async function renderPage(render, config, page, result, appChunk, cssChunk, asse
|
|
|
46718
46695
|
<head>
|
|
46719
46696
|
<meta charset="utf-8">
|
|
46720
46697
|
${isMetaViewportOverridden(head) ? "" : '<meta name="viewport" content="width=device-width,initial-scale=1">'}
|
|
46721
|
-
<title>${title}</title>
|
|
46698
|
+
<title>${escape$1(title)}</title>
|
|
46722
46699
|
${isDescriptionOverridden(head) ? "" : `<meta name="description" content="${description}">`}
|
|
46723
46700
|
<meta name="generator" content="VitePress v${version}">
|
|
46724
46701
|
${stylesheetLink}
|
|
@@ -46727,7 +46704,7 @@ async function renderPage(render, config, page, result, appChunk, cssChunk, asse
|
|
|
46727
46704
|
${await renderHead(head)}
|
|
46728
46705
|
</head>
|
|
46729
46706
|
<body>${teleports?.body || ""}
|
|
46730
|
-
<div id="app">${content}</div>
|
|
46707
|
+
<div id="app">${page === "404.md" ? "" : content}</div>
|
|
46731
46708
|
${metadataScript.inHead ? "" : metadataScript.html}
|
|
46732
46709
|
${inlinedScript}
|
|
46733
46710
|
</body>
|
|
@@ -46787,8 +46764,7 @@ async function renderHead(head) {
|
|
|
46787
46764
|
}
|
|
46788
46765
|
function renderAttrs(attrs) {
|
|
46789
46766
|
return Object.keys(attrs).map((key) => {
|
|
46790
|
-
if (isBooleanAttr(key))
|
|
46791
|
-
return ` ${key}`;
|
|
46767
|
+
if (isBooleanAttr(key)) return ` ${key}`;
|
|
46792
46768
|
return ` ${key}="${escape$1(attrs[key])}"`;
|
|
46793
46769
|
}).join("");
|
|
46794
46770
|
}
|
|
@@ -46892,8 +46868,7 @@ async function build(root, buildOptions = {}) {
|
|
|
46892
46868
|
);
|
|
46893
46869
|
} finally {
|
|
46894
46870
|
unlinkVue();
|
|
46895
|
-
if (!process.env.DEBUG)
|
|
46896
|
-
await rimraf(siteConfig.tempDir);
|
|
46871
|
+
if (!process.env.DEBUG) await rimraf(siteConfig.tempDir);
|
|
46897
46872
|
}
|
|
46898
46873
|
await generateSitemap(siteConfig);
|
|
46899
46874
|
await siteConfig.buildEnd?.(siteConfig);
|
|
@@ -50096,8 +50071,8 @@ function viaLocal(dir, isEtag, uri, extns) {
|
|
|
50096
50071
|
let abs, stats, name, headers;
|
|
50097
50072
|
for (; i < arr.length; i++) {
|
|
50098
50073
|
abs = normalize$3(join(dir, name=arr[i]));
|
|
50099
|
-
if (abs.startsWith(dir) && fs$
|
|
50100
|
-
stats = fs$
|
|
50074
|
+
if (abs.startsWith(dir) && fs$u.existsSync(abs)) {
|
|
50075
|
+
stats = fs$u.statSync(abs);
|
|
50101
50076
|
if (stats.isDirectory()) continue;
|
|
50102
50077
|
headers = toHeaders(name, stats, isEtag);
|
|
50103
50078
|
headers['Cache-Control'] = isEtag ? 'no-cache' : 'no-store';
|
|
@@ -50145,7 +50120,7 @@ function send(req, res, file, stats, headers) {
|
|
|
50145
50120
|
}
|
|
50146
50121
|
|
|
50147
50122
|
res.writeHead(code, headers);
|
|
50148
|
-
fs$
|
|
50123
|
+
fs$u.createReadStream(file, opts).pipe(res);
|
|
50149
50124
|
}
|
|
50150
50125
|
|
|
50151
50126
|
const ENCODING = {
|
|
@@ -50266,8 +50241,7 @@ async function serve(options = {}) {
|
|
|
50266
50241
|
const notFound = fs$a.readFileSync(path$q.resolve(config.outDir, "./404.html"));
|
|
50267
50242
|
const onNoMatch = (req, res) => {
|
|
50268
50243
|
res.statusCode = 404;
|
|
50269
|
-
if (notAnAsset(req.path))
|
|
50270
|
-
res.write(notFound.toString());
|
|
50244
|
+
if (notAnAsset(req.path)) res.write(notFound.toString());
|
|
50271
50245
|
res.end();
|
|
50272
50246
|
};
|
|
50273
50247
|
const compress = compression({ brotli: true });
|