@vuepress/client 2.0.0-rc.26 → 2.0.0-rc.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.d.ts +4 -5
- package/dist/app.js +254 -322
- package/dist/chunk-pbuEa-1d.js +13 -0
- package/dist/constants-COBTj3zj.js +57 -0
- package/dist/index-CNztZIId.d.ts +117 -0
- package/dist/index.d.ts +198 -293
- package/dist/index.js +3 -83
- package/dist/setupDevtools-B3cgI7XH.js +64 -0
- package/dist/utils-_b2e7bpk.js +365 -0
- package/package.json +32 -36
- package/dist/chunk-MLKGABMK.js +0 -9
- package/dist/chunk-XZCIWC7J.js +0 -66
- package/dist/chunk-YWDQ52BP.js +0 -459
- package/dist/createVueAppFunction-onJTVJru.d.ts +0 -9
- package/dist/setupDevtools-QXEOFQJV.js +0 -91
package/dist/app.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import 'vue';
|
|
3
|
-
import 'vue-router';
|
|
1
|
+
import { r as CreateVueAppFunction } from "./index-CNztZIId.js";
|
|
4
2
|
|
|
3
|
+
//#region src/app.d.ts
|
|
5
4
|
declare const createVueApp: CreateVueAppFunction;
|
|
6
|
-
|
|
7
|
-
export { createVueApp };
|
|
5
|
+
//#endregion
|
|
6
|
+
export { createVueApp };
|
package/dist/app.js
CHANGED
|
@@ -1,331 +1,263 @@
|
|
|
1
|
-
import {
|
|
2
|
-
ClientOnly,
|
|
3
|
-
Content,
|
|
4
|
-
RouteLink,
|
|
5
|
-
clientDataSymbol,
|
|
6
|
-
redirects,
|
|
7
|
-
resolveRoute,
|
|
8
|
-
resolvers,
|
|
9
|
-
routes,
|
|
10
|
-
updateHeadSymbol,
|
|
11
|
-
usePageHead,
|
|
12
|
-
usePageLang,
|
|
13
|
-
usePageLayout,
|
|
14
|
-
withBase
|
|
15
|
-
} from "./chunk-YWDQ52BP.js";
|
|
16
|
-
import "./chunk-MLKGABMK.js";
|
|
17
|
-
|
|
18
|
-
// src/app.ts
|
|
1
|
+
import { D as usePageHead, O as usePageLang, R as clientDataSymbol, a as ClientOnly, d as resolveRoute, h as updateHeadSymbol, i as Content, k as usePageLayout, m as routes, p as redirects, r as resolvers, s as RouteLink, t as withBase } from "./utils-_b2e7bpk.js";
|
|
19
2
|
import { clientConfigs } from "@internal/clientConfigs";
|
|
20
|
-
import { createApp, createSSRApp, h } from "vue";
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
import {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
// src/router/createVueRouter.ts
|
|
33
|
-
import { removeEndingSlash } from "@vuepress/shared";
|
|
34
|
-
import {
|
|
35
|
-
START_LOCATION,
|
|
36
|
-
createMemoryHistory,
|
|
37
|
-
createRouter,
|
|
38
|
-
createWebHistory
|
|
39
|
-
} from "vue-router";
|
|
40
|
-
var historyCreator = __VUEPRESS_SSR__ ? createMemoryHistory : createWebHistory;
|
|
41
|
-
var createVueRouter = () => {
|
|
42
|
-
const router = createRouter({
|
|
43
|
-
// it might be an issue of vue-router that have to remove the ending slash
|
|
44
|
-
history: historyCreator(removeEndingSlash(__VUEPRESS_BASE__)),
|
|
45
|
-
routes: [
|
|
46
|
-
{
|
|
47
|
-
name: "vuepress-route",
|
|
48
|
-
path: "/:catchAll(.*)",
|
|
49
|
-
components: {}
|
|
50
|
-
}
|
|
51
|
-
],
|
|
52
|
-
scrollBehavior: (to, _from, savedPosition) => {
|
|
53
|
-
if (savedPosition) return savedPosition;
|
|
54
|
-
if (to.hash) return { el: to.hash };
|
|
55
|
-
return { top: 0 };
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
router.beforeResolve(async (to, from) => {
|
|
59
|
-
if (to.path !== from.path || from === START_LOCATION) {
|
|
60
|
-
const route = resolveRoute(to.fullPath);
|
|
61
|
-
if (route.path !== to.fullPath) {
|
|
62
|
-
return route.path;
|
|
63
|
-
}
|
|
64
|
-
const pageChunk = await route.loader();
|
|
65
|
-
to.meta = {
|
|
66
|
-
// attach route meta
|
|
67
|
-
...route.meta,
|
|
68
|
-
// attach page chunk route meta
|
|
69
|
-
_pageChunk: pageChunk
|
|
70
|
-
};
|
|
71
|
-
} else if (to.path === from.path) {
|
|
72
|
-
to.meta = from.meta;
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
return router;
|
|
3
|
+
import { computed, createApp, createSSRApp, customRef, h, onMounted, provide, shallowRef, useSSRContext, watch } from "vue";
|
|
4
|
+
import { siteData } from "@internal/siteData";
|
|
5
|
+
import { isPlainObject, isString, removeEndingSlash } from "@vuepress/shared";
|
|
6
|
+
import { START_LOCATION, createMemoryHistory, createRouter, createWebHistory } from "vue-router";
|
|
7
|
+
//#region src/internal/siteData.ts
|
|
8
|
+
/**
|
|
9
|
+
* Global site data ref
|
|
10
|
+
*/
|
|
11
|
+
const siteData$1 = shallowRef(siteData);
|
|
12
|
+
if (__VUEPRESS_DEV__ && (import.meta.webpackHot || import.meta.hot)) __VUE_HMR_RUNTIME__.updateSiteData = (data) => {
|
|
13
|
+
siteData$1.value = data;
|
|
76
14
|
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region src/router/createVueRouter.ts
|
|
17
|
+
/**
|
|
18
|
+
* - use `createWebHistory` in dev mode and build mode client bundle
|
|
19
|
+
* - use `createMemoryHistory` in build mode server bundle
|
|
20
|
+
*/
|
|
21
|
+
const historyCreator = __VUEPRESS_SSR__ ? createMemoryHistory : createWebHistory;
|
|
22
|
+
/**
|
|
23
|
+
* Create router instance
|
|
24
|
+
*/
|
|
25
|
+
const createVueRouter = () => {
|
|
26
|
+
const router = createRouter({
|
|
27
|
+
history: historyCreator(removeEndingSlash(__VUEPRESS_BASE__)),
|
|
28
|
+
routes: [{
|
|
29
|
+
name: "vuepress-route",
|
|
30
|
+
path: "/:catchAll(.*)",
|
|
31
|
+
components: {}
|
|
32
|
+
}],
|
|
33
|
+
scrollBehavior: (to, _from, savedPosition) => {
|
|
34
|
+
if (savedPosition) return savedPosition;
|
|
35
|
+
if (to.hash) return { el: to.hash };
|
|
36
|
+
return { top: 0 };
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
router.beforeResolve(async (to, from) => {
|
|
40
|
+
if (to.path !== from.path || from === START_LOCATION) {
|
|
41
|
+
const route = resolveRoute(to.fullPath);
|
|
42
|
+
if (route.path !== to.fullPath) return route.path;
|
|
43
|
+
const pageChunk = await route.loader();
|
|
44
|
+
to.meta = {
|
|
45
|
+
...route.meta,
|
|
46
|
+
_pageChunk: pageChunk
|
|
47
|
+
};
|
|
48
|
+
} else if (to.path === from.path) to.meta = from.meta;
|
|
49
|
+
});
|
|
50
|
+
return router;
|
|
83
51
|
};
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
},
|
|
94
|
-
set(value) {
|
|
95
|
-
router.currentRoute.value.meta._pageChunk = value;
|
|
96
|
-
trigger();
|
|
97
|
-
}
|
|
98
|
-
}));
|
|
99
|
-
if (__VUEPRESS_DEV__ && (import.meta.webpackHot || import.meta.hot)) {
|
|
100
|
-
__VUE_HMR_RUNTIME__.updatePageData = async (newPageData) => {
|
|
101
|
-
const oldPageChunk = await routes.value[newPageData.path].loader();
|
|
102
|
-
const newPageChunk = { comp: oldPageChunk.comp, data: newPageData };
|
|
103
|
-
routes.value[newPageData.path].loader = async () => Promise.resolve(newPageChunk);
|
|
104
|
-
if (newPageData.path === router.currentRoute.value.meta._pageChunk?.data.path) {
|
|
105
|
-
pageChunk.value = newPageChunk;
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
const layouts = computed(() => resolvers.resolveLayouts(clientConfigs2));
|
|
110
|
-
const routeLocale = computed(
|
|
111
|
-
() => resolvers.resolveRouteLocale(siteData.value.locales, routePath.value)
|
|
112
|
-
);
|
|
113
|
-
const siteLocaleData = computed(
|
|
114
|
-
() => resolvers.resolveSiteLocaleData(siteData.value, routeLocale.value)
|
|
115
|
-
);
|
|
116
|
-
const pageComponent = computed(() => pageChunk.value.comp);
|
|
117
|
-
const pageData = computed(() => pageChunk.value.data);
|
|
118
|
-
const pageFrontmatter = computed(() => pageData.value.frontmatter);
|
|
119
|
-
const pageHeadTitle = computed(
|
|
120
|
-
() => resolvers.resolvePageHeadTitle(pageData.value, siteLocaleData.value)
|
|
121
|
-
);
|
|
122
|
-
const pageHead = computed(
|
|
123
|
-
() => resolvers.resolvePageHead(
|
|
124
|
-
pageHeadTitle.value,
|
|
125
|
-
pageFrontmatter.value,
|
|
126
|
-
siteLocaleData.value
|
|
127
|
-
)
|
|
128
|
-
);
|
|
129
|
-
const pageLang = computed(
|
|
130
|
-
() => resolvers.resolvePageLang(pageData.value, siteLocaleData.value)
|
|
131
|
-
);
|
|
132
|
-
const pageLayout = computed(
|
|
133
|
-
() => resolvers.resolvePageLayout(pageData.value, layouts.value)
|
|
134
|
-
);
|
|
135
|
-
const clientData = {
|
|
136
|
-
layouts,
|
|
137
|
-
pageData,
|
|
138
|
-
pageComponent,
|
|
139
|
-
pageFrontmatter,
|
|
140
|
-
pageHead,
|
|
141
|
-
pageHeadTitle,
|
|
142
|
-
pageLang,
|
|
143
|
-
pageLayout,
|
|
144
|
-
redirects,
|
|
145
|
-
routeLocale,
|
|
146
|
-
routePath,
|
|
147
|
-
routes,
|
|
148
|
-
siteData,
|
|
149
|
-
siteLocaleData,
|
|
150
|
-
/* Aliases */
|
|
151
|
-
frontmatter: pageFrontmatter,
|
|
152
|
-
head: pageHead,
|
|
153
|
-
headTitle: pageHeadTitle,
|
|
154
|
-
lang: pageLang,
|
|
155
|
-
page: pageData,
|
|
156
|
-
site: siteData,
|
|
157
|
-
siteLocale: siteLocaleData
|
|
158
|
-
};
|
|
159
|
-
app.provide(clientDataSymbol, clientData);
|
|
160
|
-
Object.defineProperties(app.config.globalProperties, {
|
|
161
|
-
$pageFrontmatter: { get: () => pageFrontmatter.value },
|
|
162
|
-
$pageHead: { get: () => pageHead.value },
|
|
163
|
-
$pageHeadTitle: { get: () => pageHeadTitle.value },
|
|
164
|
-
$pageLang: { get: () => pageLang.value },
|
|
165
|
-
$pageData: { get: () => pageData.value },
|
|
166
|
-
$routeLocale: { get: () => routeLocale.value },
|
|
167
|
-
$withBase: { get: () => withBase },
|
|
168
|
-
/* Aliases */
|
|
169
|
-
$frontmatter: { get: () => pageFrontmatter.value },
|
|
170
|
-
$head: { get: () => pageHead.value },
|
|
171
|
-
$headTitle: { get: () => pageHeadTitle.value },
|
|
172
|
-
$lang: { get: () => pageLang.value },
|
|
173
|
-
$page: { get: () => pageData.value },
|
|
174
|
-
$site: { get: () => siteData.value },
|
|
175
|
-
$siteLocale: { get: () => siteLocaleData.value }
|
|
176
|
-
});
|
|
177
|
-
return clientData;
|
|
52
|
+
//#endregion
|
|
53
|
+
//#region src/setupGlobalComponents.ts
|
|
54
|
+
/**
|
|
55
|
+
* Register global built-in components
|
|
56
|
+
*/
|
|
57
|
+
const setupGlobalComponents = (app) => {
|
|
58
|
+
app.component("ClientOnly", ClientOnly);
|
|
59
|
+
app.component("Content", Content);
|
|
60
|
+
app.component("RouteLink", RouteLink);
|
|
178
61
|
};
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
62
|
+
//#endregion
|
|
63
|
+
//#region src/setupGlobalComputed.ts
|
|
64
|
+
/**
|
|
65
|
+
* Create and provide global computed
|
|
66
|
+
*/
|
|
67
|
+
const setupGlobalComputed = (app, router, clientConfigs) => {
|
|
68
|
+
const routePath = computed(() => router.currentRoute.value.path);
|
|
69
|
+
const pageChunk = customRef((track, trigger) => ({
|
|
70
|
+
get() {
|
|
71
|
+
track();
|
|
72
|
+
return router.currentRoute.value.meta._pageChunk;
|
|
73
|
+
},
|
|
74
|
+
set(value) {
|
|
75
|
+
router.currentRoute.value.meta._pageChunk = value;
|
|
76
|
+
trigger();
|
|
77
|
+
}
|
|
78
|
+
}));
|
|
79
|
+
if (__VUEPRESS_DEV__ && (import.meta.webpackHot || import.meta.hot)) __VUE_HMR_RUNTIME__.updatePageData = async (newPageData) => {
|
|
80
|
+
const newPageChunk = {
|
|
81
|
+
default: (await routes.value[newPageData.path].loader()).default,
|
|
82
|
+
_pageData: newPageData
|
|
83
|
+
};
|
|
84
|
+
routes.value[newPageData.path].loader = async () => Promise.resolve(newPageChunk);
|
|
85
|
+
if (newPageData.path === router.currentRoute.value.meta._pageChunk?._pageData.path) pageChunk.value = newPageChunk;
|
|
86
|
+
};
|
|
87
|
+
const layouts = computed(() => resolvers.resolveLayouts(clientConfigs));
|
|
88
|
+
const routeLocale = computed(() => resolvers.resolveRouteLocale(siteData$1.value.locales, routePath.value));
|
|
89
|
+
const siteLocaleData = computed(() => resolvers.resolveSiteLocaleData(siteData$1.value, routeLocale.value));
|
|
90
|
+
const pageComponent = computed(() => pageChunk.value.default);
|
|
91
|
+
const pageData = computed(() => pageChunk.value._pageData);
|
|
92
|
+
const pageFrontmatter = computed(() => pageData.value.frontmatter);
|
|
93
|
+
const pageHeadTitle = computed(() => resolvers.resolvePageHeadTitle(pageData.value, siteLocaleData.value));
|
|
94
|
+
const pageHead = computed(() => resolvers.resolvePageHead(pageHeadTitle.value, pageFrontmatter.value, siteLocaleData.value));
|
|
95
|
+
const pageLang = computed(() => resolvers.resolvePageLang(pageData.value, siteLocaleData.value));
|
|
96
|
+
const clientData = {
|
|
97
|
+
layouts,
|
|
98
|
+
pageData,
|
|
99
|
+
pageComponent,
|
|
100
|
+
pageFrontmatter,
|
|
101
|
+
pageHead,
|
|
102
|
+
pageHeadTitle,
|
|
103
|
+
pageLang,
|
|
104
|
+
pageLayout: computed(() => resolvers.resolvePageLayout(pageData.value, layouts.value)),
|
|
105
|
+
redirects,
|
|
106
|
+
routeLocale,
|
|
107
|
+
routePath,
|
|
108
|
+
routes,
|
|
109
|
+
siteData: siteData$1,
|
|
110
|
+
siteLocaleData,
|
|
111
|
+
frontmatter: pageFrontmatter,
|
|
112
|
+
head: pageHead,
|
|
113
|
+
headTitle: pageHeadTitle,
|
|
114
|
+
lang: pageLang,
|
|
115
|
+
page: pageData,
|
|
116
|
+
site: siteData$1,
|
|
117
|
+
siteLocale: siteLocaleData
|
|
118
|
+
};
|
|
119
|
+
app.provide(clientDataSymbol, clientData);
|
|
120
|
+
Object.defineProperties(app.config.globalProperties, {
|
|
121
|
+
$pageFrontmatter: { get: () => pageFrontmatter.value },
|
|
122
|
+
$pageHead: { get: () => pageHead.value },
|
|
123
|
+
$pageHeadTitle: { get: () => pageHeadTitle.value },
|
|
124
|
+
$pageLang: { get: () => pageLang.value },
|
|
125
|
+
$pageData: { get: () => pageData.value },
|
|
126
|
+
$routeLocale: { get: () => routeLocale.value },
|
|
127
|
+
$withBase: { get: () => withBase },
|
|
128
|
+
$frontmatter: { get: () => pageFrontmatter.value },
|
|
129
|
+
$head: { get: () => pageHead.value },
|
|
130
|
+
$headTitle: { get: () => pageHeadTitle.value },
|
|
131
|
+
$lang: { get: () => pageLang.value },
|
|
132
|
+
$page: { get: () => pageData.value },
|
|
133
|
+
$site: { get: () => siteData$1.value },
|
|
134
|
+
$siteLocale: { get: () => siteLocaleData.value }
|
|
135
|
+
});
|
|
136
|
+
return clientData;
|
|
205
137
|
};
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
headElement.setAttribute(key, value);
|
|
219
|
-
} else if (value) {
|
|
220
|
-
headElement.setAttribute(key, "");
|
|
221
|
-
}
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
if (isString(content)) {
|
|
225
|
-
headElement.appendChild(document.createTextNode(content));
|
|
226
|
-
}
|
|
227
|
-
return headElement;
|
|
138
|
+
//#endregion
|
|
139
|
+
//#region src/setupUpdateHead.ts
|
|
140
|
+
/**
|
|
141
|
+
* Query the matched head element of head config
|
|
142
|
+
*/
|
|
143
|
+
const queryHeadElement = ([tagName, attrs, content = ""]) => {
|
|
144
|
+
const selector = `head > ${tagName}${Object.entries(attrs).map(([key, value]) => {
|
|
145
|
+
if (isString(value)) return `[${key}=${JSON.stringify(value)}]`;
|
|
146
|
+
if (value) return `[${key}]`;
|
|
147
|
+
return "";
|
|
148
|
+
}).join("")}`;
|
|
149
|
+
return Array.from(document.querySelectorAll(selector)).find((item) => item.innerText === content) ?? null;
|
|
228
150
|
};
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
const takeOverHeadElements = () => {
|
|
242
|
-
head.value.forEach((item) => {
|
|
243
|
-
const headElement = queryHeadElement(item);
|
|
244
|
-
if (headElement) {
|
|
245
|
-
managedHeadElements.push(headElement);
|
|
246
|
-
}
|
|
247
|
-
});
|
|
248
|
-
};
|
|
249
|
-
const generateHeadElements = () => {
|
|
250
|
-
const result = [];
|
|
251
|
-
head.value.forEach((item) => {
|
|
252
|
-
const headElement = createHeadElement(item);
|
|
253
|
-
if (headElement) {
|
|
254
|
-
result.push(headElement);
|
|
255
|
-
}
|
|
256
|
-
});
|
|
257
|
-
return result;
|
|
258
|
-
};
|
|
259
|
-
const updateHead = () => {
|
|
260
|
-
document.documentElement.lang = lang.value;
|
|
261
|
-
const newHeadElements = generateHeadElements();
|
|
262
|
-
managedHeadElements.forEach((oldEl, oldIndex) => {
|
|
263
|
-
const matchedIndex = newHeadElements.findIndex(
|
|
264
|
-
(newEl) => oldEl.isEqualNode(newEl)
|
|
265
|
-
);
|
|
266
|
-
if (matchedIndex === -1) {
|
|
267
|
-
oldEl.remove();
|
|
268
|
-
delete managedHeadElements[oldIndex];
|
|
269
|
-
} else {
|
|
270
|
-
newHeadElements.splice(matchedIndex, 1);
|
|
271
|
-
}
|
|
272
|
-
});
|
|
273
|
-
newHeadElements.forEach((el) => document.head.appendChild(el));
|
|
274
|
-
managedHeadElements = [
|
|
275
|
-
// filter out empty deleted items
|
|
276
|
-
...managedHeadElements.filter((item) => !!item),
|
|
277
|
-
...newHeadElements
|
|
278
|
-
];
|
|
279
|
-
};
|
|
280
|
-
provide(updateHeadSymbol, updateHead);
|
|
281
|
-
onMounted(() => {
|
|
282
|
-
if (!__VUEPRESS_DEV__) {
|
|
283
|
-
takeOverHeadElements();
|
|
284
|
-
}
|
|
285
|
-
watch(head, updateHead, { immediate: __VUEPRESS_DEV__ });
|
|
286
|
-
});
|
|
151
|
+
/**
|
|
152
|
+
* Create head element from head config
|
|
153
|
+
*/
|
|
154
|
+
const createHeadElement = ([tagName, attrs, content]) => {
|
|
155
|
+
if (!isString(tagName)) return null;
|
|
156
|
+
const headElement = document.createElement(tagName);
|
|
157
|
+
if (isPlainObject(attrs)) Object.entries(attrs).forEach(([key, value]) => {
|
|
158
|
+
if (isString(value)) headElement.setAttribute(key, value);
|
|
159
|
+
else if (value) headElement.setAttribute(key, "");
|
|
160
|
+
});
|
|
161
|
+
if (isString(content)) headElement.appendChild(document.createTextNode(content));
|
|
162
|
+
return headElement;
|
|
287
163
|
};
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
164
|
+
/**
|
|
165
|
+
* Auto update head and provide as global util
|
|
166
|
+
*/
|
|
167
|
+
const setupUpdateHead = () => {
|
|
168
|
+
const head = usePageHead();
|
|
169
|
+
const lang = usePageLang();
|
|
170
|
+
if (__VUEPRESS_SSR__) {
|
|
171
|
+
const ssrContext = useSSRContext();
|
|
172
|
+
if (ssrContext) {
|
|
173
|
+
ssrContext.head = head.value;
|
|
174
|
+
ssrContext.lang = lang.value;
|
|
175
|
+
}
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
let managedHeadElements = [];
|
|
179
|
+
/**
|
|
180
|
+
* Take over the existing head elements
|
|
181
|
+
*/
|
|
182
|
+
const takeOverHeadElements = () => {
|
|
183
|
+
head.value.forEach((item) => {
|
|
184
|
+
const headElement = queryHeadElement(item);
|
|
185
|
+
if (headElement) managedHeadElements.push(headElement);
|
|
186
|
+
});
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* Generate head elements from current head config
|
|
190
|
+
*/
|
|
191
|
+
const generateHeadElements = () => {
|
|
192
|
+
const result = [];
|
|
193
|
+
head.value.forEach((item) => {
|
|
194
|
+
const headElement = createHeadElement(item);
|
|
195
|
+
if (headElement) result.push(headElement);
|
|
196
|
+
});
|
|
197
|
+
return result;
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* Update head elements
|
|
201
|
+
*/
|
|
202
|
+
const updateHead = () => {
|
|
203
|
+
document.documentElement.lang = lang.value;
|
|
204
|
+
const newHeadElements = generateHeadElements();
|
|
205
|
+
managedHeadElements.forEach((oldEl, oldIndex) => {
|
|
206
|
+
const matchedIndex = newHeadElements.findIndex((newEl) => oldEl.isEqualNode(newEl));
|
|
207
|
+
if (matchedIndex === -1) {
|
|
208
|
+
oldEl.remove();
|
|
209
|
+
delete managedHeadElements[oldIndex];
|
|
210
|
+
} else newHeadElements.splice(matchedIndex, 1);
|
|
211
|
+
});
|
|
212
|
+
newHeadElements.forEach((el) => document.head.appendChild(el));
|
|
213
|
+
managedHeadElements = [...managedHeadElements.filter((item) => !!item), ...newHeadElements];
|
|
214
|
+
};
|
|
215
|
+
provide(updateHeadSymbol, updateHead);
|
|
216
|
+
onMounted(() => {
|
|
217
|
+
if (!__VUEPRESS_DEV__) takeOverHeadElements();
|
|
218
|
+
watch(head, updateHead, { immediate: __VUEPRESS_DEV__ });
|
|
219
|
+
});
|
|
321
220
|
};
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
221
|
+
//#endregion
|
|
222
|
+
//#region src/app.ts
|
|
223
|
+
/**
|
|
224
|
+
* - use `createApp` in dev mode
|
|
225
|
+
* - use `createSSRApp` in build mode
|
|
226
|
+
*/
|
|
227
|
+
const appCreator = __VUEPRESS_DEV__ ? createApp : createSSRApp;
|
|
228
|
+
const createVueApp = async () => {
|
|
229
|
+
const app = appCreator({
|
|
230
|
+
name: "Vuepress",
|
|
231
|
+
setup() {
|
|
232
|
+
setupUpdateHead();
|
|
233
|
+
for (const clientConfig of clientConfigs) clientConfig.setup?.();
|
|
234
|
+
const clientRootComponents = clientConfigs.flatMap(({ rootComponents = [] }) => rootComponents.map((component) => h(component)));
|
|
235
|
+
const pageLayout = usePageLayout();
|
|
236
|
+
return () => [h(pageLayout.value), clientRootComponents];
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
const router = createVueRouter();
|
|
240
|
+
setupGlobalComponents(app);
|
|
241
|
+
const globalComputed = setupGlobalComputed(app, router, clientConfigs);
|
|
242
|
+
if (__VUEPRESS_DEV__ || __VUE_PROD_DEVTOOLS__) {
|
|
243
|
+
const { setupDevtools } = await import("./setupDevtools-B3cgI7XH.js");
|
|
244
|
+
setupDevtools(app, globalComputed);
|
|
245
|
+
}
|
|
246
|
+
for (const clientConfig of clientConfigs) await clientConfig.enhance?.({
|
|
247
|
+
app,
|
|
248
|
+
router,
|
|
249
|
+
siteData: siteData$1
|
|
250
|
+
});
|
|
251
|
+
app.use(router);
|
|
252
|
+
return {
|
|
253
|
+
app,
|
|
254
|
+
router
|
|
255
|
+
};
|
|
331
256
|
};
|
|
257
|
+
if (!__VUEPRESS_SSR__) createVueApp().then(({ app, router }) => {
|
|
258
|
+
router.isReady().then(() => {
|
|
259
|
+
app.mount("#app");
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
//#endregion
|
|
263
|
+
export { createVueApp };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __exportAll = (all, no_symbols) => {
|
|
4
|
+
let target = {};
|
|
5
|
+
for (var name in all) __defProp(target, name, {
|
|
6
|
+
get: all[name],
|
|
7
|
+
enumerable: true
|
|
8
|
+
});
|
|
9
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
10
|
+
return target;
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { __exportAll as t };
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { t as __exportAll } from "./chunk-pbuEa-1d.js";
|
|
2
|
+
//#region src/devtools/constants.ts
|
|
3
|
+
var constants_exports = /* @__PURE__ */ __exportAll({
|
|
4
|
+
COMPONENT_STATE_TYPE: () => COMPONENT_STATE_TYPE,
|
|
5
|
+
INSPECTOR_ID: () => INSPECTOR_ID,
|
|
6
|
+
INSPECTOR_LABEL: () => INSPECTOR_LABEL,
|
|
7
|
+
INSPECTOR_NODES: () => INSPECTOR_NODES,
|
|
8
|
+
INSPECTOR_STATE_SECTION_NAME: () => INSPECTOR_STATE_SECTION_NAME,
|
|
9
|
+
PLUGIN_ID: () => PLUGIN_ID,
|
|
10
|
+
PLUGIN_LABEL: () => PLUGIN_LABEL
|
|
11
|
+
});
|
|
12
|
+
const PLUGIN_ID = "org.vuejs.vuepress";
|
|
13
|
+
const PLUGIN_LABEL = "VuePress";
|
|
14
|
+
const COMPONENT_STATE_TYPE = PLUGIN_LABEL;
|
|
15
|
+
const INSPECTOR_ID = PLUGIN_ID;
|
|
16
|
+
const INSPECTOR_LABEL = PLUGIN_LABEL;
|
|
17
|
+
const INSPECTOR_NODE_INTERNAL = {
|
|
18
|
+
id: "INTERNAL",
|
|
19
|
+
label: "Internal",
|
|
20
|
+
keys: [
|
|
21
|
+
"layouts",
|
|
22
|
+
"routes",
|
|
23
|
+
"redirects"
|
|
24
|
+
]
|
|
25
|
+
};
|
|
26
|
+
const INSPECTOR_NODE_SITE = {
|
|
27
|
+
id: "SITE",
|
|
28
|
+
label: "Site",
|
|
29
|
+
keys: ["siteData", "siteLocaleData"]
|
|
30
|
+
};
|
|
31
|
+
const INSPECTOR_NODE_ROUTE = {
|
|
32
|
+
id: "ROUTE",
|
|
33
|
+
label: "Route",
|
|
34
|
+
keys: ["routePath", "routeLocale"]
|
|
35
|
+
};
|
|
36
|
+
const INSPECTOR_NODE_PAGE = {
|
|
37
|
+
id: "PAGE",
|
|
38
|
+
label: "Page",
|
|
39
|
+
keys: [
|
|
40
|
+
"pageData",
|
|
41
|
+
"pageFrontmatter",
|
|
42
|
+
"pageLang",
|
|
43
|
+
"pageHead",
|
|
44
|
+
"pageHeadTitle",
|
|
45
|
+
"pageLayout",
|
|
46
|
+
"pageComponent"
|
|
47
|
+
]
|
|
48
|
+
};
|
|
49
|
+
const INSPECTOR_NODES = {
|
|
50
|
+
[INSPECTOR_NODE_INTERNAL.id]: INSPECTOR_NODE_INTERNAL,
|
|
51
|
+
[INSPECTOR_NODE_SITE.id]: INSPECTOR_NODE_SITE,
|
|
52
|
+
[INSPECTOR_NODE_ROUTE.id]: INSPECTOR_NODE_ROUTE,
|
|
53
|
+
[INSPECTOR_NODE_PAGE.id]: INSPECTOR_NODE_PAGE
|
|
54
|
+
};
|
|
55
|
+
const INSPECTOR_STATE_SECTION_NAME = "State";
|
|
56
|
+
//#endregion
|
|
57
|
+
export { INSPECTOR_STATE_SECTION_NAME as a, constants_exports as c, INSPECTOR_NODES as i, INSPECTOR_ID as n, PLUGIN_ID as o, INSPECTOR_LABEL as r, PLUGIN_LABEL as s, COMPONENT_STATE_TYPE as t };
|