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.
- package/client.d.ts +2 -3
- package/dist/client/app/components/ClientOnly.js +1 -1
- package/dist/client/app/index.js +5 -7
- package/dist/client/index.d.ts +5 -0
- package/dist/client/shared.js +1 -0
- package/dist/client/theme-default/Layout.vue +39 -180
- package/dist/client/theme-default/NotFound.vue +9 -8
- package/dist/client/theme-default/components/VPAlgoliaSearchBox.vue +127 -0
- package/dist/client/theme-default/components/VPBackdrop.vue +39 -0
- package/dist/client/theme-default/components/VPBox.vue +59 -0
- package/dist/client/theme-default/components/VPButton.vue +123 -0
- package/dist/client/theme-default/components/VPContent.vue +74 -0
- package/dist/client/theme-default/components/VPDoc.vue +173 -0
- package/dist/client/theme-default/components/VPDocFooter.vue +141 -0
- package/dist/client/theme-default/components/VPDocOutline.vue +108 -0
- package/dist/client/theme-default/components/VPFlyout.vue +149 -0
- package/dist/client/theme-default/components/VPFooter.vue +53 -0
- package/dist/client/theme-default/components/VPHero.vue +144 -0
- package/dist/client/theme-default/components/VPHome.vue +33 -0
- package/dist/client/theme-default/components/VPHomeFeatures.vue +96 -0
- package/dist/client/theme-default/components/VPHomeHero.vue +17 -0
- package/dist/client/theme-default/components/VPHomeSponsors.vue +97 -0
- package/dist/client/theme-default/components/VPLink.vue +37 -0
- package/dist/client/theme-default/components/VPLocalNav.vue +106 -0
- package/dist/client/theme-default/components/VPMenu.vue +79 -0
- package/dist/client/theme-default/components/VPMenuGroup.vue +35 -0
- package/dist/client/theme-default/components/VPMenuLink.vue +30 -0
- package/dist/client/theme-default/components/VPNav.vue +33 -0
- package/dist/client/theme-default/components/VPNavBar.vue +110 -0
- package/dist/client/theme-default/components/VPNavBarAppearance.vue +25 -0
- package/dist/client/theme-default/components/VPNavBarExtra.vue +107 -0
- package/dist/client/theme-default/components/VPNavBarHamburger.vue +79 -0
- package/dist/client/theme-default/components/VPNavBarMenu.vue +29 -0
- package/dist/client/theme-default/components/VPNavBarMenuGroup.vue +18 -0
- package/dist/client/theme-default/components/VPNavBarMenuLink.vue +56 -0
- package/dist/client/theme-default/components/VPNavBarSearch.vue +269 -0
- package/dist/client/theme-default/components/VPNavBarSocialLinks.vue +27 -0
- package/dist/client/theme-default/components/VPNavBarTitle.vue +57 -0
- package/dist/client/theme-default/components/VPNavBarTranslations.vue +74 -0
- package/dist/client/theme-default/components/VPNavScreen.vue +100 -0
- package/dist/client/theme-default/components/VPNavScreenAppearance.vue +33 -0
- package/dist/client/theme-default/components/VPNavScreenMenu.vue +24 -0
- package/dist/client/theme-default/components/VPNavScreenMenuGroup.vue +118 -0
- package/dist/client/theme-default/components/VPNavScreenMenuGroupLink.vue +33 -0
- package/dist/client/theme-default/components/VPNavScreenMenuGroupSection.vue +35 -0
- package/dist/client/theme-default/components/VPNavScreenMenuLink.vue +34 -0
- package/dist/client/theme-default/components/VPNavScreenSocialLinks.vue +14 -0
- package/dist/client/theme-default/components/VPNavScreenTranslations.vue +73 -0
- package/dist/client/theme-default/components/VPPage.vue +5 -0
- package/dist/client/theme-default/components/VPSidebar.vue +118 -0
- package/dist/client/theme-default/components/VPSidebarGroup.vue +44 -0
- package/dist/client/theme-default/components/VPSidebarLink.vue +57 -0
- package/dist/client/theme-default/components/VPSkipLink.vue +72 -0
- package/dist/client/theme-default/components/VPSocialLink.vue +63 -0
- package/dist/client/theme-default/components/VPSocialLinks.vue +27 -0
- package/dist/client/theme-default/components/VPSponsors.vue +77 -0
- package/dist/client/theme-default/components/VPSponsorsGrid.vue +32 -0
- package/dist/client/theme-default/components/VPSwitch.vue +66 -0
- package/dist/client/theme-default/components/VPSwitchAppearance.vue +74 -0
- package/dist/client/theme-default/components/icons/VPIconAlignJustify.vue +8 -0
- package/dist/client/theme-default/components/icons/VPIconAlignLeft.vue +8 -0
- package/dist/client/theme-default/components/icons/VPIconAlignRight.vue +8 -0
- package/dist/client/theme-default/components/icons/{ArrowLeft.vue → VPIconArrowLeft.vue} +0 -0
- package/dist/client/theme-default/components/icons/{ArrowRight.vue → VPIconArrowRight.vue} +0 -0
- package/dist/client/theme-default/components/icons/VPIconChevronDown.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconChevronLeft.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconChevronRight.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconChevronUp.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconDiscord.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconEdit.vue +6 -0
- package/dist/client/theme-default/components/icons/VPIconExternalLink.vue +13 -0
- package/dist/client/theme-default/components/icons/VPIconFacebook.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconGitHub.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconHeart.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconInstagram.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconLanguages.vue +9 -0
- package/dist/client/theme-default/components/icons/VPIconLinkedIn.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconMoon.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconMoreHorizontal.vue +7 -0
- package/dist/client/theme-default/components/icons/VPIconPlus.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconSlack.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconSun.vue +13 -0
- package/dist/client/theme-default/components/icons/VPIconTwitter.vue +5 -0
- package/dist/client/theme-default/components/icons/VPIconYouTube.vue +5 -0
- package/dist/client/theme-default/composables/edit-link.js +22 -0
- package/dist/client/theme-default/composables/flyout.js +40 -0
- package/dist/client/theme-default/composables/nav.js +27 -1
- package/dist/client/theme-default/composables/outline.js +112 -0
- package/dist/client/theme-default/composables/prev-next.js +18 -0
- package/dist/client/theme-default/composables/sidebar.js +57 -0
- package/dist/client/theme-default/composables/sponsor-grid.js +92 -0
- package/dist/client/theme-default/composables/sponsor.js +87 -0
- package/dist/client/theme-default/fonts/inter-cyrillic-ext.woff2 +0 -0
- package/dist/client/theme-default/fonts/inter-cyrillic.woff2 +0 -0
- package/dist/client/theme-default/fonts/inter-greek-ext.woff2 +0 -0
- package/dist/client/theme-default/fonts/inter-greek.woff2 +0 -0
- package/dist/client/theme-default/fonts/inter-latin-ext.woff2 +0 -0
- package/dist/client/theme-default/fonts/inter-latin.woff2 +0 -0
- package/dist/client/theme-default/fonts/inter-vietnamese.woff2 +0 -0
- package/dist/client/theme-default/index.js +8 -4
- package/dist/client/theme-default/styles/base.css +203 -0
- package/dist/client/theme-default/styles/fonts.css +67 -0
- package/dist/client/theme-default/styles/utils.css +9 -0
- package/dist/client/theme-default/styles/vars.css +291 -66
- package/dist/client/theme-default/styles/vp-doc.css +425 -0
- package/dist/client/theme-default/styles/vp-sponsor.css +86 -0
- package/dist/client/theme-default/support/sidebar.js +29 -0
- package/dist/client/theme-default/support/utils.js +62 -0
- package/dist/node/alias.js +60 -0
- package/dist/node/alias.js.map +1 -0
- package/dist/node/build/build.js +57 -0
- package/dist/node/build/build.js.map +1 -0
- package/dist/node/build/buildMPAClient.js +44 -0
- package/dist/node/build/buildMPAClient.js.map +1 -0
- package/dist/node/build/bundle.js +163 -0
- package/dist/node/build/bundle.js.map +1 -0
- package/dist/node/build/render.js +185 -0
- package/dist/node/build/render.js.map +1 -0
- package/dist/node/cli.js +37 -294
- package/dist/node/cli.js.map +1 -0
- package/dist/node/config.js +176 -0
- package/dist/node/config.js.map +1 -0
- package/dist/node/index.d.ts +122 -79
- package/dist/node/index.js +22 -37
- package/dist/node/index.js.map +1 -0
- package/dist/node/markdown/markdown.js +75 -0
- package/dist/node/markdown/markdown.js.map +1 -0
- package/dist/node/markdown/plugins/component.js +86 -0
- package/dist/node/markdown/plugins/component.js.map +1 -0
- package/dist/node/markdown/plugins/containers.js +41 -0
- package/dist/node/markdown/plugins/containers.js.map +1 -0
- package/dist/node/markdown/plugins/headings.js +25 -0
- package/dist/node/markdown/plugins/headings.js.map +1 -0
- package/dist/node/markdown/plugins/highlight.js +53 -0
- package/dist/node/markdown/plugins/highlight.js.map +1 -0
- package/dist/node/markdown/plugins/highlightLines.js +48 -0
- package/dist/node/markdown/plugins/highlightLines.js.map +1 -0
- package/dist/node/markdown/plugins/hoist.js +22 -0
- package/dist/node/markdown/plugins/hoist.js.map +1 -0
- package/dist/node/markdown/plugins/image.js +17 -0
- package/dist/node/markdown/plugins/image.js.map +1 -0
- package/dist/node/markdown/plugins/lineNumbers.js +23 -0
- package/dist/node/markdown/plugins/lineNumbers.js.map +1 -0
- package/dist/node/markdown/plugins/link.js +85 -0
- package/dist/node/markdown/plugins/link.js.map +1 -0
- package/dist/node/markdown/plugins/preWrapper.js +22 -0
- package/dist/node/markdown/plugins/preWrapper.js.map +1 -0
- package/dist/node/markdown/plugins/slugify.js +26 -0
- package/dist/node/markdown/plugins/slugify.js.map +1 -0
- package/dist/node/markdown/plugins/snippet.js +146 -0
- package/dist/node/markdown/plugins/snippet.js.map +1 -0
- package/dist/node/markdownToVue.js +166 -0
- package/dist/node/markdownToVue.js.map +1 -0
- package/dist/node/plugin.js +227 -0
- package/dist/node/plugin.js.map +1 -0
- package/dist/node/serve/serve.js +59 -0
- package/dist/node/serve/serve.js.map +1 -0
- package/dist/node/{serve-777539c0.js → serve-b5dc02b2.js} +27 -2
- package/dist/node/server.js +18 -0
- package/dist/node/server.js.map +1 -0
- package/dist/node/shared.js +72 -0
- package/dist/node/shared.js.map +1 -0
- package/dist/node/staticDataPlugin.js +99 -0
- package/dist/node/staticDataPlugin.js.map +1 -0
- package/dist/node/utils/getGitTimestamp.js +17 -0
- package/dist/node/utils/getGitTimestamp.js.map +1 -0
- package/dist/node/utils/parseHeader.js +57 -0
- package/dist/node/utils/parseHeader.js.map +1 -0
- package/dist/node/utils/slash.js +8 -0
- package/dist/node/utils/slash.js.map +1 -0
- package/package.json +31 -25
- package/types/default-theme.d.ts +115 -78
- package/types/shared.d.ts +11 -6
- package/dist/client/theme-default/components/AlgoliaSearchBox.vue +0 -188
- package/dist/client/theme-default/components/BuySellAds.vue +0 -152
- package/dist/client/theme-default/components/CarbonAds.vue +0 -99
- package/dist/client/theme-default/components/EditLink.vue +0 -38
- package/dist/client/theme-default/components/Home.vue +0 -31
- package/dist/client/theme-default/components/HomeFeatures.vue +0 -143
- package/dist/client/theme-default/components/HomeFooter.vue +0 -50
- package/dist/client/theme-default/components/HomeHero.vue +0 -161
- package/dist/client/theme-default/components/LastUpdated.vue +0 -60
- package/dist/client/theme-default/components/NavBar.vue +0 -60
- package/dist/client/theme-default/components/NavBarTitle.vue +0 -41
- package/dist/client/theme-default/components/NavDropdownLink.vue +0 -135
- package/dist/client/theme-default/components/NavDropdownLinkItem.vue +0 -76
- package/dist/client/theme-default/components/NavLink.vue +0 -61
- package/dist/client/theme-default/components/NavLinks.vue +0 -52
- package/dist/client/theme-default/components/NextAndPrevLinks.vue +0 -88
- package/dist/client/theme-default/components/Page.vue +0 -53
- package/dist/client/theme-default/components/PageFooter.vue +0 -44
- package/dist/client/theme-default/components/SideBar.vue +0 -60
- package/dist/client/theme-default/components/SideBarLink.js +0 -68
- package/dist/client/theme-default/components/SideBarLinks.vue +0 -12
- package/dist/client/theme-default/components/ToggleSideBarButton.vue +0 -46
- package/dist/client/theme-default/components/icons/OutboundLink.vue +0 -31
- package/dist/client/theme-default/composables/activeSidebarLink.js +0 -99
- package/dist/client/theme-default/composables/editLink.js +0 -49
- package/dist/client/theme-default/composables/navLink.js +0 -42
- package/dist/client/theme-default/composables/nextAndPrevLinks.js +0 -37
- package/dist/client/theme-default/composables/repo.js +0 -38
- package/dist/client/theme-default/composables/sideBar.js +0 -57
- package/dist/client/theme-default/styles/code.css +0 -299
- package/dist/client/theme-default/styles/custom-blocks.css +0 -76
- package/dist/client/theme-default/styles/layout.css +0 -236
- package/dist/client/theme-default/styles/sidebar-links.css +0 -107
- package/dist/client/theme-default/support/sideBar.js +0 -46
- package/dist/client/theme-default/utils.js +0 -63
|
@@ -0,0 +1,166 @@
|
|
|
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.createMarkdownToVueRenderFn = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const gray_matter_1 = __importDefault(require("gray-matter"));
|
|
10
|
+
const lru_cache_1 = __importDefault(require("lru-cache"));
|
|
11
|
+
const markdown_1 = require("./markdown/markdown");
|
|
12
|
+
const parseHeader_1 = require("./utils/parseHeader");
|
|
13
|
+
const shared_1 = require("./shared");
|
|
14
|
+
const slash_1 = require("./utils/slash");
|
|
15
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
16
|
+
const debug_1 = __importDefault(require("debug"));
|
|
17
|
+
const getGitTimestamp_1 = require("./utils/getGitTimestamp");
|
|
18
|
+
const debug = (0, debug_1.default)('vitepress:md');
|
|
19
|
+
const cache = new lru_cache_1.default({ max: 1024 });
|
|
20
|
+
const includesRE = /<!--\s*@include:\s*(.*?)\s*-->/g;
|
|
21
|
+
function createMarkdownToVueRenderFn(srcDir, options = {}, pages, userDefines, isBuild = false, base, includeLastUpdatedData = false) {
|
|
22
|
+
const md = (0, markdown_1.createMarkdownRenderer)(srcDir, options, base);
|
|
23
|
+
pages = pages.map((p) => (0, slash_1.slash)(p.replace(/\.md$/, '')));
|
|
24
|
+
const userDefineRegex = userDefines
|
|
25
|
+
? new RegExp(`\\b(${Object.keys(userDefines)
|
|
26
|
+
.map((key) => key.replace(/[-[\]/{}()*+?.\\^$|]/g, '\\$&'))
|
|
27
|
+
.join('|')})`, 'g')
|
|
28
|
+
: null;
|
|
29
|
+
return async (src, file, publicDir) => {
|
|
30
|
+
const relativePath = (0, slash_1.slash)(path_1.default.relative(srcDir, file));
|
|
31
|
+
const dir = path_1.default.dirname(file);
|
|
32
|
+
const cached = cache.get(src);
|
|
33
|
+
if (cached) {
|
|
34
|
+
debug(`[cache hit] ${relativePath}`);
|
|
35
|
+
return cached;
|
|
36
|
+
}
|
|
37
|
+
const start = Date.now();
|
|
38
|
+
// resolve includes
|
|
39
|
+
let includes = [];
|
|
40
|
+
src = src.replace(includesRE, (_, m1) => {
|
|
41
|
+
const includePath = path_1.default.join(dir, m1);
|
|
42
|
+
const content = fs_1.default.readFileSync(includePath, 'utf-8');
|
|
43
|
+
includes.push((0, slash_1.slash)(includePath));
|
|
44
|
+
return content;
|
|
45
|
+
});
|
|
46
|
+
const { content, data: frontmatter } = (0, gray_matter_1.default)(src);
|
|
47
|
+
// reset state before render
|
|
48
|
+
md.__path = file;
|
|
49
|
+
md.__relativePath = relativePath;
|
|
50
|
+
let html = md.render(content);
|
|
51
|
+
const data = md.__data;
|
|
52
|
+
if (isBuild) {
|
|
53
|
+
// avoid env variables being replaced by vite
|
|
54
|
+
html = html
|
|
55
|
+
.replace(/\bimport\.meta/g, 'import.<wbr/>meta')
|
|
56
|
+
.replace(/\bprocess\.env/g, 'process.<wbr/>env');
|
|
57
|
+
// also avoid replacing vite user defines
|
|
58
|
+
if (userDefineRegex) {
|
|
59
|
+
html = html.replace(userDefineRegex, (_) => `${_[0]}<wbr/>${_.slice(1)}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// validate data.links
|
|
63
|
+
const deadLinks = [];
|
|
64
|
+
const recordDeadLink = (url) => {
|
|
65
|
+
console.warn(chalk_1.default.yellow(`\n(!) Found dead link ${chalk_1.default.cyan(url)} in file ${chalk_1.default.white.dim(file)}`));
|
|
66
|
+
deadLinks.push(url);
|
|
67
|
+
};
|
|
68
|
+
if (data.links) {
|
|
69
|
+
const dir = path_1.default.dirname(file);
|
|
70
|
+
for (let url of data.links) {
|
|
71
|
+
if (/\.(?!html|md)\w+($|\?)/i.test(url))
|
|
72
|
+
continue;
|
|
73
|
+
if (url.replace(shared_1.EXTERNAL_URL_RE, '').startsWith('//localhost:')) {
|
|
74
|
+
recordDeadLink(url);
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
url = url.replace(/[?#].*$/, '').replace(/\.(html|md)$/, '');
|
|
78
|
+
if (url.endsWith('/'))
|
|
79
|
+
url += `index`;
|
|
80
|
+
const resolved = decodeURIComponent((0, slash_1.slash)(url.startsWith('/')
|
|
81
|
+
? url.slice(1)
|
|
82
|
+
: path_1.default.relative(srcDir, path_1.default.resolve(dir, url))));
|
|
83
|
+
if (!pages.includes(resolved) &&
|
|
84
|
+
!fs_1.default.existsSync(path_1.default.resolve(dir, publicDir, `${resolved}.html`))) {
|
|
85
|
+
recordDeadLink(url);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
const pageData = {
|
|
90
|
+
title: inferTitle(frontmatter, content),
|
|
91
|
+
description: inferDescription(frontmatter),
|
|
92
|
+
frontmatter,
|
|
93
|
+
headers: data.headers || [],
|
|
94
|
+
relativePath
|
|
95
|
+
};
|
|
96
|
+
if (includeLastUpdatedData) {
|
|
97
|
+
pageData.lastUpdated = await (0, getGitTimestamp_1.getGitTimestamp)(file);
|
|
98
|
+
}
|
|
99
|
+
const vueSrc = genPageDataCode(data.hoistedTags || [], pageData).join('\n') +
|
|
100
|
+
`\n<template><div>${html}</div></template>`;
|
|
101
|
+
debug(`[render] ${file} in ${Date.now() - start}ms.`);
|
|
102
|
+
const result = {
|
|
103
|
+
vueSrc,
|
|
104
|
+
pageData,
|
|
105
|
+
deadLinks,
|
|
106
|
+
includes
|
|
107
|
+
};
|
|
108
|
+
cache.set(src, result);
|
|
109
|
+
return result;
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
exports.createMarkdownToVueRenderFn = createMarkdownToVueRenderFn;
|
|
113
|
+
const scriptRE = /<\/script>/;
|
|
114
|
+
const scriptSetupRE = /<\s*script[^>]*\bsetup\b[^>]*/;
|
|
115
|
+
const scriptClientRe = /<\s*script[^>]*\bclient\b[^>]*/;
|
|
116
|
+
const defaultExportRE = /((?:^|\n|;)\s*)export(\s*)default/;
|
|
117
|
+
const namedDefaultExportRE = /((?:^|\n|;)\s*)export(.+)as(\s*)default/;
|
|
118
|
+
function genPageDataCode(tags, data) {
|
|
119
|
+
const code = `\nexport const __pageData = ${JSON.stringify(JSON.stringify(data))}`;
|
|
120
|
+
const existingScriptIndex = tags.findIndex((tag) => {
|
|
121
|
+
return (scriptRE.test(tag) &&
|
|
122
|
+
!scriptSetupRE.test(tag) &&
|
|
123
|
+
!scriptClientRe.test(tag));
|
|
124
|
+
});
|
|
125
|
+
if (existingScriptIndex > -1) {
|
|
126
|
+
const tagSrc = tags[existingScriptIndex];
|
|
127
|
+
// user has <script> tag inside markdown
|
|
128
|
+
// if it doesn't have export default it will error out on build
|
|
129
|
+
const hasDefaultExport = defaultExportRE.test(tagSrc) || namedDefaultExportRE.test(tagSrc);
|
|
130
|
+
tags[existingScriptIndex] = tagSrc.replace(scriptRE, code + (hasDefaultExport ? `` : `\nexport default{}\n`) + `</script>`);
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
tags.unshift(`<script>${code}\nexport default {}</script>`);
|
|
134
|
+
}
|
|
135
|
+
return tags;
|
|
136
|
+
}
|
|
137
|
+
const inferTitle = (frontmatter, content) => {
|
|
138
|
+
if (frontmatter.title) {
|
|
139
|
+
return (0, parseHeader_1.deeplyParseHeader)(frontmatter.title);
|
|
140
|
+
}
|
|
141
|
+
if (frontmatter.home) {
|
|
142
|
+
return 'Home';
|
|
143
|
+
}
|
|
144
|
+
const match = content.match(/^\s*#+\s+(.*)/m);
|
|
145
|
+
if (match) {
|
|
146
|
+
return (0, parseHeader_1.deeplyParseHeader)(match[1].trim());
|
|
147
|
+
}
|
|
148
|
+
return '';
|
|
149
|
+
};
|
|
150
|
+
const inferDescription = (frontmatter) => {
|
|
151
|
+
const { description, head } = frontmatter;
|
|
152
|
+
if (description !== undefined) {
|
|
153
|
+
return description;
|
|
154
|
+
}
|
|
155
|
+
return (head && getHeadMetaContent(head, 'description')) || '';
|
|
156
|
+
};
|
|
157
|
+
const getHeadMetaContent = (head, name) => {
|
|
158
|
+
if (!head || !head.length) {
|
|
159
|
+
return undefined;
|
|
160
|
+
}
|
|
161
|
+
const meta = head.find(([tag, attrs = {}]) => {
|
|
162
|
+
return tag === 'meta' && attrs.name === name && attrs.content;
|
|
163
|
+
});
|
|
164
|
+
return meta && meta[1].content;
|
|
165
|
+
};
|
|
166
|
+
//# sourceMappingURL=markdownToVue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdownToVue.js","sourceRoot":"","sources":["../../src/node/markdownToVue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,227 @@
|
|
|
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.createVitePressPlugin = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const vite_1 = require("vite");
|
|
9
|
+
const config_1 = require("./config");
|
|
10
|
+
const markdownToVue_1 = require("./markdownToVue");
|
|
11
|
+
const alias_1 = require("./alias");
|
|
12
|
+
const slash_1 = require("./utils/slash");
|
|
13
|
+
const staticDataPlugin_1 = require("./staticDataPlugin");
|
|
14
|
+
const hashRE = /\.(\w+)\.js$/;
|
|
15
|
+
const staticInjectMarkerRE = /\b(const _hoisted_\d+ = \/\*(?:#|@)__PURE__\*\/\s*createStaticVNode)\("(.*)", (\d+)\)/g;
|
|
16
|
+
const staticStripRE = /['"`]__VP_STATIC_START__[^]*?__VP_STATIC_END__['"`]/g;
|
|
17
|
+
const staticRestoreRE = /__VP_STATIC_(START|END)__/g;
|
|
18
|
+
// matches client-side js blocks in MPA mode.
|
|
19
|
+
// in the future we may add different execution strategies like visible or
|
|
20
|
+
// media queries.
|
|
21
|
+
const scriptClientRE = /<script\b[^>]*client\b[^>]*>([^]*?)<\/script>/;
|
|
22
|
+
const isPageChunk = (chunk) => !!(chunk.type === 'chunk' &&
|
|
23
|
+
chunk.isEntry &&
|
|
24
|
+
chunk.facadeModuleId &&
|
|
25
|
+
chunk.facadeModuleId.endsWith('.md'));
|
|
26
|
+
function createVitePressPlugin(root, siteConfig, ssr = false, pageToHashMap, clientJSMap) {
|
|
27
|
+
const { srcDir, configPath, alias, markdown, site, vue: userVuePluginOptions, vite: userViteConfig, pages } = siteConfig;
|
|
28
|
+
let markdownToVue;
|
|
29
|
+
// lazy require plugin-vue to respect NODE_ENV in @vue/compiler-x
|
|
30
|
+
const vuePlugin = require('@vitejs/plugin-vue')({
|
|
31
|
+
include: [/\.vue$/, /\.md$/],
|
|
32
|
+
...userVuePluginOptions
|
|
33
|
+
});
|
|
34
|
+
const processClientJS = (code, id) => {
|
|
35
|
+
return scriptClientRE.test(code)
|
|
36
|
+
? code.replace(scriptClientRE, (_, content) => {
|
|
37
|
+
if (ssr && clientJSMap)
|
|
38
|
+
clientJSMap[id] = content;
|
|
39
|
+
return `\n`.repeat(_.split('\n').length - 1);
|
|
40
|
+
})
|
|
41
|
+
: code;
|
|
42
|
+
};
|
|
43
|
+
let siteData = site;
|
|
44
|
+
let hasDeadLinks = false;
|
|
45
|
+
let config;
|
|
46
|
+
const vitePressPlugin = {
|
|
47
|
+
name: 'vitepress',
|
|
48
|
+
configResolved(resolvedConfig) {
|
|
49
|
+
config = resolvedConfig;
|
|
50
|
+
markdownToVue = (0, markdownToVue_1.createMarkdownToVueRenderFn)(srcDir, markdown, pages, config.define, config.command === 'build', config.base, siteConfig.lastUpdated);
|
|
51
|
+
},
|
|
52
|
+
config() {
|
|
53
|
+
var _a, _b;
|
|
54
|
+
const baseConfig = (0, vite_1.defineConfig)({
|
|
55
|
+
resolve: {
|
|
56
|
+
alias
|
|
57
|
+
},
|
|
58
|
+
define: {
|
|
59
|
+
__CARBON__: !!((_a = site.themeConfig.carbonAds) === null || _a === void 0 ? void 0 : _a.carbon),
|
|
60
|
+
__BSA__: !!((_b = site.themeConfig.carbonAds) === null || _b === void 0 ? void 0 : _b.custom),
|
|
61
|
+
__ALGOLIA__: !!site.themeConfig.algolia
|
|
62
|
+
},
|
|
63
|
+
optimizeDeps: {
|
|
64
|
+
// force include vue to avoid duplicated copies when linked + optimized
|
|
65
|
+
include: ['vue'],
|
|
66
|
+
exclude: ['@docsearch/js']
|
|
67
|
+
},
|
|
68
|
+
server: {
|
|
69
|
+
fs: {
|
|
70
|
+
allow: [alias_1.DIST_CLIENT_PATH, srcDir, process.cwd()]
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
return userViteConfig
|
|
75
|
+
? (0, vite_1.mergeConfig)(userViteConfig, baseConfig)
|
|
76
|
+
: baseConfig;
|
|
77
|
+
},
|
|
78
|
+
resolveId(id) {
|
|
79
|
+
if (id === alias_1.SITE_DATA_REQUEST_PATH) {
|
|
80
|
+
return alias_1.SITE_DATA_REQUEST_PATH;
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
load(id) {
|
|
84
|
+
if (id === alias_1.SITE_DATA_REQUEST_PATH) {
|
|
85
|
+
let data = siteData;
|
|
86
|
+
// head info is not needed by the client in production build
|
|
87
|
+
if (config.command === 'build') {
|
|
88
|
+
data = { ...siteData, head: [] };
|
|
89
|
+
}
|
|
90
|
+
return `export default ${JSON.stringify(JSON.stringify(data))}`;
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
async transform(code, id) {
|
|
94
|
+
if (id.endsWith('.vue')) {
|
|
95
|
+
return processClientJS(code, id);
|
|
96
|
+
}
|
|
97
|
+
else if (id.endsWith('.md')) {
|
|
98
|
+
// transform .md files into vueSrc so plugin-vue can handle it
|
|
99
|
+
const { vueSrc, deadLinks, includes } = await markdownToVue(code, id, config.publicDir);
|
|
100
|
+
if (deadLinks.length) {
|
|
101
|
+
hasDeadLinks = true;
|
|
102
|
+
}
|
|
103
|
+
if (includes.length) {
|
|
104
|
+
includes.forEach((i) => {
|
|
105
|
+
this.addWatchFile(i);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
return processClientJS(vueSrc, id);
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
renderStart() {
|
|
112
|
+
if (hasDeadLinks) {
|
|
113
|
+
throw new Error(`One or more pages contain dead links.`);
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
configureServer(server) {
|
|
117
|
+
if (configPath) {
|
|
118
|
+
server.watcher.add(configPath);
|
|
119
|
+
}
|
|
120
|
+
// serve our index.html after vite history fallback
|
|
121
|
+
return () => {
|
|
122
|
+
server.middlewares.use((req, res, next) => {
|
|
123
|
+
if (req.url.endsWith('.html')) {
|
|
124
|
+
res.statusCode = 200;
|
|
125
|
+
res.setHeader('Content-Type', 'text/html');
|
|
126
|
+
res.end(`
|
|
127
|
+
<!DOCTYPE html>
|
|
128
|
+
<html>
|
|
129
|
+
<head>
|
|
130
|
+
<title></title>
|
|
131
|
+
<meta charset="utf-8">
|
|
132
|
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
133
|
+
<meta name="description" content="">
|
|
134
|
+
</head>
|
|
135
|
+
<body>
|
|
136
|
+
<div id="app"></div>
|
|
137
|
+
<script type="module" src="/@fs/${alias_1.APP_PATH}/index.js"></script>
|
|
138
|
+
</body>
|
|
139
|
+
</html>`);
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
next();
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
},
|
|
146
|
+
renderChunk(code, chunk) {
|
|
147
|
+
if (!ssr && isPageChunk(chunk)) {
|
|
148
|
+
// For each page chunk, inject marker for start/end of static strings.
|
|
149
|
+
// we do this here because in generateBundle the chunks would have been
|
|
150
|
+
// minified and we won't be able to safely locate the strings.
|
|
151
|
+
// Using a regexp relies on specific output from Vue compiler core,
|
|
152
|
+
// which is a reasonable trade-off considering the massive perf win over
|
|
153
|
+
// a full AST parse.
|
|
154
|
+
code = code.replace(staticInjectMarkerRE, '$1("__VP_STATIC_START__$2__VP_STATIC_END__", $3)');
|
|
155
|
+
return code;
|
|
156
|
+
}
|
|
157
|
+
return null;
|
|
158
|
+
},
|
|
159
|
+
generateBundle(_options, bundle) {
|
|
160
|
+
if (ssr) {
|
|
161
|
+
// ssr build:
|
|
162
|
+
// delete all asset chunks
|
|
163
|
+
for (const name in bundle) {
|
|
164
|
+
if (bundle[name].type === 'asset') {
|
|
165
|
+
delete bundle[name];
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
// client build:
|
|
171
|
+
// for each .md entry chunk, adjust its name to its correct path.
|
|
172
|
+
for (const name in bundle) {
|
|
173
|
+
const chunk = bundle[name];
|
|
174
|
+
if (isPageChunk(chunk)) {
|
|
175
|
+
// record page -> hash relations
|
|
176
|
+
const hash = chunk.fileName.match(hashRE)[1];
|
|
177
|
+
pageToHashMap[chunk.name.toLowerCase()] = hash;
|
|
178
|
+
// inject another chunk with the content stripped
|
|
179
|
+
bundle[name + '-lean'] = {
|
|
180
|
+
...chunk,
|
|
181
|
+
fileName: chunk.fileName.replace(/\.js$/, '.lean.js'),
|
|
182
|
+
code: chunk.code.replace(staticStripRE, `""`)
|
|
183
|
+
};
|
|
184
|
+
// remove static markers from original code
|
|
185
|
+
chunk.code = chunk.code.replace(staticRestoreRE, '');
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
},
|
|
190
|
+
async handleHotUpdate(ctx) {
|
|
191
|
+
// handle config hmr
|
|
192
|
+
const { file, read, server } = ctx;
|
|
193
|
+
if (file === configPath) {
|
|
194
|
+
const newData = await (0, config_1.resolveSiteData)(root);
|
|
195
|
+
if (newData.base !== siteData.base) {
|
|
196
|
+
console.warn(`[vitepress]: config.base has changed. Please restart the dev server.`);
|
|
197
|
+
}
|
|
198
|
+
siteData = newData;
|
|
199
|
+
return [server.moduleGraph.getModuleById(alias_1.SITE_DATA_REQUEST_PATH)];
|
|
200
|
+
}
|
|
201
|
+
// hot reload .md files as .vue files
|
|
202
|
+
if (file.endsWith('.md')) {
|
|
203
|
+
const content = await read();
|
|
204
|
+
const { pageData, vueSrc } = await markdownToVue(content, file, config.publicDir);
|
|
205
|
+
// notify the client to update page data
|
|
206
|
+
server.ws.send({
|
|
207
|
+
type: 'custom',
|
|
208
|
+
event: 'vitepress:pageData',
|
|
209
|
+
data: {
|
|
210
|
+
path: `/${(0, slash_1.slash)(path_1.default.relative(srcDir, file))}`,
|
|
211
|
+
pageData
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
// overwrite src so vue plugin can handle the HMR
|
|
215
|
+
ctx.read = () => vueSrc;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
return [
|
|
220
|
+
vitePressPlugin,
|
|
221
|
+
vuePlugin,
|
|
222
|
+
...((userViteConfig === null || userViteConfig === void 0 ? void 0 : userViteConfig.plugins) || []),
|
|
223
|
+
staticDataPlugin_1.staticDataPlugin
|
|
224
|
+
];
|
|
225
|
+
}
|
|
226
|
+
exports.createVitePressPlugin = createVitePressPlugin;
|
|
227
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/node/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
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.serve = void 0;
|
|
7
|
+
const sirv_1 = __importDefault(require("sirv"));
|
|
8
|
+
const compression_1 = __importDefault(require("compression"));
|
|
9
|
+
const config_1 = require("../config");
|
|
10
|
+
const polka_1 = __importDefault(require("polka"));
|
|
11
|
+
function trimChar(str, char) {
|
|
12
|
+
while (str.charAt(0) === char) {
|
|
13
|
+
str = str.substring(1);
|
|
14
|
+
}
|
|
15
|
+
while (str.charAt(str.length - 1) === char) {
|
|
16
|
+
str = str.substring(0, str.length - 1);
|
|
17
|
+
}
|
|
18
|
+
return str;
|
|
19
|
+
}
|
|
20
|
+
async function serve(options = {}) {
|
|
21
|
+
var _a, _b;
|
|
22
|
+
const port = options.port !== undefined ? options.port : 5000;
|
|
23
|
+
const site = await (0, config_1.resolveConfig)(options.root, 'serve', 'production');
|
|
24
|
+
const base = trimChar((_b = (_a = site === null || site === void 0 ? void 0 : site.site) === null || _a === void 0 ? void 0 : _a.base) !== null && _b !== void 0 ? _b : '', '/');
|
|
25
|
+
const compress = (0, compression_1.default)();
|
|
26
|
+
const serve = (0, sirv_1.default)(site.outDir, {
|
|
27
|
+
etag: true,
|
|
28
|
+
single: true,
|
|
29
|
+
maxAge: 31536000,
|
|
30
|
+
immutable: true,
|
|
31
|
+
setHeaders(res, pathname) {
|
|
32
|
+
if (!pathname.includes('/assets/')) {
|
|
33
|
+
// force server validation for non-asset files since they are not
|
|
34
|
+
// fingerprinted.
|
|
35
|
+
res.setHeader('cache-control', 'no-cache');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
if (base) {
|
|
40
|
+
(0, polka_1.default)()
|
|
41
|
+
.use(base, compress, serve)
|
|
42
|
+
.listen(port, (err) => {
|
|
43
|
+
if (err)
|
|
44
|
+
throw err;
|
|
45
|
+
console.log(`Built site served at http://localhost:${port}/${base}/\n`);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
(0, polka_1.default)()
|
|
50
|
+
.use(compress, serve)
|
|
51
|
+
.listen(port, (err) => {
|
|
52
|
+
if (err)
|
|
53
|
+
throw err;
|
|
54
|
+
console.log(`Built site served at http://localhost:${port}/\n`);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.serve = serve;
|
|
59
|
+
//# sourceMappingURL=serve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/node/serve/serve.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAuB;AACvB,8DAAqC;AACrC,sCAAyC;AACzC,kDAAyB;AAEzB,SAAS,QAAQ,CAAC,GAAW,EAAE,IAAY;IACzC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;QAC7B,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;KACvB;IAED,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE;QAC1C,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;KACvC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC;AAOM,KAAK,UAAU,KAAK,CAAC,UAAwB,EAAE;;IACpD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IAC7D,MAAM,IAAI,GAAG,MAAM,IAAA,sBAAa,EAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,CAAA;IACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,0CAAE,IAAI,mCAAI,EAAE,EAAE,GAAG,CAAC,CAAA;IAElD,MAAM,QAAQ,GAAG,IAAA,qBAAW,GAAE,CAAA;IAC9B,MAAM,KAAK,GAAG,IAAA,cAAI,EAAC,IAAI,CAAC,MAAM,EAAE;QAC9B,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,IAAI;QACf,UAAU,CAAC,GAAG,EAAE,QAAQ;YACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAClC,iEAAiE;gBACjE,iBAAiB;gBACjB,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;aAC3C;QACH,CAAC;KACF,CAAC,CAAA;IAEF,IAAI,IAAI,EAAE;QACR,IAAA,eAAK,GAAE;aACJ,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC;aAC1B,MAAM,CAAC,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;YACzB,IAAI,GAAG;gBAAE,MAAM,GAAG,CAAA;YAClB,OAAO,CAAC,GAAG,CAAC,yCAAyC,IAAI,IAAI,IAAI,KAAK,CAAC,CAAA;QACzE,CAAC,CAAC,CAAA;KACL;SAAM;QACL,IAAA,eAAK,GAAE;aACJ,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC;aACpB,MAAM,CAAC,IAAI,EAAE,CAAC,GAAQ,EAAE,EAAE;YACzB,IAAI,GAAG;gBAAE,MAAM,GAAG,CAAA;YAClB,OAAO,CAAC,GAAG,CAAC,yCAAyC,IAAI,KAAK,CAAC,CAAA;QACjE,CAAC,CAAC,CAAA;KACL;AACH,CAAC;AAnCD,sBAmCC"}
|
|
@@ -12249,6 +12249,7 @@ globby$2.exports.gitignore = gitignore;
|
|
|
12249
12249
|
var globby = globby$2.exports;
|
|
12250
12250
|
|
|
12251
12251
|
const EXTERNAL_URL_RE = /^https?:/i;
|
|
12252
|
+
const APPEARANCE_KEY = "vitepress-theme-appearance";
|
|
12252
12253
|
const inBrowser = typeof window !== "undefined";
|
|
12253
12254
|
function findMatchRoot(route, roots) {
|
|
12254
12255
|
roots.sort((a, b) => {
|
|
@@ -13449,19 +13450,41 @@ function isObject$3(value) {
|
|
|
13449
13450
|
return Object.prototype.toString.call(value) === "[object Object]";
|
|
13450
13451
|
}
|
|
13451
13452
|
async function resolveSiteData(root, userConfig, command = "serve", mode = "development") {
|
|
13453
|
+
var _a;
|
|
13452
13454
|
userConfig = userConfig || (await resolveUserConfig(root, command, mode))[0];
|
|
13453
13455
|
return {
|
|
13454
13456
|
lang: userConfig.lang || "en-US",
|
|
13455
13457
|
title: userConfig.title || "VitePress",
|
|
13456
13458
|
description: userConfig.description || "A VitePress site",
|
|
13457
13459
|
base: userConfig.base ? userConfig.base.replace(/([^/])$/, "$1/") : "/",
|
|
13458
|
-
head: userConfig
|
|
13460
|
+
head: resolveSiteDataHead(userConfig),
|
|
13461
|
+
appearance: (_a = userConfig.appearance) != null ? _a : true,
|
|
13459
13462
|
themeConfig: userConfig.themeConfig || {},
|
|
13460
13463
|
locales: userConfig.locales || {},
|
|
13461
13464
|
langs: createLangDictionary(userConfig),
|
|
13462
13465
|
scrollOffset: userConfig.scrollOffset || 90
|
|
13463
13466
|
};
|
|
13464
13467
|
}
|
|
13468
|
+
function resolveSiteDataHead(userConfig) {
|
|
13469
|
+
var _a, _b;
|
|
13470
|
+
const head = (_a = userConfig == null ? void 0 : userConfig.head) != null ? _a : [];
|
|
13471
|
+
if ((_b = userConfig == null ? void 0 : userConfig.appearance) != null ? _b : true) {
|
|
13472
|
+
head.push([
|
|
13473
|
+
"script",
|
|
13474
|
+
{},
|
|
13475
|
+
`
|
|
13476
|
+
;(() => {
|
|
13477
|
+
const saved = localStorage.getItem('${APPEARANCE_KEY}')
|
|
13478
|
+
const prefereDark = window.matchMedia('(prefers-color-scheme: dark)').matches
|
|
13479
|
+
if (!saved || saved === 'auto' ? prefereDark : saved === 'dark') {
|
|
13480
|
+
document.documentElement.classList.add('dark')
|
|
13481
|
+
}
|
|
13482
|
+
})()
|
|
13483
|
+
`
|
|
13484
|
+
]);
|
|
13485
|
+
}
|
|
13486
|
+
return head;
|
|
13487
|
+
}
|
|
13465
13488
|
|
|
13466
13489
|
var toString = Object.prototype.toString;
|
|
13467
13490
|
|
|
@@ -37452,6 +37475,7 @@ function createVitePressPlugin(root, siteConfig, ssr = false, pageToHashMap, cli
|
|
|
37452
37475
|
server.middlewares.use((req, res, next) => {
|
|
37453
37476
|
if (req.url.endsWith(".html")) {
|
|
37454
37477
|
res.statusCode = 200;
|
|
37478
|
+
res.setHeader("Content-Type", "text/html");
|
|
37455
37479
|
res.end(`
|
|
37456
37480
|
<!DOCTYPE html>
|
|
37457
37481
|
<html>
|
|
@@ -40928,6 +40952,7 @@ async function renderPage(config, page, result, appChunk, cssChunk, pageToHashMa
|
|
|
40928
40952
|
}).join("\n ");
|
|
40929
40953
|
const stylesheetLink = cssChunk ? `<link rel="stylesheet" href="${siteData.base}${cssChunk.fileName}">` : "";
|
|
40930
40954
|
const title = pageData.title && pageData.title !== "Home" ? `${pageData.title} | ${siteData.title}` : siteData.title;
|
|
40955
|
+
const description = pageData.description || siteData.description;
|
|
40931
40956
|
const head = addSocialTags(title, ...siteData.head, ...filterOutHeadDescription(pageData.frontmatter.head));
|
|
40932
40957
|
let inlinedScript = "";
|
|
40933
40958
|
if (config.mpa && result) {
|
|
@@ -40948,7 +40973,7 @@ async function renderPage(config, page, result, appChunk, cssChunk, pageToHashMa
|
|
|
40948
40973
|
<meta charset="utf-8">
|
|
40949
40974
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
40950
40975
|
<title>${title}</title>
|
|
40951
|
-
<meta name="description" content="${
|
|
40976
|
+
<meta name="description" content="${description}">
|
|
40952
40977
|
${stylesheetLink}
|
|
40953
40978
|
${preloadLinksString}
|
|
40954
40979
|
${prefetchLinkString}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createServer = void 0;
|
|
4
|
+
const vite_1 = require("vite");
|
|
5
|
+
const config_1 = require("./config");
|
|
6
|
+
const plugin_1 = require("./plugin");
|
|
7
|
+
async function createServer(root = process.cwd(), serverOptions = {}) {
|
|
8
|
+
const config = await (0, config_1.resolveConfig)(root);
|
|
9
|
+
return (0, vite_1.createServer)({
|
|
10
|
+
root: config.srcDir,
|
|
11
|
+
base: config.site.base,
|
|
12
|
+
// logLevel: 'warn',
|
|
13
|
+
plugins: (0, plugin_1.createVitePressPlugin)(root, config),
|
|
14
|
+
server: serverOptions
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
exports.createServer = createServer;
|
|
18
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/node/server.ts"],"names":[],"mappings":";;;AAAA,+BAAsE;AACtE,qCAAwC;AACxC,qCAAgD;AAEzC,KAAK,UAAU,YAAY,CAChC,OAAe,OAAO,CAAC,GAAG,EAAE,EAC5B,gBAA+B,EAAE;IAEjC,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAa,EAAC,IAAI,CAAC,CAAA;IAExC,OAAO,IAAA,mBAAgB,EAAC;QACtB,IAAI,EAAE,MAAM,CAAC,MAAM;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI;QACtB,oBAAoB;QACpB,OAAO,EAAE,IAAA,8BAAqB,EAAC,IAAI,EAAE,MAAM,CAAC;QAC5C,MAAM,EAAE,aAAa;KACtB,CAAC,CAAA;AACJ,CAAC;AAbD,oCAaC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveSiteDataByRoute = exports.createLangDictionary = exports.inBrowser = exports.APPEARANCE_KEY = exports.EXTERNAL_URL_RE = void 0;
|
|
4
|
+
exports.EXTERNAL_URL_RE = /^https?:/i;
|
|
5
|
+
exports.APPEARANCE_KEY = 'vitepress-theme-appearance';
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
exports.inBrowser = typeof window !== 'undefined';
|
|
8
|
+
function findMatchRoot(route, roots) {
|
|
9
|
+
// first match to the routes with the most deep level.
|
|
10
|
+
roots.sort((a, b) => {
|
|
11
|
+
const levelDelta = b.split('/').length - a.split('/').length;
|
|
12
|
+
if (levelDelta !== 0) {
|
|
13
|
+
return levelDelta;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return b.length - a.length;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
for (const r of roots) {
|
|
20
|
+
if (route.startsWith(r))
|
|
21
|
+
return r;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function resolveLocales(locales, route) {
|
|
25
|
+
const localeRoot = findMatchRoot(route, Object.keys(locales));
|
|
26
|
+
return localeRoot ? locales[localeRoot] : undefined;
|
|
27
|
+
}
|
|
28
|
+
function createLangDictionary(siteData) {
|
|
29
|
+
const { locales } = siteData.themeConfig || {};
|
|
30
|
+
const siteLocales = siteData.locales;
|
|
31
|
+
return locales && siteLocales
|
|
32
|
+
? Object.keys(locales).reduce((langs, path) => {
|
|
33
|
+
langs[path] = {
|
|
34
|
+
label: locales[path].label,
|
|
35
|
+
lang: siteLocales[path].lang
|
|
36
|
+
};
|
|
37
|
+
return langs;
|
|
38
|
+
}, {})
|
|
39
|
+
: {};
|
|
40
|
+
}
|
|
41
|
+
exports.createLangDictionary = createLangDictionary;
|
|
42
|
+
// this merges the locales data to the main data by the route
|
|
43
|
+
function resolveSiteDataByRoute(siteData, route) {
|
|
44
|
+
route = cleanRoute(siteData, route);
|
|
45
|
+
const localeData = resolveLocales(siteData.locales || {}, route);
|
|
46
|
+
const localeThemeConfig = resolveLocales(siteData.themeConfig.locales || {}, route);
|
|
47
|
+
// avoid object rest spread since this is going to run in the browser
|
|
48
|
+
// and spread is going to result in polyfill code
|
|
49
|
+
return Object.assign({}, siteData, localeData, {
|
|
50
|
+
themeConfig: Object.assign({}, siteData.themeConfig, localeThemeConfig, {
|
|
51
|
+
// clean the locales to reduce the bundle size
|
|
52
|
+
locales: {}
|
|
53
|
+
}),
|
|
54
|
+
lang: (localeData || siteData).lang,
|
|
55
|
+
// clean the locales to reduce the bundle size
|
|
56
|
+
locales: {},
|
|
57
|
+
langs: createLangDictionary(siteData)
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
exports.resolveSiteDataByRoute = resolveSiteDataByRoute;
|
|
61
|
+
/**
|
|
62
|
+
* Clean up the route by removing the `base` path if it's set in config.
|
|
63
|
+
*/
|
|
64
|
+
function cleanRoute(siteData, route) {
|
|
65
|
+
if (!exports.inBrowser) {
|
|
66
|
+
return route;
|
|
67
|
+
}
|
|
68
|
+
const base = siteData.base;
|
|
69
|
+
const baseWithoutSuffix = base.endsWith('/') ? base.slice(0, -1) : base;
|
|
70
|
+
return route.slice(baseWithoutSuffix.length);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/node/shared.ts"],"names":[],"mappings":"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"}
|