vitepress 1.0.0-draft.1 → 1.0.0-draft.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.
Files changed (101) hide show
  1. package/dist/client/index.d.ts +5 -0
  2. package/dist/client/shared.js +1 -0
  3. package/dist/client/theme-default/Layout.vue +18 -1
  4. package/dist/client/theme-default/components/VPBackdrop.vue +1 -1
  5. package/dist/client/theme-default/components/VPBox.vue +59 -0
  6. package/dist/client/theme-default/components/VPButton.vue +123 -0
  7. package/dist/client/theme-default/components/VPContent.vue +35 -5
  8. package/dist/client/theme-default/components/{VPContentDoc.vue → VPDoc.vue} +13 -13
  9. package/dist/client/theme-default/components/{VPContentDocFooter.vue → VPDocFooter.vue} +3 -2
  10. package/dist/client/theme-default/components/{VPContentDocOutline.vue → VPDocOutline.vue} +2 -2
  11. package/dist/client/theme-default/components/VPFooter.vue +53 -0
  12. package/dist/client/theme-default/components/VPHero.vue +144 -0
  13. package/dist/client/theme-default/components/VPHome.vue +33 -0
  14. package/dist/client/theme-default/components/VPHomeFeatures.vue +96 -0
  15. package/dist/client/theme-default/components/VPHomeHero.vue +17 -0
  16. package/dist/client/theme-default/components/VPHomeSponsors.vue +97 -0
  17. package/dist/client/theme-default/components/VPNavBar.vue +1 -0
  18. package/dist/client/theme-default/components/VPNavBarAppearance.vue +4 -1
  19. package/dist/client/theme-default/components/VPNavBarExtra.vue +2 -2
  20. package/dist/client/theme-default/components/VPNavBarSearch.vue +3 -3
  21. package/dist/client/theme-default/components/VPNavBarTitle.vue +26 -13
  22. package/dist/client/theme-default/components/VPNavScreenAppearance.vue +4 -1
  23. package/dist/client/theme-default/components/VPPage.vue +5 -0
  24. package/dist/client/theme-default/components/VPSponsors.vue +77 -0
  25. package/dist/client/theme-default/components/VPSponsorsGrid.vue +32 -0
  26. package/dist/client/theme-default/components/VPSwitchAppearance.vue +3 -3
  27. package/dist/client/theme-default/components/icons/VPIconHeart.vue +5 -0
  28. package/dist/client/theme-default/composables/outline.js +1 -19
  29. package/dist/client/theme-default/composables/sponsor-grid.js +92 -0
  30. package/dist/client/theme-default/composables/sponsor.js +87 -0
  31. package/dist/client/theme-default/index.js +4 -0
  32. package/dist/client/theme-default/styles/base.css +3 -0
  33. package/dist/client/theme-default/styles/vars.css +86 -1
  34. package/dist/client/theme-default/styles/vp-doc.css +8 -2
  35. package/dist/client/theme-default/styles/vp-sponsor.css +86 -0
  36. package/dist/client/theme-default/support/utils.js +19 -0
  37. package/dist/node/alias.js +60 -0
  38. package/dist/node/alias.js.map +1 -0
  39. package/dist/node/build/build.js +57 -0
  40. package/dist/node/build/build.js.map +1 -0
  41. package/dist/node/build/buildMPAClient.js +44 -0
  42. package/dist/node/build/buildMPAClient.js.map +1 -0
  43. package/dist/node/build/bundle.js +163 -0
  44. package/dist/node/build/bundle.js.map +1 -0
  45. package/dist/node/build/render.js +185 -0
  46. package/dist/node/build/render.js.map +1 -0
  47. package/dist/node/cli.js +37 -294
  48. package/dist/node/cli.js.map +1 -0
  49. package/dist/node/config.js +176 -0
  50. package/dist/node/config.js.map +1 -0
  51. package/dist/node/index.d.ts +19 -1
  52. package/dist/node/index.js +22 -37
  53. package/dist/node/index.js.map +1 -0
  54. package/dist/node/markdown/markdown.js +75 -0
  55. package/dist/node/markdown/markdown.js.map +1 -0
  56. package/dist/node/markdown/plugins/component.js +86 -0
  57. package/dist/node/markdown/plugins/component.js.map +1 -0
  58. package/dist/node/markdown/plugins/containers.js +41 -0
  59. package/dist/node/markdown/plugins/containers.js.map +1 -0
  60. package/dist/node/markdown/plugins/headings.js +25 -0
  61. package/dist/node/markdown/plugins/headings.js.map +1 -0
  62. package/dist/node/markdown/plugins/highlight.js +53 -0
  63. package/dist/node/markdown/plugins/highlight.js.map +1 -0
  64. package/dist/node/markdown/plugins/highlightLines.js +48 -0
  65. package/dist/node/markdown/plugins/highlightLines.js.map +1 -0
  66. package/dist/node/markdown/plugins/hoist.js +22 -0
  67. package/dist/node/markdown/plugins/hoist.js.map +1 -0
  68. package/dist/node/markdown/plugins/image.js +17 -0
  69. package/dist/node/markdown/plugins/image.js.map +1 -0
  70. package/dist/node/markdown/plugins/lineNumbers.js +23 -0
  71. package/dist/node/markdown/plugins/lineNumbers.js.map +1 -0
  72. package/dist/node/markdown/plugins/link.js +85 -0
  73. package/dist/node/markdown/plugins/link.js.map +1 -0
  74. package/dist/node/markdown/plugins/preWrapper.js +22 -0
  75. package/dist/node/markdown/plugins/preWrapper.js.map +1 -0
  76. package/dist/node/markdown/plugins/slugify.js +26 -0
  77. package/dist/node/markdown/plugins/slugify.js.map +1 -0
  78. package/dist/node/markdown/plugins/snippet.js +146 -0
  79. package/dist/node/markdown/plugins/snippet.js.map +1 -0
  80. package/dist/node/markdownToVue.js +166 -0
  81. package/dist/node/markdownToVue.js.map +1 -0
  82. package/dist/node/plugin.js +227 -0
  83. package/dist/node/plugin.js.map +1 -0
  84. package/dist/node/serve/serve.js +59 -0
  85. package/dist/node/serve/serve.js.map +1 -0
  86. package/dist/node/{serve-428d4610.js → serve-b5dc02b2.js} +26 -2
  87. package/dist/node/server.js +18 -0
  88. package/dist/node/server.js.map +1 -0
  89. package/dist/node/shared.js +72 -0
  90. package/dist/node/shared.js.map +1 -0
  91. package/dist/node/staticDataPlugin.js +99 -0
  92. package/dist/node/staticDataPlugin.js.map +1 -0
  93. package/dist/node/utils/getGitTimestamp.js +17 -0
  94. package/dist/node/utils/getGitTimestamp.js.map +1 -0
  95. package/dist/node/utils/parseHeader.js +57 -0
  96. package/dist/node/utils/parseHeader.js.map +1 -0
  97. package/dist/node/utils/slash.js +8 -0
  98. package/dist/node/utils/slash.js.map +1 -0
  99. package/package.json +4 -2
  100. package/types/default-theme.d.ts +12 -0
  101. package/types/shared.d.ts +11 -6
