vitepress 0.22.3 → 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 (208) hide show
  1. package/client.d.ts +2 -3
  2. package/dist/client/app/components/ClientOnly.js +1 -1
  3. package/dist/client/app/index.js +5 -7
  4. package/dist/client/index.d.ts +5 -0
  5. package/dist/client/shared.js +1 -0
  6. package/dist/client/theme-default/Layout.vue +39 -180
  7. package/dist/client/theme-default/NotFound.vue +9 -8
  8. package/dist/client/theme-default/components/VPAlgoliaSearchBox.vue +127 -0
  9. package/dist/client/theme-default/components/VPBackdrop.vue +39 -0
  10. package/dist/client/theme-default/components/VPBox.vue +59 -0
  11. package/dist/client/theme-default/components/VPButton.vue +123 -0
  12. package/dist/client/theme-default/components/VPContent.vue +74 -0
  13. package/dist/client/theme-default/components/VPDoc.vue +173 -0
  14. package/dist/client/theme-default/components/VPDocFooter.vue +141 -0
  15. package/dist/client/theme-default/components/VPDocOutline.vue +108 -0
  16. package/dist/client/theme-default/components/VPFlyout.vue +149 -0
  17. package/dist/client/theme-default/components/VPFooter.vue +53 -0
  18. package/dist/client/theme-default/components/VPHero.vue +144 -0
  19. package/dist/client/theme-default/components/VPHome.vue +33 -0
  20. package/dist/client/theme-default/components/VPHomeFeatures.vue +96 -0
  21. package/dist/client/theme-default/components/VPHomeHero.vue +17 -0
  22. package/dist/client/theme-default/components/VPHomeSponsors.vue +97 -0
  23. package/dist/client/theme-default/components/VPLink.vue +37 -0
  24. package/dist/client/theme-default/components/VPLocalNav.vue +106 -0
  25. package/dist/client/theme-default/components/VPMenu.vue +79 -0
  26. package/dist/client/theme-default/components/VPMenuGroup.vue +35 -0
  27. package/dist/client/theme-default/components/VPMenuLink.vue +30 -0
  28. package/dist/client/theme-default/components/VPNav.vue +33 -0
  29. package/dist/client/theme-default/components/VPNavBar.vue +110 -0
  30. package/dist/client/theme-default/components/VPNavBarAppearance.vue +25 -0
  31. package/dist/client/theme-default/components/VPNavBarExtra.vue +107 -0
  32. package/dist/client/theme-default/components/VPNavBarHamburger.vue +79 -0
  33. package/dist/client/theme-default/components/VPNavBarMenu.vue +29 -0
  34. package/dist/client/theme-default/components/VPNavBarMenuGroup.vue +18 -0
  35. package/dist/client/theme-default/components/VPNavBarMenuLink.vue +56 -0
  36. package/dist/client/theme-default/components/VPNavBarSearch.vue +269 -0
  37. package/dist/client/theme-default/components/VPNavBarSocialLinks.vue +27 -0
  38. package/dist/client/theme-default/components/VPNavBarTitle.vue +57 -0
  39. package/dist/client/theme-default/components/VPNavBarTranslations.vue +74 -0
  40. package/dist/client/theme-default/components/VPNavScreen.vue +100 -0
  41. package/dist/client/theme-default/components/VPNavScreenAppearance.vue +33 -0
  42. package/dist/client/theme-default/components/VPNavScreenMenu.vue +24 -0
  43. package/dist/client/theme-default/components/VPNavScreenMenuGroup.vue +118 -0
  44. package/dist/client/theme-default/components/VPNavScreenMenuGroupLink.vue +33 -0
  45. package/dist/client/theme-default/components/VPNavScreenMenuGroupSection.vue +35 -0
  46. package/dist/client/theme-default/components/VPNavScreenMenuLink.vue +34 -0
  47. package/dist/client/theme-default/components/VPNavScreenSocialLinks.vue +14 -0
  48. package/dist/client/theme-default/components/VPNavScreenTranslations.vue +73 -0
  49. package/dist/client/theme-default/components/VPPage.vue +5 -0
  50. package/dist/client/theme-default/components/VPSidebar.vue +118 -0
  51. package/dist/client/theme-default/components/VPSidebarGroup.vue +44 -0
  52. package/dist/client/theme-default/components/VPSidebarLink.vue +57 -0
  53. package/dist/client/theme-default/components/VPSkipLink.vue +72 -0
  54. package/dist/client/theme-default/components/VPSocialLink.vue +63 -0
  55. package/dist/client/theme-default/components/VPSocialLinks.vue +27 -0
  56. package/dist/client/theme-default/components/VPSponsors.vue +77 -0
  57. package/dist/client/theme-default/components/VPSponsorsGrid.vue +32 -0
  58. package/dist/client/theme-default/components/VPSwitch.vue +66 -0
  59. package/dist/client/theme-default/components/VPSwitchAppearance.vue +74 -0
  60. package/dist/client/theme-default/components/icons/VPIconAlignJustify.vue +8 -0
  61. package/dist/client/theme-default/components/icons/VPIconAlignLeft.vue +8 -0
  62. package/dist/client/theme-default/components/icons/VPIconAlignRight.vue +8 -0
  63. package/dist/client/theme-default/components/icons/{ArrowLeft.vue → VPIconArrowLeft.vue} +0 -0
  64. package/dist/client/theme-default/components/icons/{ArrowRight.vue → VPIconArrowRight.vue} +0 -0
  65. package/dist/client/theme-default/components/icons/VPIconChevronDown.vue +5 -0
  66. package/dist/client/theme-default/components/icons/VPIconChevronLeft.vue +5 -0
  67. package/dist/client/theme-default/components/icons/VPIconChevronRight.vue +5 -0
  68. package/dist/client/theme-default/components/icons/VPIconChevronUp.vue +5 -0
  69. package/dist/client/theme-default/components/icons/VPIconDiscord.vue +5 -0
  70. package/dist/client/theme-default/components/icons/VPIconEdit.vue +6 -0
  71. package/dist/client/theme-default/components/icons/VPIconExternalLink.vue +13 -0
  72. package/dist/client/theme-default/components/icons/VPIconFacebook.vue +5 -0
  73. package/dist/client/theme-default/components/icons/VPIconGitHub.vue +5 -0
  74. package/dist/client/theme-default/components/icons/VPIconHeart.vue +5 -0
  75. package/dist/client/theme-default/components/icons/VPIconInstagram.vue +5 -0
  76. package/dist/client/theme-default/components/icons/VPIconLanguages.vue +9 -0
  77. package/dist/client/theme-default/components/icons/VPIconLinkedIn.vue +5 -0
  78. package/dist/client/theme-default/components/icons/VPIconMoon.vue +5 -0
  79. package/dist/client/theme-default/components/icons/VPIconMoreHorizontal.vue +7 -0
  80. package/dist/client/theme-default/components/icons/VPIconPlus.vue +5 -0
  81. package/dist/client/theme-default/components/icons/VPIconSlack.vue +5 -0
  82. package/dist/client/theme-default/components/icons/VPIconSun.vue +13 -0
  83. package/dist/client/theme-default/components/icons/VPIconTwitter.vue +5 -0
  84. package/dist/client/theme-default/components/icons/VPIconYouTube.vue +5 -0
  85. package/dist/client/theme-default/composables/edit-link.js +22 -0
  86. package/dist/client/theme-default/composables/flyout.js +40 -0
  87. package/dist/client/theme-default/composables/nav.js +27 -1
  88. package/dist/client/theme-default/composables/outline.js +112 -0
  89. package/dist/client/theme-default/composables/prev-next.js +18 -0
  90. package/dist/client/theme-default/composables/sidebar.js +57 -0
  91. package/dist/client/theme-default/composables/sponsor-grid.js +92 -0
  92. package/dist/client/theme-default/composables/sponsor.js +87 -0
  93. package/dist/client/theme-default/fonts/inter-cyrillic-ext.woff2 +0 -0
  94. package/dist/client/theme-default/fonts/inter-cyrillic.woff2 +0 -0
  95. package/dist/client/theme-default/fonts/inter-greek-ext.woff2 +0 -0
  96. package/dist/client/theme-default/fonts/inter-greek.woff2 +0 -0
  97. package/dist/client/theme-default/fonts/inter-latin-ext.woff2 +0 -0
  98. package/dist/client/theme-default/fonts/inter-latin.woff2 +0 -0
  99. package/dist/client/theme-default/fonts/inter-vietnamese.woff2 +0 -0
  100. package/dist/client/theme-default/index.js +8 -4
  101. package/dist/client/theme-default/styles/base.css +203 -0
  102. package/dist/client/theme-default/styles/fonts.css +67 -0
  103. package/dist/client/theme-default/styles/utils.css +9 -0
  104. package/dist/client/theme-default/styles/vars.css +291 -66
  105. package/dist/client/theme-default/styles/vp-doc.css +425 -0
  106. package/dist/client/theme-default/styles/vp-sponsor.css +86 -0
  107. package/dist/client/theme-default/support/sidebar.js +29 -0
  108. package/dist/client/theme-default/support/utils.js +62 -0
  109. package/dist/node/alias.js +60 -0
  110. package/dist/node/alias.js.map +1 -0
  111. package/dist/node/build/build.js +57 -0
  112. package/dist/node/build/build.js.map +1 -0
  113. package/dist/node/build/buildMPAClient.js +44 -0
  114. package/dist/node/build/buildMPAClient.js.map +1 -0
  115. package/dist/node/build/bundle.js +163 -0
  116. package/dist/node/build/bundle.js.map +1 -0
  117. package/dist/node/build/render.js +185 -0
  118. package/dist/node/build/render.js.map +1 -0
  119. package/dist/node/cli.js +37 -294
  120. package/dist/node/cli.js.map +1 -0
  121. package/dist/node/config.js +176 -0
  122. package/dist/node/config.js.map +1 -0
  123. package/dist/node/index.d.ts +122 -79
  124. package/dist/node/index.js +22 -37
  125. package/dist/node/index.js.map +1 -0
  126. package/dist/node/markdown/markdown.js +75 -0
  127. package/dist/node/markdown/markdown.js.map +1 -0
  128. package/dist/node/markdown/plugins/component.js +86 -0
  129. package/dist/node/markdown/plugins/component.js.map +1 -0
  130. package/dist/node/markdown/plugins/containers.js +41 -0
  131. package/dist/node/markdown/plugins/containers.js.map +1 -0
  132. package/dist/node/markdown/plugins/headings.js +25 -0
  133. package/dist/node/markdown/plugins/headings.js.map +1 -0
  134. package/dist/node/markdown/plugins/highlight.js +53 -0
  135. package/dist/node/markdown/plugins/highlight.js.map +1 -0
  136. package/dist/node/markdown/plugins/highlightLines.js +48 -0
  137. package/dist/node/markdown/plugins/highlightLines.js.map +1 -0
  138. package/dist/node/markdown/plugins/hoist.js +22 -0
  139. package/dist/node/markdown/plugins/hoist.js.map +1 -0
  140. package/dist/node/markdown/plugins/image.js +17 -0
  141. package/dist/node/markdown/plugins/image.js.map +1 -0
  142. package/dist/node/markdown/plugins/lineNumbers.js +23 -0
  143. package/dist/node/markdown/plugins/lineNumbers.js.map +1 -0
  144. package/dist/node/markdown/plugins/link.js +85 -0
  145. package/dist/node/markdown/plugins/link.js.map +1 -0
  146. package/dist/node/markdown/plugins/preWrapper.js +22 -0
  147. package/dist/node/markdown/plugins/preWrapper.js.map +1 -0
  148. package/dist/node/markdown/plugins/slugify.js +26 -0
  149. package/dist/node/markdown/plugins/slugify.js.map +1 -0
  150. package/dist/node/markdown/plugins/snippet.js +146 -0
  151. package/dist/node/markdown/plugins/snippet.js.map +1 -0
  152. package/dist/node/markdownToVue.js +166 -0
  153. package/dist/node/markdownToVue.js.map +1 -0
  154. package/dist/node/plugin.js +227 -0
  155. package/dist/node/plugin.js.map +1 -0
  156. package/dist/node/serve/serve.js +59 -0
  157. package/dist/node/serve/serve.js.map +1 -0
  158. package/dist/node/{serve-777539c0.js → serve-b5dc02b2.js} +27 -2
  159. package/dist/node/server.js +18 -0
  160. package/dist/node/server.js.map +1 -0
  161. package/dist/node/shared.js +72 -0
  162. package/dist/node/shared.js.map +1 -0
  163. package/dist/node/staticDataPlugin.js +99 -0
  164. package/dist/node/staticDataPlugin.js.map +1 -0
  165. package/dist/node/utils/getGitTimestamp.js +17 -0
  166. package/dist/node/utils/getGitTimestamp.js.map +1 -0
  167. package/dist/node/utils/parseHeader.js +57 -0
  168. package/dist/node/utils/parseHeader.js.map +1 -0
  169. package/dist/node/utils/slash.js +8 -0
  170. package/dist/node/utils/slash.js.map +1 -0
  171. package/package.json +31 -25
  172. package/types/default-theme.d.ts +115 -78
  173. package/types/shared.d.ts +11 -6
  174. package/dist/client/theme-default/components/AlgoliaSearchBox.vue +0 -188
  175. package/dist/client/theme-default/components/BuySellAds.vue +0 -152
  176. package/dist/client/theme-default/components/CarbonAds.vue +0 -99
  177. package/dist/client/theme-default/components/EditLink.vue +0 -38
  178. package/dist/client/theme-default/components/Home.vue +0 -31
  179. package/dist/client/theme-default/components/HomeFeatures.vue +0 -143
  180. package/dist/client/theme-default/components/HomeFooter.vue +0 -50
  181. package/dist/client/theme-default/components/HomeHero.vue +0 -161
  182. package/dist/client/theme-default/components/LastUpdated.vue +0 -60
  183. package/dist/client/theme-default/components/NavBar.vue +0 -60
  184. package/dist/client/theme-default/components/NavBarTitle.vue +0 -41
  185. package/dist/client/theme-default/components/NavDropdownLink.vue +0 -135
  186. package/dist/client/theme-default/components/NavDropdownLinkItem.vue +0 -76
  187. package/dist/client/theme-default/components/NavLink.vue +0 -61
  188. package/dist/client/theme-default/components/NavLinks.vue +0 -52
  189. package/dist/client/theme-default/components/NextAndPrevLinks.vue +0 -88
  190. package/dist/client/theme-default/components/Page.vue +0 -53
  191. package/dist/client/theme-default/components/PageFooter.vue +0 -44
  192. package/dist/client/theme-default/components/SideBar.vue +0 -60
  193. package/dist/client/theme-default/components/SideBarLink.js +0 -68
  194. package/dist/client/theme-default/components/SideBarLinks.vue +0 -12
  195. package/dist/client/theme-default/components/ToggleSideBarButton.vue +0 -46
  196. package/dist/client/theme-default/components/icons/OutboundLink.vue +0 -31
  197. package/dist/client/theme-default/composables/activeSidebarLink.js +0 -99
  198. package/dist/client/theme-default/composables/editLink.js +0 -49
  199. package/dist/client/theme-default/composables/navLink.js +0 -42
  200. package/dist/client/theme-default/composables/nextAndPrevLinks.js +0 -37
  201. package/dist/client/theme-default/composables/repo.js +0 -38
  202. package/dist/client/theme-default/composables/sideBar.js +0 -57
  203. package/dist/client/theme-default/styles/code.css +0 -299
  204. package/dist/client/theme-default/styles/custom-blocks.css +0 -76
  205. package/dist/client/theme-default/styles/layout.css +0 -236
  206. package/dist/client/theme-default/styles/sidebar-links.css +0 -107
  207. package/dist/client/theme-default/support/sideBar.js +0 -46
  208. package/dist/client/theme-default/utils.js +0 -63
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ // TODO figure out why it causes full page reload
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.staticDataPlugin = void 0;
5
+ const vite_1 = require("vite");
6
+ const path_1 = require("path");
7
+ const micromatch_1 = require("micromatch");
8
+ const loaderMatch = /\.data\.(j|t)s$/;
9
+ let server;
10
+ const idToLoaderModulesMap = Object.create(null);
11
+ // During build, the load hook will be called on the same file twice
12
+ // once for client and once for server build. Not only is this wasteful, it
13
+ // also leads to a race condition in loadConfigFromFile() that results in an
14
+ // fs unlink error. So we reuse the same Promise during build to avoid double
15
+ // loading.
16
+ let idToPendingPromiseMap = Object.create(null);
17
+ let isBuild = false;
18
+ exports.staticDataPlugin = {
19
+ name: 'vitepress:data',
20
+ configResolved(config) {
21
+ isBuild = config.command === 'build';
22
+ },
23
+ configureServer(_server) {
24
+ server = _server;
25
+ },
26
+ async load(id) {
27
+ var _a;
28
+ if (loaderMatch.test(id)) {
29
+ let _resolve;
30
+ if (isBuild) {
31
+ if (idToPendingPromiseMap[id]) {
32
+ return idToPendingPromiseMap[id];
33
+ }
34
+ idToPendingPromiseMap[id] = new Promise((r) => {
35
+ _resolve = r;
36
+ });
37
+ }
38
+ const base = (0, path_1.dirname)(id);
39
+ let pattern;
40
+ let loader;
41
+ const existing = idToLoaderModulesMap[id];
42
+ if (existing) {
43
+ ;
44
+ ({ pattern, loader } = existing);
45
+ }
46
+ else {
47
+ // use vite's load config util as a away to load Node.js file with
48
+ // TS & native ESM support
49
+ const loaderModule = (_a = (await (0, vite_1.loadConfigFromFile)({}, id))) === null || _a === void 0 ? void 0 : _a.config;
50
+ pattern =
51
+ typeof loaderModule.watch === 'string'
52
+ ? [loaderModule.watch]
53
+ : loaderModule.watch;
54
+ if (pattern) {
55
+ pattern = pattern.map((p) => {
56
+ return p.startsWith('./') ? p.slice(2) : p;
57
+ });
58
+ }
59
+ loader = loaderModule.load;
60
+ }
61
+ // load the data
62
+ const data = await loader();
63
+ // record loader module for HMR
64
+ if (server) {
65
+ idToLoaderModulesMap[id] = { base, pattern, loader };
66
+ }
67
+ const result = `export const data = JSON.parse(${JSON.stringify(JSON.stringify(data))})`;
68
+ if (_resolve)
69
+ _resolve(result);
70
+ return result;
71
+ }
72
+ },
73
+ transform(_code, id) {
74
+ if (server && loaderMatch.test(id)) {
75
+ // register this module as a glob importer
76
+ const { base, pattern } = idToLoaderModulesMap[id];
77
+ server._globImporters[id] = {
78
+ module: server.moduleGraph.getModuleById(id),
79
+ importGlobs: pattern === null || pattern === void 0 ? void 0 : pattern.map((pattern) => ({ base, pattern }))
80
+ };
81
+ }
82
+ return null;
83
+ },
84
+ handleHotUpdate(ctx) {
85
+ for (const id in idToLoaderModulesMap) {
86
+ const { base, pattern } = idToLoaderModulesMap[id];
87
+ const isLoaderFile = (0, vite_1.normalizePath)(ctx.file) === id;
88
+ if (isLoaderFile) {
89
+ // invalidate loader file
90
+ delete idToLoaderModulesMap[id];
91
+ }
92
+ if (isLoaderFile ||
93
+ (pattern && (0, micromatch_1.isMatch)((0, path_1.relative)(base, ctx.file), pattern))) {
94
+ ctx.modules.push(server.moduleGraph.getModuleById(id));
95
+ }
96
+ }
97
+ }
98
+ };
99
+ //# sourceMappingURL=staticDataPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staticDataPlugin.js","sourceRoot":"","sources":["../../src/node/staticDataPlugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getGitTimestamp = void 0;
4
+ const cross_spawn_1 = require("cross-spawn");
5
+ function getGitTimestamp(file) {
6
+ return new Promise((resolve, reject) => {
7
+ const child = (0, cross_spawn_1.spawn)('git', ['log', '-1', '--pretty="%ci"', file]);
8
+ let output = '';
9
+ child.stdout.on('data', (d) => (output += String(d)));
10
+ child.on('close', () => {
11
+ resolve(+new Date(output));
12
+ });
13
+ child.on('error', reject);
14
+ });
15
+ }
16
+ exports.getGitTimestamp = getGitTimestamp;
17
+ //# sourceMappingURL=getGitTimestamp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getGitTimestamp.js","sourceRoot":"","sources":["../../../src/node/utils/getGitTimestamp.ts"],"names":[],"mappings":";;;AAAA,6CAAmC;AAEnC,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,IAAA,mBAAK,EAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAA;QACjE,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACrB,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;QACF,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;AACJ,CAAC;AAVD,0CAUC"}
@@ -0,0 +1,57 @@
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.deeplyParseHeader = exports.parseHeader = exports.removeNonCodeWrappedHTML = void 0;
7
+ // Since VuePress needs to extract the header from the markdown source
8
+ // file and display it in the sidebar or title (#238), this file simply
9
+ // removes some unnecessary elements to make header displays well at
10
+ // sidebar or title.
11
+ //
12
+ // But header's parsing in the markdown content is done by the markdown
13
+ // loader based on markdown-it. markdown-it parser will will always keep
14
+ // HTML in headers, so in VuePress, after being parsed by the markdown
15
+ // loader, the raw HTML in headers will finally be parsed by Vue-loader.
16
+ // so that we can write HTML/Vue in the header. One exception is the HTML
17
+ // wrapped by <code>(markdown token: '`') tag.
18
+ const full_json_1 = __importDefault(require("markdown-it-emoji/lib/data/full.json"));
19
+ const parseEmojis = (str) => {
20
+ return str.replace(/:(.+?):/g, (placeholder, key) => full_json_1.default[key] || placeholder);
21
+ };
22
+ const unescapeHtml = (html) => html
23
+ .replace(/&quot;/g, '"')
24
+ .replace(/&#39;/g, "'")
25
+ .replace(/&#x3A;/g, ':')
26
+ .replace(/&lt;/g, '<')
27
+ .replace(/&gt;/g, '>');
28
+ const removeMarkdownTokens = (str) => str
29
+ .replace(/(\[(.[^\]]+)\]\((.[^)]+)\))/g, '$2') // []()
30
+ .replace(/(`|\*{1,3}|_)(.*?[^\\])\1/g, '$2') // `{t}` | *{t}* | **{t}** | ***{t}*** | _{t}_
31
+ .replace(/(\\)(\*|_|`|\!|<|\$)/g, '$2'); // remove escape char '\'
32
+ const remvoeCustomAnchor = (str) => str.replace(/\{#([a-z0-9\-_]+?)\}\s*$/, ''); // {#custom-header}
33
+ const trim = (str) => str.trim();
34
+ // This method remove the raw HTML but reserve the HTML wrapped by `<code>`.
35
+ // e.g.
36
+ // Input: "<a> b", Output: "b"
37
+ // Input: "`<a>` b", Output: "`<a>` b"
38
+ const removeNonCodeWrappedHTML = (str) => {
39
+ return String(str).replace(/(^|[^><`\\])<.*>([^><`]|$)/g, '$1$2');
40
+ };
41
+ exports.removeNonCodeWrappedHTML = removeNonCodeWrappedHTML;
42
+ const compose = (...processors) => {
43
+ if (processors.length === 0)
44
+ return (input) => input;
45
+ if (processors.length === 1)
46
+ return processors[0];
47
+ return processors.reduce((prev, next) => {
48
+ return (str) => next(prev(str));
49
+ });
50
+ };
51
+ // Unescape html, parse emojis and remove some md tokens.
52
+ exports.parseHeader = compose(unescapeHtml, parseEmojis, remvoeCustomAnchor, removeMarkdownTokens, trim);
53
+ // Also clean the html that isn't wrapped by code.
54
+ // Because we want to support using VUE components in headers.
55
+ // e.g. https://vuepress.vuejs.org/guide/using-vue.html#badge
56
+ exports.deeplyParseHeader = compose(exports.removeNonCodeWrappedHTML, exports.parseHeader);
57
+ //# sourceMappingURL=parseHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseHeader.js","sourceRoot":"","sources":["../../../src/node/utils/parseHeader.ts"],"names":[],"mappings":";;;;;;AAAA,sEAAsE;AACtE,uEAAuE;AACvE,oEAAoE;AACpE,oBAAoB;AACpB,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AACxE,sEAAsE;AACtE,wEAAwE;AACxE,yEAAyE;AACzE,8CAA8C;AAC9C,qFAA4D;AAE5D,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,EAAE;IAClC,OAAO,GAAG,CAAC,OAAO,CAChB,UAAU,EACV,CAAC,WAAW,EAAE,GAAG,EAAE,EAAE,CAAC,mBAAS,CAAC,GAAG,CAAC,IAAI,WAAW,CACpD,CAAA;AACH,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE,CACpC,IAAI;KACD,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;KACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;KACtB,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;KACvB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;KACrB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AAE1B,MAAM,oBAAoB,GAAG,CAAC,GAAW,EAAE,EAAE,CAC3C,GAAG;KACA,OAAO,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC,OAAO;KACrD,OAAO,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC,8CAA8C;KAC1F,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAA,CAAC,yBAAyB;AAErE,MAAM,kBAAkB,GAAG,CAAC,GAAW,EAAE,EAAE,CACzC,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAA,CAAC,mBAAmB;AAEjE,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;AAExC,4EAA4E;AAC5E,OAAO;AACP,gCAAgC;AAChC,sCAAsC;AAC/B,MAAM,wBAAwB,GAAG,CAAC,GAAW,EAAE,EAAE;IACtD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAA;AACnE,CAAC,CAAA;AAFY,QAAA,wBAAwB,4BAEpC;AAED,MAAM,OAAO,GAAG,CAAC,GAAG,UAAuC,EAAE,EAAE;IAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAA;IAC5D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAA;IACjD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;QACtC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAED,yDAAyD;AAC5C,QAAA,WAAW,GAAG,OAAO,CAChC,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,oBAAoB,EACpB,IAAI,CACL,CAAA;AAED,kDAAkD;AAClD,8DAA8D;AAC9D,6DAA6D;AAChD,QAAA,iBAAiB,GAAG,OAAO,CAAC,gCAAwB,EAAE,mBAAW,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.slash = void 0;
4
+ function slash(p) {
5
+ return p.replace(/\\/g, '/');
6
+ }
7
+ exports.slash = slash;
8
+ //# sourceMappingURL=slash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slash.js","sourceRoot":"","sources":["../../../src/node/utils/slash.ts"],"names":[],"mappings":";;;AAAA,SAAgB,KAAK,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAC9B,CAAC;AAFD,sBAEC"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "vitepress",
3
- "version": "0.22.3",
3
+ "version": "1.0.0-draft.2",
4
+ "packageManager": "pnpm@7.0.1",
4
5
  "description": "Vite & Vue powered static site generator",
5
6
  "main": "dist/node/index.js",
6
7
  "typings": "types/index.d.ts",
@@ -14,20 +15,6 @@
14
15
  "client.d.ts",
15
16
  "theme.d.ts"
16
17
  ],
17
- "engines": {
18
- "node": ">=14.0.0"
19
- },
20
- "gitHooks": {
21
- "pre-commit": "lint-staged"
22
- },
23
- "lint-staged": {
24
- "*.js": [
25
- "prettier --write"
26
- ],
27
- "*.ts": [
28
- "prettier --parser=typescript --write"
29
- ]
30
- },
31
18
  "repository": {
32
19
  "type": "git",
33
20
  "url": "git+https://github.com/vuejs/vitepress.git"
@@ -39,24 +26,41 @@
39
26
  ],
40
27
  "author": "Evan You",
41
28
  "license": "MIT",
42
- "homepage": "https://github.com/vuejs/vitepress/tree/master/#readme",
29
+ "homepage": "https://github.com/vuejs/vitepress/tree/main/#readme",
43
30
  "bugs": {
44
31
  "url": "https://github.com/vuejs/vitepress/issues"
45
32
  },
33
+ "engines": {
34
+ "node": ">=14.0.0"
35
+ },
36
+ "gitHooks": {
37
+ "pre-commit": "lint-staged"
38
+ },
39
+ "lint-staged": {
40
+ "*.js": [
41
+ "prettier --write"
42
+ ],
43
+ "*.ts": [
44
+ "prettier --parser=typescript --write"
45
+ ]
46
+ },
46
47
  "dependencies": {
47
- "@docsearch/css": "^3.0.0-alpha.41",
48
- "@docsearch/js": "^3.0.0-alpha.41",
49
- "@vitejs/plugin-vue": "^2.2.0",
48
+ "@docsearch/css": "^3.0.0",
49
+ "@docsearch/js": "^3.0.0",
50
+ "@vitejs/plugin-vue": "^2.3.2",
51
+ "@vueuse/core": "^8.5.0",
52
+ "body-scroll-lock": "^4.0.0-beta.0",
50
53
  "prismjs": "^1.25.0",
51
- "vite": "^2.8.1",
52
- "vue": "^3.2.31"
54
+ "vite": "^2.9.7",
55
+ "vue": "3.2.33"
53
56
  },
54
57
  "devDependencies": {
55
- "@microsoft/api-extractor": "^7.18.9",
58
+ "@microsoft/api-extractor": "^7.23.1",
56
59
  "@rollup/plugin-alias": "^3.1.5",
57
60
  "@rollup/plugin-commonjs": "^20.0.0",
58
61
  "@rollup/plugin-json": "^4.1.0",
59
62
  "@rollup/plugin-node-resolve": "^13.0.4",
63
+ "@types/body-scroll-lock": "^3.1.0",
60
64
  "@types/compression": "^1.7.0",
61
65
  "@types/cross-spawn": "^6.0.2",
62
66
  "@types/debug": "^4.1.7",
@@ -66,6 +70,7 @@
66
70
  "@types/lru-cache": "^5.1.0",
67
71
  "@types/markdown-it": "^12.0.1",
68
72
  "@types/micromatch": "^4.0.2",
73
+ "@types/minimist": "^1.2.2",
69
74
  "@types/node": "^15.6.1",
70
75
  "@types/polka": "^0.5.3",
71
76
  "chalk": "^4.1.1",
@@ -102,8 +107,8 @@
102
107
  "rollup-plugin-esbuild": "^4.8.2",
103
108
  "semver": "^7.3.5",
104
109
  "sirv": "^1.0.12",
105
- "typescript": "^4.3.2",
106
- "vitest": "^0.1.19",
110
+ "typescript": "^4.6.4",
111
+ "vitest": "^0.10.4",
107
112
  "yorkie": "^2.0.0"
108
113
  },
109
114
  "scripts": {
@@ -124,12 +129,13 @@
124
129
  "lint:js": "prettier --check --write \"{bin,docs,scripts,src}/**/*.js\"",
125
130
  "lint:ts": "prettier --check --write --parser typescript \"{__tests__,src,docs,types}/**/*.ts\"",
126
131
  "test": "vitest run __tests__ -c __tests__/vitest.config.js --global",
132
+ "test:all": "run-s lint test",
127
133
  "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
128
134
  "release": "node scripts/release.js",
129
135
  "docs": "run-p dev docs-dev",
130
136
  "docs-dev": "node ./bin/vitepress dev docs",
131
137
  "docs-debug": "node --inspect-brk ./bin/vitepress dev docs",
132
- "docs-build": "npm run build && node ./bin/vitepress build docs",
138
+ "docs-build": "run-s build docs-build-only",
133
139
  "docs-build-only": "node ./bin/vitepress build docs",
134
140
  "docs-serve": "node ./bin/vitepress serve docs",
135
141
  "ci-docs": "run-s build docs-build"
@@ -1,127 +1,170 @@
1
1
  export namespace DefaultTheme {
2
2
  export interface Config {
3
- logo?: string
4
- nav?: NavItem[] | false
5
- sidebar?: SideBarConfig | MultiSideBarConfig
6
-
7
3
  /**
8
- * GitHub repository following the format <user>/<project>.
4
+ * The logo file of the site.
9
5
  *
10
- * @example `"vuejs/vue-next"`
6
+ * @example '/logo.svg'
11
7
  */
12
- repo?: string
8
+ logo?: string
13
9
 
14
10
  /**
15
- * Customize the header label. Defaults to GitHub/Gitlab/Bitbucket
16
- * depending on the provided repo.
17
- *
18
- * @example `"Contribute!"`
11
+ * The nav items.
19
12
  */
20
- repoLabel?: string
13
+ nav?: NavItem[]
21
14
 
22
15
  /**
23
- * If your docs are in a different repository from your main project.
24
- *
25
- * @example `"vuejs/docs-next"`
16
+ * The sidebar items.
26
17
  */
27
- docsRepo?: string
18
+ sidebar?: Sidebar
28
19
 
29
20
  /**
30
- * If your docs are not at the root of the repo.
31
- *
32
- * @example `"docs"`
21
+ * Info for the edit link. If it's undefined, the edit link feature will
22
+ * be disabled.
33
23
  */
34
- docsDir?: string
24
+ editLink?: EditLink
35
25
 
36
26
  /**
37
- * If your docs are in a different branch. Defaults to `master`.
38
- *
39
- * @example `"next"`
27
+ * The social links to be displayed at the end of the nav bar. Perfect for
28
+ * placing links to social services such as GitHub, Twitter, Facebook, etc.
40
29
  */
41
- docsBranch?: string
30
+ socialLinks?: SocialLink[]
42
31
 
43
32
  /**
44
- * Enable links to edit pages at the bottom of the page.
33
+ * The footer configuration.
45
34
  */
46
- editLinks?: boolean
35
+ footer?: Footer
47
36
 
48
37
  /**
49
- * Custom text for edit link. Defaults to "Edit this page".
38
+ * Adds locale menu to the nav. This option should be used when you have
39
+ * your translated sites outside of the project.
50
40
  */
51
- editLinkText?: string
41
+ localeLinks?: LocaleLinks
52
42
 
53
43
  /**
54
- * Show last updated time at the bottom of the page. Defaults to `false`.
55
- * If given a string, it will be displayed as a prefix (default value:
56
- * "Last Updated").
44
+ * The algolia options. Leave it undefined to disable the search feature.
57
45
  */
58
- lastUpdated?: string | boolean
59
-
60
- prevLinks?: boolean
61
- nextLinks?: boolean
62
-
63
- locales?: Record<string, LocaleConfig & Omit<Config, 'locales'>>
64
-
65
46
  algolia?: AlgoliaSearchOptions
66
47
 
67
- carbonAds?: {
68
- carbon: string
69
- custom?: string
70
- placement: string
71
- }
48
+ /**
49
+ * The carbon ads options. Leave it undefined to disable the ads feature.
50
+ */
51
+ carbonAds?: CarbonAdsOptions
72
52
  }
73
53
 
74
- // navbar --------------------------------------------------------------------
54
+ // nav -----------------------------------------------------------------------
75
55
 
76
56
  export type NavItem = NavItemWithLink | NavItemWithChildren
77
57
 
78
- export interface NavItemBase {
58
+ export type NavItemWithLink = {
79
59
  text: string
80
- target?: string
81
- rel?: string
82
- ariaLabel?: string
83
- activeMatch?: string
84
- }
85
-
86
- export interface NavItemWithLink extends NavItemBase {
87
60
  link: string
61
+
62
+ /**
63
+ * `activeMatch` is expected to be a regex string. We can't use actual
64
+ * RegExp object here because it isn't serializable
65
+ */
66
+ activeMatch?: string
88
67
  }
89
68
 
90
- export interface NavItemWithChildren extends NavItemBase {
69
+ export interface NavItemWithChildren {
70
+ text?: string
91
71
  items: NavItemWithLink[]
92
72
  }
93
73
 
94
74
  // sidebar -------------------------------------------------------------------
95
75
 
96
- export type SideBarConfig = SideBarItem[] | 'auto' | false
76
+ export type Sidebar = SidebarGroup[] | SidebarMulti
97
77
 
98
- export interface MultiSideBarConfig {
99
- [path: string]: SideBarConfig
78
+ export interface SidebarMulti {
79
+ [path: string]: SidebarGroup[]
100
80
  }
101
81
 
102
- export type SideBarItem = SideBarLink | SideBarGroup
82
+ export interface SidebarGroup {
83
+ text: string
84
+ items: SidebarItem[]
85
+ }
103
86
 
104
- export interface SideBarLink {
87
+ export interface SidebarItem {
105
88
  text: string
106
89
  link: string
107
90
  }
108
91
 
109
- export interface SideBarGroup {
110
- text: string
111
- link?: string
92
+ // edit link -----------------------------------------------------------------
93
+
94
+ export interface EditLink {
95
+ /**
96
+ * Repo of the site.
97
+ *
98
+ * @example 'vuejs/docs'
99
+ */
100
+ repo: string
101
+
102
+ /**
103
+ * Branch of the repo.
104
+ *
105
+ * @default 'main'
106
+ */
107
+ branch?: string
112
108
 
113
109
  /**
114
- * @default false
110
+ * If your docs are not at the root of the repo.
111
+ *
112
+ * @example 'docs'
115
113
  */
116
- collapsable?: boolean
114
+ dir?: string
117
115
 
118
- children: SideBarItem[]
116
+ /**
117
+ * Custom text for edit link.
118
+ *
119
+ * @default 'Edit this page'
120
+ */
121
+ text?: string
119
122
  }
120
123
 
121
- // algolia ------------------------------------------------------------------
122
- // partially copied from @docsearch/react/dist/esm/DocSearch.d.ts
124
+ // social link ---------------------------------------------------------------
125
+
126
+ export interface SocialLink {
127
+ icon: SocialLinkIcon
128
+ link: string
129
+ }
130
+
131
+ export type SocialLinkIcon =
132
+ | 'discord'
133
+ | 'facebook'
134
+ | 'github'
135
+ | 'instagram'
136
+ | 'linkedin'
137
+ | 'slack'
138
+ | 'twitter'
139
+ | 'youtube'
140
+
141
+ // footer --------------------------------------------------------------------
142
+
143
+ export interface Footer {
144
+ message?: string
145
+ copyright?: string
146
+ }
147
+
148
+ // locales -------------------------------------------------------------------
149
+
150
+ export interface LocaleLinks {
151
+ text: string
152
+ items: LocaleLink[]
153
+ }
154
+
155
+ export interface LocaleLink {
156
+ text: string
157
+ link: string
158
+ }
159
+
160
+ // algolia ------------------------------------------------------------------
161
+
162
+ /**
163
+ * The Algolia search options. Partially copied from
164
+ * `@docsearch/react/dist/esm/DocSearch.d.ts`
165
+ */
123
166
  export interface AlgoliaSearchOptions {
124
- appId?: string
167
+ appId: string
125
168
  apiKey: string
126
169
  indexName: string
127
170
  placeholder?: string
@@ -130,17 +173,11 @@ export namespace DefaultTheme {
130
173
  initialQuery?: string
131
174
  }
132
175
 
133
- // locales -------------------------------------------------------------------
176
+ // carbon ads ----------------------------------------------------------------
134
177
 
135
- export interface LocaleConfig {
136
- /**
137
- * Text for the language dropdown.
138
- */
139
- selectText?: string
140
-
141
- /**
142
- * Label for this locale in the language dropdown.
143
- */
144
- label?: string
178
+ export interface CarbonAdsOptions {
179
+ carbon: string
180
+ custom?: string
181
+ placement: string
145
182
  }
146
183
  }
package/types/shared.d.ts CHANGED
@@ -11,19 +11,30 @@ export interface PageData {
11
11
  lastUpdated?: number
12
12
  }
13
13
 
14
+ export interface Header {
15
+ level: number
16
+ title: string
17
+ slug: string
18
+ }
19
+
14
20
  export interface SiteData<ThemeConfig = any> {
15
21
  base: string
22
+
16
23
  /**
17
24
  * Language of the site as it should be set on the `html` element.
25
+ *
18
26
  * @example `en-US`, `zh-CN`
19
27
  */
20
28
  lang: string
29
+
21
30
  title: string
22
31
  description: string
23
32
  head: HeadConfig[]
33
+ appearance: boolean
24
34
  themeConfig: ThemeConfig
25
35
  scrollOffset: number | string
26
36
  locales: Record<string, LocaleConfig>
37
+
27
38
  /**
28
39
  * Available locales for the site when it has defined `locales` in its
29
40
  * `themeConfig`. This object is otherwise empty. Keys are paths like `/` or
@@ -50,12 +61,6 @@ export type HeadConfig =
50
61
  | [string, Record<string, string>]
51
62
  | [string, Record<string, string>, string]
52
63
 
53
- export interface Header {
54
- level: number
55
- title: string
56
- slug: string
57
- }
58
-
59
64
  export interface LocaleConfig {
60
65
  lang: string
61
66
  title?: string