package/dist/node/cli.js CHANGED
@@ -1,301 +1,44 @@
1
- 'use strict';
2
-
3
- var serve = require('./serve-428d4610.js');
4
- require('fs');
5
- require('path');
6
- require('url');
7
- require('vite');
8
- require('readline');
9
- require('assert');
10
- require('events');
11
- require('stream');
12
- require('util');
13
- require('buffer');
14
- require('punycode');
15
- require('prismjs');
16
- require('child_process');
17
- require('querystring');
18
- require('tty');
19
- require('net');
20
- require('zlib');
21
- require('constants');
22
- require('os');
23
- require('http');
24
-
25
- var minimist = function (args, opts) {
26
- if (!opts) opts = {};
27
-
28
- var flags = { bools : {}, strings : {}, unknownFn: null };
29
-
30
- if (typeof opts['unknown'] === 'function') {
31
- flags.unknownFn = opts['unknown'];
32
- }
33
-
34
- if (typeof opts['boolean'] === 'boolean' && opts['boolean']) {
35
- flags.allBools = true;
36
- } else {
37
- [].concat(opts['boolean']).filter(Boolean).forEach(function (key) {
38
- flags.bools[key] = true;
39
- });
40
- }
41
-
42
- var aliases = {};
43
- Object.keys(opts.alias || {}).forEach(function (key) {
44
- aliases[key] = [].concat(opts.alias[key]);
45
- aliases[key].forEach(function (x) {
46
- aliases[x] = [key].concat(aliases[key].filter(function (y) {
47
- return x !== y;
48
- }));
49
- });
50
- });
51
-
52
- [].concat(opts.string).filter(Boolean).forEach(function (key) {
53
- flags.strings[key] = true;
54
- if (aliases[key]) {
55
- flags.strings[aliases[key]] = true;
56
- }
57
- });
58
-
59
- var defaults = opts['default'] || {};
60
-
61
- var argv = { _ : [] };
62
- Object.keys(flags.bools).forEach(function (key) {
63
- setArg(key, defaults[key] === undefined ? false : defaults[key]);
64
- });
65
-
66
- var notFlags = [];
67
-
68
- if (args.indexOf('--') !== -1) {
69
- notFlags = args.slice(args.indexOf('--')+1);
70
- args = args.slice(0, args.indexOf('--'));
71
- }
72
-
73
- function argDefined(key, arg) {
74
- return (flags.allBools && /^--[^=]+$/.test(arg)) ||
75
- flags.strings[key] || flags.bools[key] || aliases[key];
76
- }
77
-
78
- function setArg (key, val, arg) {
79
- if (arg && flags.unknownFn && !argDefined(key, arg)) {
80
- if (flags.unknownFn(arg) === false) return;
81
- }
82
-
83
- var value = !flags.strings[key] && isNumber(val)
84
- ? Number(val) : val
85
- ;
86
- setKey(argv, key.split('.'), value);
87
-
88
- (aliases[key] || []).forEach(function (x) {
89
- setKey(argv, x.split('.'), value);
90
- });
91
- }
92
-
93
- function setKey (obj, keys, value) {
94
- var o = obj;
95
- for (var i = 0; i < keys.length-1; i++) {
96
- var key = keys[i];
97
- if (key === '__proto__') return;
98
- if (o[key] === undefined) o[key] = {};
99
- if (o[key] === Object.prototype || o[key] === Number.prototype
100
- || o[key] === String.prototype) o[key] = {};
101
- if (o[key] === Array.prototype) o[key] = [];
102
- o = o[key];
103
- }
104
-
105
- var key = keys[keys.length - 1];
106
- if (key === '__proto__') return;
107
- if (o === Object.prototype || o === Number.prototype
108
- || o === String.prototype) o = {};
109
- if (o === Array.prototype) o = [];
110
- if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') {
111
- o[key] = value;
112
- }
113
- else if (Array.isArray(o[key])) {
114
- o[key].push(value);
115
- }
116
- else {
117
- o[key] = [ o[key], value ];
118
- }
119
- }
120
-
121
- function aliasIsBoolean(key) {
122
- return aliases[key].some(function (x) {
123
- return flags.bools[x];
124
- });
125
- }
126
-
127
- for (var i = 0; i < args.length; i++) {
128
- var arg = args[i];
129
-
130
- if (/^--.+=/.test(arg)) {
131
- // Using [\s\S] instead of . because js doesn't support the
132
- // 'dotall' regex modifier. See:
133
- // http://stackoverflow.com/a/1068308/13216
134
- var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
135
- var key = m[1];
136
- var value = m[2];
137
- if (flags.bools[key]) {
138
- value = value !== 'false';
139
- }
140
- setArg(key, value, arg);
141
- }
142
- else if (/^--no-.+/.test(arg)) {
143
- var key = arg.match(/^--no-(.+)/)[1];
144
- setArg(key, false, arg);
145
- }
146
- else if (/^--.+/.test(arg)) {
147
- var key = arg.match(/^--(.+)/)[1];
148
- var next = args[i + 1];
149
- if (next !== undefined && !/^-/.test(next)
150
- && !flags.bools[key]
151
- && !flags.allBools
152
- && (aliases[key] ? !aliasIsBoolean(key) : true)) {
153
- setArg(key, next, arg);
154
- i++;
155
- }
156
- else if (/^(true|false)$/.test(next)) {
157
- setArg(key, next === 'true', arg);
158
- i++;
159
- }
160
- else {
161
- setArg(key, flags.strings[key] ? '' : true, arg);
162
- }
163
- }
164
- else if (/^-[^-]+/.test(arg)) {
165
- var letters = arg.slice(1,-1).split('');
166
-
167
- var broken = false;
168
- for (var j = 0; j < letters.length; j++) {
169
- var next = arg.slice(j+2);
170
-
171
- if (next === '-') {
172
- setArg(letters[j], next, arg);
173
- continue;
174
- }
175
-
176
- if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) {
177
- setArg(letters[j], next.split('=')[1], arg);
178
- broken = true;
179
- break;
180
- }
181
-
182
- if (/[A-Za-z]/.test(letters[j])
183
- && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
184
- setArg(letters[j], next, arg);
185
- broken = true;
186
- break;
187
- }
188
-
189
- if (letters[j+1] && letters[j+1].match(/\W/)) {
190
- setArg(letters[j], arg.slice(j+2), arg);
191
- broken = true;
192
- break;
193
- }
194
- else {
195
- setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);
196
- }
197
- }
198
-
199
- var key = arg.slice(-1)[0];
200
- if (!broken && key !== '-') {
201
- if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1])
202
- && !flags.bools[key]
203
- && (aliases[key] ? !aliasIsBoolean(key) : true)) {
204
- setArg(key, args[i+1], arg);
205
- i++;
206
- }
207
- else if (args[i+1] && /^(true|false)$/.test(args[i+1])) {
208
- setArg(key, args[i+1] === 'true', arg);
209
- i++;
210
- }
211
- else {
212
- setArg(key, flags.strings[key] ? '' : true, arg);
213
- }
214
- }
215
- }
216
- else {
217
- if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
218
- argv._.push(
219
- flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)
220
- );
221
- }
222
- if (opts.stopEarly) {
223
- argv._.push.apply(argv._, args.slice(i + 1));
224
- break;
225
- }
226
- }
227
- }
228
-
229
- Object.keys(defaults).forEach(function (key) {
230
- if (!hasKey(argv, key.split('.'))) {
231
- setKey(argv, key.split('.'), defaults[key]);
232
-
233
- (aliases[key] || []).forEach(function (x) {
234
- setKey(argv, x.split('.'), defaults[key]);
235
- });
236
- }
237
- });
238
-
239
- if (opts['--']) {
240
- argv['--'] = new Array();
241
- notFlags.forEach(function(key) {
242
- argv['--'].push(key);
243
- });
244
- }
245
- else {
246
- notFlags.forEach(function(key) {
247
- argv._.push(key);
248
- });
249
- }
250
-
251
- return argv;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
252
4
  };
253
-
254
- function hasKey (obj, keys) {
255
- var o = obj;
256
- keys.slice(0,-1).forEach(function (key) {
257
- o = (o[key] || {});
258
- });
259
-
260
- var key = keys[keys.length - 1];
261
- return key in o;
262
- }
263
-
264
- function isNumber (x) {
265
- if (typeof x === 'number') return true;
266
- if (/^0x[0-9a-f]+$/i.test(x)) return true;
267
- return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
268
- }
269
-
270
- const argv = minimist(process.argv.slice(2));
271
- console.log(serve.source.cyan(`vitepress v${require("../../package.json").version}`));
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const chalk_1 = __importDefault(require("chalk"));
7
+ const minimist_1 = __importDefault(require("minimist"));
8
+ const _1 = require(".");
9
+ const argv = (0, minimist_1.default)(process.argv.slice(2));
10
+ console.log(chalk_1.default.cyan(`vitepress v${require('../../package.json').version}`));
272
11
  const command = argv._[0];
273
12
  const root = argv._[command ? 1 : 0];
274
13
  if (root) {
275
- argv.root = root;
14
+ argv.root = root;
276
15
  }
277
- if (!command || command === "dev") {
278
- serve.createServer(root, argv).then((server) => server.listen()).then((server) => {
279
- console.log();
280
- server.printUrls();
281
- }).catch((err) => {
282
- console.error(serve.source.red(`failed to start server. error:
283
- `), err);
284
- process.exit(1);
285
- });
286
- } else if (command === "build") {
287
- serve.build(root, argv).catch((err) => {
288
- console.error(serve.source.red(`build error:
289
- `), err);
290
- process.exit(1);
291
- });
292
- } else if (command === "serve") {
293
- serve.serve(argv).catch((err) => {
294
- console.error(serve.source.red(`failed to start server. error:
295
- `), err);
16
+ if (!command || command === 'dev') {
17
+ (0, _1.createServer)(root, argv)
18
+ .then((server) => server.listen())
19
+ .then((server) => {
20
+ console.log();
21
+ server.printUrls();
22
+ })
23
+ .catch((err) => {
24
+ console.error(chalk_1.default.red(`failed to start server. error:\n`), err);
25
+ process.exit(1);
26
+ });
27
+ }
28
+ else if (command === 'build') {
29
+ (0, _1.build)(root, argv).catch((err) => {
30
+ console.error(chalk_1.default.red(`build error:\n`), err);
31
+ process.exit(1);
32
+ });
33
+ }
34
+ else if (command === 'serve') {
35
+ (0, _1.serve)(argv).catch((err) => {
36
+ console.error(chalk_1.default.red(`failed to start server. error:\n`), err);
37
+ process.exit(1);
38
+ });
39
+ }
40
+ else {
41
+ console.log(chalk_1.default.red(`unknown command "${command}".`));
296
42
  process.exit(1);
297
- });
298
- } else {
299
- console.log(serve.source.red(`unknown command "${command}".`));
300
- process.exit(1);
301
43
  }
44
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/node/cli.ts"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AACzB,wDAA+B;AAC/B,wBAA8C;AAE9C,MAAM,IAAI,GAAQ,IAAA,kBAAQ,EAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAEjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;AAE9E,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACzB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACpC,IAAI,IAAI,EAAE;IACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;CACjB;AAED,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,KAAK,EAAE;IACjC,IAAA,eAAY,EAAC,IAAI,EAAE,IAAI,CAAC;SACrB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SACjC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACf,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,MAAM,CAAC,SAAS,EAAE,CAAA;IACpB,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,EAAE,GAAG,CAAC,CAAA;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;CACL;KAAM,IAAI,OAAO,KAAK,OAAO,EAAE;IAC9B,IAAA,QAAK,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAA;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;CACH;KAAM,IAAI,OAAO,KAAK,OAAO,EAAE;IAC9B,IAAA,QAAK,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,EAAE,GAAG,CAAC,CAAA;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;CACH;KAAM;IACL,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC,CAAA;IACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;CAChB"}
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.resolveSiteData = exports.resolveConfig = exports.defineConfigWithTheme = exports.defineConfig = exports.resolveSiteDataByRoute = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const fs_extra_1 = __importDefault(require("fs-extra"));
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const globby_1 = __importDefault(require("globby"));
11
+ const vite_1 = require("vite");
12
+ const shared_1 = require("./shared");
13
+ const alias_1 = require("./alias");
14
+ const debug_1 = __importDefault(require("debug"));
15
+ var shared_2 = require("./shared");
16
+ Object.defineProperty(exports, "resolveSiteDataByRoute", { enumerable: true, get: function () { return shared_2.resolveSiteDataByRoute; } });
17
+ const debug = (0, debug_1.default)('vitepress:config');
18
+ const resolve = (root, file) => (0, vite_1.normalizePath)(path_1.default.resolve(root, `.vitepress`, file));
19
+ /**
20
+ * Type config helper
21
+ */
22
+ function defineConfig(config) {
23
+ return config;
24
+ }
25
+ exports.defineConfig = defineConfig;
26
+ /**
27
+ * Type config helper for custom theme config
28
+ */
29
+ function defineConfigWithTheme(config) {
30
+ return config;
31
+ }
32
+ exports.defineConfigWithTheme = defineConfigWithTheme;
33
+ async function resolveConfig(root = process.cwd(), command = 'serve', mode = 'development') {
34
+ const [userConfig, configPath] = await resolveUserConfig(root, command, mode);
35
+ const site = await resolveSiteData(root, userConfig);
36
+ const srcDir = path_1.default.resolve(root, userConfig.srcDir || '.');
37
+ const outDir = userConfig.outDir
38
+ ? path_1.default.resolve(root, userConfig.outDir)
39
+ : resolve(root, 'dist');
40
+ // resolve theme path
41
+ const userThemeDir = resolve(root, 'theme');
42
+ const themeDir = (await fs_extra_1.default.pathExists(userThemeDir))
43
+ ? userThemeDir
44
+ : alias_1.DEFAULT_THEME_PATH;
45
+ // Important: globby/fast-glob doesn't guarantee order of the returned files.
46
+ // We must sort the pages so the input list to rollup is stable across
47
+ // builds - otherwise different input order could result in different exports
48
+ // order in shared chunks which in turns invalidates the hash of every chunk!
49
+ // JavaScript built-in sort() is mandated to be stable as of ES2019 and
50
+ // supported in Node 12+, which is required by Vite.
51
+ const pages = (await (0, globby_1.default)(['**.md'], {
52
+ cwd: srcDir,
53
+ ignore: ['**/node_modules', ...(userConfig.srcExclude || [])]
54
+ })).sort();
55
+ const config = {
56
+ root,
57
+ srcDir,
58
+ site,
59
+ themeDir,
60
+ pages,
61
+ configPath,
62
+ outDir,
63
+ tempDir: resolve(root, '.temp'),
64
+ markdown: userConfig.markdown,
65
+ lastUpdated: userConfig.lastUpdated,
66
+ alias: (0, alias_1.resolveAliases)(root, themeDir),
67
+ vue: userConfig.vue,
68
+ vite: userConfig.vite,
69
+ shouldPreload: userConfig.shouldPreload,
70
+ mpa: !!userConfig.mpa
71
+ };
72
+ return config;
73
+ }
74
+ exports.resolveConfig = resolveConfig;
75
+ const supportedConfigExtensions = ['js', 'ts', 'mjs', 'mts'];
76
+ async function resolveUserConfig(root, command, mode) {
77
+ var _a;
78
+ // load user config
79
+ let configPath;
80
+ for (const ext of supportedConfigExtensions) {
81
+ const p = resolve(root, `config.${ext}`);
82
+ if (await fs_extra_1.default.pathExists(p)) {
83
+ configPath = p;
84
+ break;
85
+ }
86
+ }
87
+ const userConfig = configPath
88
+ ? (_a = (await (0, vite_1.loadConfigFromFile)({
89
+ command,
90
+ mode
91
+ }, configPath, root))) === null || _a === void 0 ? void 0 : _a.config
92
+ : {};
93
+ if (configPath) {
94
+ debug(`loaded config at ${chalk_1.default.yellow(configPath)}`);
95
+ }
96
+ else {
97
+ debug(`no config file found.`);
98
+ }
99
+ return [await resolveConfigExtends(userConfig), configPath];
100
+ }
101
+ async function resolveConfigExtends(config) {
102
+ const resolved = await (typeof config === 'function' ? config() : config);
103
+ if (resolved.extends) {
104
+ const base = await resolveConfigExtends(resolved.extends);
105
+ return mergeConfig(base, resolved);
106
+ }
107
+ return resolved;
108
+ }
109
+ function mergeConfig(a, b, isRoot = true) {
110
+ const merged = { ...a };
111
+ for (const key in b) {
112
+ const value = b[key];
113
+ if (value == null) {
114
+ continue;
115
+ }
116
+ const existing = merged[key];
117
+ if (Array.isArray(existing) && Array.isArray(value)) {
118
+ merged[key] = [...existing, ...value];
119
+ continue;
120
+ }
121
+ if (isObject(existing) && isObject(value)) {
122
+ if (isRoot && key === 'vite') {
123
+ merged[key] = (0, vite_1.mergeConfig)(existing, value);
124
+ }
125
+ else {
126
+ merged[key] = mergeConfig(existing, value, false);
127
+ }
128
+ continue;
129
+ }
130
+ merged[key] = value;
131
+ }
132
+ return merged;
133
+ }
134
+ function isObject(value) {
135
+ return Object.prototype.toString.call(value) === '[object Object]';
136
+ }
137
+ async function resolveSiteData(root, userConfig, command = 'serve', mode = 'development') {
138
+ var _a;
139
+ userConfig = userConfig || (await resolveUserConfig(root, command, mode))[0];
140
+ return {
141
+ lang: userConfig.lang || 'en-US',
142
+ title: userConfig.title || 'VitePress',
143
+ description: userConfig.description || 'A VitePress site',
144
+ base: userConfig.base ? userConfig.base.replace(/([^/])$/, '$1/') : '/',
145
+ head: resolveSiteDataHead(userConfig),
146
+ appearance: (_a = userConfig.appearance) !== null && _a !== void 0 ? _a : true,
147
+ themeConfig: userConfig.themeConfig || {},
148
+ locales: userConfig.locales || {},
149
+ langs: (0, shared_1.createLangDictionary)(userConfig),
150
+ scrollOffset: userConfig.scrollOffset || 90
151
+ };
152
+ }
153
+ exports.resolveSiteData = resolveSiteData;
154
+ function resolveSiteDataHead(userConfig) {
155
+ var _a, _b;
156
+ const head = (_a = userConfig === null || userConfig === void 0 ? void 0 : userConfig.head) !== null && _a !== void 0 ? _a : [];
157
+ // add inline script to apply dark mode, if user enables the feature.
158
+ // this is required to prevent "flush" on initial page load.
159
+ if ((_b = userConfig === null || userConfig === void 0 ? void 0 : userConfig.appearance) !== null && _b !== void 0 ? _b : true) {
160
+ head.push([
161
+ 'script',
162
+ {},
163
+ `
164
+ ;(() => {
165
+ const saved = localStorage.getItem('${shared_1.APPEARANCE_KEY}')
166
+ const prefereDark = window.matchMedia('(prefers-color-scheme: dark)').matches
167
+ if (!saved || saved === 'auto' ? prefereDark : saved === 'dark') {
168
+ document.documentElement.classList.add('dark')
169
+ }
170
+ })()
171
+ `
172
+ ]);
173
+ }
174
+ return head;
175
+ }
176
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/node/config.ts"],"names":[],"mappings":"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"}
@@ -46,6 +46,11 @@ export declare namespace DefaultTheme {
46
46
  */
47
47
  socialLinks?: SocialLink[]
48
48
 
49
+ /**
50
+ * The footer configuration.
51
+ */
52
+ footer?: Footer
53
+
49
54
  /**
50
55
  * Adds locale menu to the nav. This option should be used when you have
51
56
  * your translated sites outside of the project.
@@ -150,6 +155,13 @@ export declare namespace DefaultTheme {
150
155
  | 'twitter'
151
156
  | 'youtube'
152
157
 
158
+ // footer --------------------------------------------------------------------
159
+
160
+ export interface Footer {
161
+ message?: string
162
+ copyright?: string
163
+ }
164
+
153
165
  // locales -------------------------------------------------------------------
154
166
 
155
167
  export interface LocaleLinks {
@@ -272,17 +284,22 @@ export declare interface SiteConfig<ThemeConfig = any> extends Pick<UserConfig,
272
284
 
273
285
  export declare interface SiteData<ThemeConfig = any> {
274
286
  base: string
287
+
275
288
  /**
276
289
  * Language of the site as it should be set on the `html` element.
290
+ *
277
291
  * @example `en-US`, `zh-CN`
278
292
  */
279
293
  lang: string
294
+
280
295
  title: string
281
296
  description: string
282
297
  head: HeadConfig[]
298
+ appearance: boolean
283
299
  themeConfig: ThemeConfig
284
300
  scrollOffset: number | string
285
301
  locales: Record<string, LocaleConfig>
302
+
286
303
  /**
287
304
  * Available locales for the site when it has defined `locales` in its
288
305
  * `themeConfig`. This object is otherwise empty. Keys are paths like `/` or
@@ -307,11 +324,12 @@ export declare interface SiteData<ThemeConfig = any> {
307
324
 
308
325
  export declare interface UserConfig<ThemeConfig = any> {
309
326
  extends?: RawConfigExports<ThemeConfig>;
310
- lang?: string;
311
327
  base?: string;
328
+ lang?: string;
312
329
  title?: string;
313
330
  description?: string;
314
331
  head?: HeadConfig[];
332
+ appearance?: boolean;
315
333
  themeConfig?: ThemeConfig;
316
334
  locales?: Record<string, LocaleConfig>;
317
335
  markdown?: MarkdownOptions;
@@ -1,37 +1,22 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var serve = require('./serve-428d4610.js');
6
- require('vite');
7
- require('readline');
8
- require('assert');
9
- require('events');
10
- require('stream');
11
- require('util');
12
- require('buffer');
13
- require('path');
14
- require('fs');
15
- require('punycode');
16
- require('prismjs');
17
- require('url');
18
- require('child_process');
19
- require('querystring');
20
- require('tty');
21
- require('net');
22
- require('zlib');
23
- require('constants');
24
- require('os');
25
- require('http');
26
-
27
-
28
-
29
- exports.build = serve.build;
30
- exports.createMarkdownRenderer = serve.createMarkdownRenderer;
31
- exports.createServer = serve.createServer;
32
- exports.defineConfig = serve.defineConfig;
33
- exports.defineConfigWithTheme = serve.defineConfigWithTheme;
34
- exports.resolveConfig = serve.resolveConfig;
35
- exports.resolveSiteData = serve.resolveSiteData;
36
- exports.resolveSiteDataByRoute = serve.resolveSiteDataByRoute;
37
- exports.serve = serve.serve;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./server"), exports);
18
+ __exportStar(require("./build/build"), exports);
19
+ __exportStar(require("./serve/serve"), exports);
20
+ __exportStar(require("./config"), exports);
21
+ __exportStar(require("./markdown/markdown"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,gDAA6B;AAC7B,gDAA6B;AAC7B,2CAAwB;AACxB,sDAAmC"}