@vuepress/client 2.0.0-beta.57 → 2.0.0-beta.59
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.js +63 -84
- package/dist/{chunk-5XHTLU25.js → chunk-2OYZ7FSR.js} +74 -15
- package/dist/index.d.ts +72 -42
- package/dist/index.js +9 -1
- package/package.json +2 -2
package/dist/app.js
CHANGED
|
@@ -1,23 +1,26 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ClientOnly,
|
|
3
3
|
Content,
|
|
4
|
+
layoutsSymbol,
|
|
4
5
|
pageData,
|
|
5
6
|
pageFrontmatterSymbol,
|
|
6
7
|
pageHeadSymbol,
|
|
7
8
|
pageHeadTitleSymbol,
|
|
8
9
|
pageLangSymbol,
|
|
10
|
+
pageLayoutSymbol,
|
|
9
11
|
resolvers,
|
|
10
12
|
routeLocaleSymbol,
|
|
11
13
|
siteData,
|
|
12
14
|
siteLocaleDataSymbol,
|
|
13
15
|
updateHeadSymbol,
|
|
14
|
-
usePageData,
|
|
15
16
|
usePageHead,
|
|
16
17
|
usePageLang,
|
|
18
|
+
usePageLayout,
|
|
17
19
|
withBase
|
|
18
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-2OYZ7FSR.js";
|
|
19
21
|
|
|
20
22
|
// src/app.ts
|
|
23
|
+
import { clientConfigs } from "@internal/clientConfigs";
|
|
21
24
|
import { createApp, createSSRApp, h as h2 } from "vue";
|
|
22
25
|
import { RouterView } from "vue-router";
|
|
23
26
|
|
|
@@ -35,78 +38,47 @@ import {
|
|
|
35
38
|
import { pagesRoutes } from "@internal/pagesRoutes";
|
|
36
39
|
|
|
37
40
|
// src/components/Vuepress.ts
|
|
38
|
-
import {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
...prev,
|
|
47
|
-
...item.layouts
|
|
48
|
-
}),
|
|
49
|
-
{}
|
|
50
|
-
);
|
|
51
|
-
const Vuepress = defineComponent({
|
|
52
|
-
name: "Vuepress",
|
|
53
|
-
setup() {
|
|
54
|
-
const page = usePageData();
|
|
55
|
-
const layoutComponent = computed(() => {
|
|
56
|
-
let layoutName;
|
|
57
|
-
if (page.value.path) {
|
|
58
|
-
const frontmatterLayout = page.value.frontmatter.layout;
|
|
59
|
-
if (isString(frontmatterLayout)) {
|
|
60
|
-
layoutName = frontmatterLayout;
|
|
61
|
-
} else {
|
|
62
|
-
layoutName = LAYOUT_NAME_DEFAULT;
|
|
63
|
-
}
|
|
64
|
-
} else {
|
|
65
|
-
layoutName = LAYOUT_NAME_NOT_FOUND;
|
|
66
|
-
}
|
|
67
|
-
return layouts[layoutName];
|
|
68
|
-
});
|
|
69
|
-
return () => h(layoutComponent.value);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
return Vuepress;
|
|
73
|
-
};
|
|
41
|
+
import { defineComponent, h } from "vue";
|
|
42
|
+
var Vuepress = defineComponent({
|
|
43
|
+
name: "Vuepress",
|
|
44
|
+
setup() {
|
|
45
|
+
const layout = usePageLayout();
|
|
46
|
+
return () => h(layout.value);
|
|
47
|
+
}
|
|
48
|
+
});
|
|
74
49
|
|
|
75
50
|
// src/routes.ts
|
|
76
|
-
var createRoutes =
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
(result, [name, path, meta, redirects]) => {
|
|
80
|
-
result.push(
|
|
81
|
-
{
|
|
82
|
-
name,
|
|
83
|
-
path,
|
|
84
|
-
component: Vuepress,
|
|
85
|
-
meta
|
|
86
|
-
},
|
|
87
|
-
...redirects.map((item) => ({
|
|
88
|
-
path: item,
|
|
89
|
-
redirect: path
|
|
90
|
-
}))
|
|
91
|
-
);
|
|
92
|
-
return result;
|
|
93
|
-
},
|
|
94
|
-
[
|
|
51
|
+
var createRoutes = () => pagesRoutes.reduce(
|
|
52
|
+
(result, [name, path, meta, redirects]) => {
|
|
53
|
+
result.push(
|
|
95
54
|
{
|
|
96
|
-
name
|
|
97
|
-
path
|
|
98
|
-
component: Vuepress
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
55
|
+
name,
|
|
56
|
+
path,
|
|
57
|
+
component: Vuepress,
|
|
58
|
+
meta
|
|
59
|
+
},
|
|
60
|
+
...redirects.map((item) => ({
|
|
61
|
+
path: item,
|
|
62
|
+
redirect: path
|
|
63
|
+
}))
|
|
64
|
+
);
|
|
65
|
+
return result;
|
|
66
|
+
},
|
|
67
|
+
[
|
|
68
|
+
{
|
|
69
|
+
name: "404",
|
|
70
|
+
path: "/:catchAll(.*)",
|
|
71
|
+
component: Vuepress
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
);
|
|
103
75
|
|
|
104
76
|
// src/router.ts
|
|
105
77
|
var historyCreator = __VUEPRESS_SSR__ ? createMemoryHistory : createWebHistory;
|
|
106
|
-
var createVueRouter =
|
|
78
|
+
var createVueRouter = () => {
|
|
107
79
|
const router = createRouter({
|
|
108
80
|
history: historyCreator(removeEndingSlash(__VUEPRESS_BASE__)),
|
|
109
|
-
routes:
|
|
81
|
+
routes: createRoutes(),
|
|
110
82
|
scrollBehavior: (to, from, savedPosition) => {
|
|
111
83
|
if (savedPosition)
|
|
112
84
|
return savedPosition;
|
|
@@ -134,37 +106,43 @@ var setupGlobalComponents = (app) => {
|
|
|
134
106
|
};
|
|
135
107
|
|
|
136
108
|
// src/setupGlobalComputed.ts
|
|
137
|
-
import { computed
|
|
138
|
-
var setupGlobalComputed = (app, router) => {
|
|
139
|
-
const
|
|
109
|
+
import { computed } from "vue";
|
|
110
|
+
var setupGlobalComputed = (app, router, clientConfigs2) => {
|
|
111
|
+
const layouts = computed(() => resolvers.resolveLayouts(clientConfigs2));
|
|
112
|
+
const routeLocale = computed(
|
|
140
113
|
() => resolvers.resolveRouteLocale(
|
|
141
114
|
siteData.value.locales,
|
|
142
115
|
router.currentRoute.value.path
|
|
143
116
|
)
|
|
144
117
|
);
|
|
145
|
-
const siteLocaleData =
|
|
118
|
+
const siteLocaleData = computed(
|
|
146
119
|
() => resolvers.resolveSiteLocaleData(siteData.value, routeLocale.value)
|
|
147
120
|
);
|
|
148
|
-
const pageFrontmatter =
|
|
121
|
+
const pageFrontmatter = computed(
|
|
149
122
|
() => resolvers.resolvePageFrontmatter(pageData.value)
|
|
150
123
|
);
|
|
151
|
-
const pageHeadTitle =
|
|
124
|
+
const pageHeadTitle = computed(
|
|
152
125
|
() => resolvers.resolvePageHeadTitle(pageData.value, siteLocaleData.value)
|
|
153
126
|
);
|
|
154
|
-
const pageHead =
|
|
127
|
+
const pageHead = computed(
|
|
155
128
|
() => resolvers.resolvePageHead(
|
|
156
129
|
pageHeadTitle.value,
|
|
157
130
|
pageFrontmatter.value,
|
|
158
131
|
siteLocaleData.value
|
|
159
132
|
)
|
|
160
133
|
);
|
|
161
|
-
const pageLang =
|
|
162
|
-
|
|
163
|
-
|
|
134
|
+
const pageLang = computed(() => resolvers.resolvePageLang(pageData.value));
|
|
135
|
+
const pageLayout = computed(
|
|
136
|
+
() => resolvers.resolvePageLayout(pageData.value, layouts.value)
|
|
137
|
+
);
|
|
138
|
+
app.provide(layoutsSymbol, layouts);
|
|
164
139
|
app.provide(pageFrontmatterSymbol, pageFrontmatter);
|
|
165
140
|
app.provide(pageHeadTitleSymbol, pageHeadTitle);
|
|
166
141
|
app.provide(pageHeadSymbol, pageHead);
|
|
167
142
|
app.provide(pageLangSymbol, pageLang);
|
|
143
|
+
app.provide(pageLayoutSymbol, pageLayout);
|
|
144
|
+
app.provide(routeLocaleSymbol, routeLocale);
|
|
145
|
+
app.provide(siteLocaleDataSymbol, siteLocaleData);
|
|
168
146
|
Object.defineProperties(app.config.globalProperties, {
|
|
169
147
|
$frontmatter: { get: () => pageFrontmatter.value },
|
|
170
148
|
$head: { get: () => pageHead.value },
|
|
@@ -177,11 +155,13 @@ var setupGlobalComputed = (app, router) => {
|
|
|
177
155
|
$withBase: { get: () => withBase }
|
|
178
156
|
});
|
|
179
157
|
return {
|
|
158
|
+
layouts,
|
|
180
159
|
pageData,
|
|
181
160
|
pageFrontmatter,
|
|
182
161
|
pageHead,
|
|
183
162
|
pageHeadTitle,
|
|
184
163
|
pageLang,
|
|
164
|
+
pageLayout,
|
|
185
165
|
routeLocale,
|
|
186
166
|
siteData,
|
|
187
167
|
siteLocaleData
|
|
@@ -189,7 +169,7 @@ var setupGlobalComputed = (app, router) => {
|
|
|
189
169
|
};
|
|
190
170
|
|
|
191
171
|
// src/setupUpdateHead.ts
|
|
192
|
-
import { isPlainObject, isString
|
|
172
|
+
import { isPlainObject, isString } from "@vuepress/shared";
|
|
193
173
|
import { onMounted, provide, ref, useSSRContext, watch } from "vue";
|
|
194
174
|
import { useRoute } from "vue-router";
|
|
195
175
|
var setupUpdateHead = () => {
|
|
@@ -245,7 +225,7 @@ var queryHeadTag = ([
|
|
|
245
225
|
content = ""
|
|
246
226
|
]) => {
|
|
247
227
|
const attrsSelector = Object.entries(attrs).map(([key, value]) => {
|
|
248
|
-
if (
|
|
228
|
+
if (isString(value)) {
|
|
249
229
|
return `[${key}=${JSON.stringify(value)}]`;
|
|
250
230
|
}
|
|
251
231
|
if (value === true) {
|
|
@@ -263,20 +243,20 @@ var createHeadTag = ([
|
|
|
263
243
|
attrs,
|
|
264
244
|
content
|
|
265
245
|
]) => {
|
|
266
|
-
if (!
|
|
246
|
+
if (!isString(tagName)) {
|
|
267
247
|
return null;
|
|
268
248
|
}
|
|
269
249
|
const tag = document.createElement(tagName);
|
|
270
250
|
if (isPlainObject(attrs)) {
|
|
271
251
|
Object.entries(attrs).forEach(([key, value]) => {
|
|
272
|
-
if (
|
|
252
|
+
if (isString(value)) {
|
|
273
253
|
tag.setAttribute(key, value);
|
|
274
254
|
} else if (value === true) {
|
|
275
255
|
tag.setAttribute(key, "");
|
|
276
256
|
}
|
|
277
257
|
});
|
|
278
258
|
}
|
|
279
|
-
if (
|
|
259
|
+
if (isString(content)) {
|
|
280
260
|
tag.appendChild(document.createTextNode(content));
|
|
281
261
|
}
|
|
282
262
|
return tag;
|
|
@@ -285,7 +265,6 @@ var createHeadTag = ([
|
|
|
285
265
|
// src/app.ts
|
|
286
266
|
var appCreator = __VUEPRESS_DEV__ ? createApp : createSSRApp;
|
|
287
267
|
var createVueApp = async () => {
|
|
288
|
-
const { clientConfigs } = await import("@internal/clientConfigs");
|
|
289
268
|
const app = appCreator({
|
|
290
269
|
name: "VuepressApp",
|
|
291
270
|
setup() {
|
|
@@ -301,9 +280,9 @@ var createVueApp = async () => {
|
|
|
301
280
|
];
|
|
302
281
|
}
|
|
303
282
|
});
|
|
304
|
-
const router =
|
|
283
|
+
const router = createVueRouter();
|
|
305
284
|
setupGlobalComponents(app);
|
|
306
|
-
const globalComputed = setupGlobalComputed(app, router);
|
|
285
|
+
const globalComputed = setupGlobalComputed(app, router, clientConfigs);
|
|
307
286
|
if (__VUEPRESS_DEV__ || __VUE_PROD_DEVTOOLS__) {
|
|
308
287
|
const { setupDevtools } = await import("./setupDevtools-EXVHPMXB.js");
|
|
309
288
|
setupDevtools(app, globalComputed);
|
|
@@ -1,3 +1,16 @@
|
|
|
1
|
+
// src/composables/layouts.ts
|
|
2
|
+
import { inject } from "vue";
|
|
3
|
+
var layoutsSymbol = Symbol(
|
|
4
|
+
__VUEPRESS_DEV__ ? "layouts" : ""
|
|
5
|
+
);
|
|
6
|
+
var useLayouts = () => {
|
|
7
|
+
const layouts = inject(layoutsSymbol);
|
|
8
|
+
if (!layouts) {
|
|
9
|
+
throw new Error("useLayouts() is called without provider.");
|
|
10
|
+
}
|
|
11
|
+
return layouts;
|
|
12
|
+
};
|
|
13
|
+
|
|
1
14
|
// src/composables/pagesData.ts
|
|
2
15
|
import { pagesData as pagesDataRaw } from "@internal/pagesData";
|
|
3
16
|
import { ref } from "vue";
|
|
@@ -26,12 +39,12 @@ if (__VUEPRESS_DEV__ && (import.meta.webpackHot || import.meta.hot)) {
|
|
|
26
39
|
}
|
|
27
40
|
|
|
28
41
|
// src/composables/pageFrontmatter.ts
|
|
29
|
-
import { inject } from "vue";
|
|
42
|
+
import { inject as inject2 } from "vue";
|
|
30
43
|
var pageFrontmatterSymbol = Symbol(
|
|
31
44
|
__VUEPRESS_DEV__ ? "pageFrontmatter" : ""
|
|
32
45
|
);
|
|
33
46
|
var usePageFrontmatter = () => {
|
|
34
|
-
const pageFrontmatter =
|
|
47
|
+
const pageFrontmatter = inject2(pageFrontmatterSymbol);
|
|
35
48
|
if (!pageFrontmatter) {
|
|
36
49
|
throw new Error("usePageFrontmatter() is called without provider.");
|
|
37
50
|
}
|
|
@@ -39,12 +52,12 @@ var usePageFrontmatter = () => {
|
|
|
39
52
|
};
|
|
40
53
|
|
|
41
54
|
// src/composables/pageHead.ts
|
|
42
|
-
import { inject as
|
|
55
|
+
import { inject as inject3 } from "vue";
|
|
43
56
|
var pageHeadSymbol = Symbol(
|
|
44
57
|
__VUEPRESS_DEV__ ? "pageHead" : ""
|
|
45
58
|
);
|
|
46
59
|
var usePageHead = () => {
|
|
47
|
-
const pageHead =
|
|
60
|
+
const pageHead = inject3(pageHeadSymbol);
|
|
48
61
|
if (!pageHead) {
|
|
49
62
|
throw new Error("usePageHead() is called without provider.");
|
|
50
63
|
}
|
|
@@ -52,12 +65,12 @@ var usePageHead = () => {
|
|
|
52
65
|
};
|
|
53
66
|
|
|
54
67
|
// src/composables/pageHeadTitle.ts
|
|
55
|
-
import { inject as
|
|
68
|
+
import { inject as inject4 } from "vue";
|
|
56
69
|
var pageHeadTitleSymbol = Symbol(
|
|
57
70
|
__VUEPRESS_DEV__ ? "pageHeadTitle" : ""
|
|
58
71
|
);
|
|
59
72
|
var usePageHeadTitle = () => {
|
|
60
|
-
const pageHeadTitle =
|
|
73
|
+
const pageHeadTitle = inject4(pageHeadTitleSymbol);
|
|
61
74
|
if (!pageHeadTitle) {
|
|
62
75
|
throw new Error("usePageHeadTitle() is called without provider.");
|
|
63
76
|
}
|
|
@@ -65,25 +78,40 @@ var usePageHeadTitle = () => {
|
|
|
65
78
|
};
|
|
66
79
|
|
|
67
80
|
// src/composables/pageLang.ts
|
|
68
|
-
import { inject as
|
|
81
|
+
import { inject as inject5 } from "vue";
|
|
69
82
|
var pageLangSymbol = Symbol(
|
|
70
83
|
__VUEPRESS_DEV__ ? "pageLang" : ""
|
|
71
84
|
);
|
|
72
85
|
var usePageLang = () => {
|
|
73
|
-
const pageLang =
|
|
86
|
+
const pageLang = inject5(pageLangSymbol);
|
|
74
87
|
if (!pageLang) {
|
|
75
88
|
throw new Error("usePageLang() is called without provider.");
|
|
76
89
|
}
|
|
77
90
|
return pageLang;
|
|
78
91
|
};
|
|
79
92
|
|
|
93
|
+
// src/composables/pageLayout.ts
|
|
94
|
+
import {
|
|
95
|
+
inject as inject6
|
|
96
|
+
} from "vue";
|
|
97
|
+
var pageLayoutSymbol = Symbol(
|
|
98
|
+
__VUEPRESS_DEV__ ? "pageLayout" : ""
|
|
99
|
+
);
|
|
100
|
+
var usePageLayout = () => {
|
|
101
|
+
const pageLayout = inject6(pageLayoutSymbol);
|
|
102
|
+
if (!pageLayout) {
|
|
103
|
+
throw new Error("usePageLayout() is called without provider.");
|
|
104
|
+
}
|
|
105
|
+
return pageLayout;
|
|
106
|
+
};
|
|
107
|
+
|
|
80
108
|
// src/composables/routeLocale.ts
|
|
81
|
-
import { inject as
|
|
109
|
+
import { inject as inject7 } from "vue";
|
|
82
110
|
var routeLocaleSymbol = Symbol(
|
|
83
111
|
__VUEPRESS_DEV__ ? "routeLocale" : ""
|
|
84
112
|
);
|
|
85
113
|
var useRouteLocale = () => {
|
|
86
|
-
const routeLocale =
|
|
114
|
+
const routeLocale = inject7(routeLocaleSymbol);
|
|
87
115
|
if (!routeLocale) {
|
|
88
116
|
throw new Error("useRouteLocale() is called without provider.");
|
|
89
117
|
}
|
|
@@ -102,12 +130,12 @@ if (__VUEPRESS_DEV__ && (import.meta.webpackHot || import.meta.hot)) {
|
|
|
102
130
|
}
|
|
103
131
|
|
|
104
132
|
// src/composables/siteLocaleData.ts
|
|
105
|
-
import { inject as
|
|
133
|
+
import { inject as inject8 } from "vue";
|
|
106
134
|
var siteLocaleDataSymbol = Symbol(
|
|
107
135
|
__VUEPRESS_DEV__ ? "siteLocaleData" : ""
|
|
108
136
|
);
|
|
109
137
|
var useSiteLocaleData = () => {
|
|
110
|
-
const siteLocaleData =
|
|
138
|
+
const siteLocaleData = inject8(siteLocaleDataSymbol);
|
|
111
139
|
if (!siteLocaleData) {
|
|
112
140
|
throw new Error("useSiteLocaleData() is called without provider.");
|
|
113
141
|
}
|
|
@@ -115,12 +143,12 @@ var useSiteLocaleData = () => {
|
|
|
115
143
|
};
|
|
116
144
|
|
|
117
145
|
// src/composables/updateHead.ts
|
|
118
|
-
import { inject as
|
|
146
|
+
import { inject as inject9 } from "vue";
|
|
119
147
|
var updateHeadSymbol = Symbol(
|
|
120
148
|
__VUEPRESS_DEV__ ? "updateHead" : ""
|
|
121
149
|
);
|
|
122
150
|
var useUpdateHead = () => {
|
|
123
|
-
const updateHead =
|
|
151
|
+
const updateHead = inject9(updateHeadSymbol);
|
|
124
152
|
if (!updateHead) {
|
|
125
153
|
throw new Error("useUpdateHead() is called without provider.");
|
|
126
154
|
}
|
|
@@ -135,7 +163,20 @@ import {
|
|
|
135
163
|
resolveLocalePath
|
|
136
164
|
} from "@vuepress/shared";
|
|
137
165
|
import { reactive } from "vue";
|
|
166
|
+
|
|
167
|
+
// src/constants.ts
|
|
168
|
+
var LAYOUT_NAME_DEFAULT = "Layout";
|
|
169
|
+
var LAYOUT_NAME_NOT_FOUND = "NotFound";
|
|
170
|
+
|
|
171
|
+
// src/resolvers.ts
|
|
138
172
|
var resolvers = reactive({
|
|
173
|
+
resolveLayouts: (clientConfigs) => clientConfigs.reduce(
|
|
174
|
+
(prev, item) => ({
|
|
175
|
+
...prev,
|
|
176
|
+
...item.layouts
|
|
177
|
+
}),
|
|
178
|
+
{}
|
|
179
|
+
),
|
|
139
180
|
resolvePageData: async (pageKey) => {
|
|
140
181
|
const pageDataResolver = pagesData.value[pageKey];
|
|
141
182
|
const pageData2 = await pageDataResolver?.();
|
|
@@ -153,7 +194,21 @@ var resolvers = reactive({
|
|
|
153
194
|
return dedupeHead(head);
|
|
154
195
|
},
|
|
155
196
|
resolvePageHeadTitle: (page, siteLocale) => `${page.title ? `${page.title}` : ``}${siteLocale.title ? ` | ${siteLocale.title}` : ``}`,
|
|
156
|
-
resolvePageLang: (
|
|
197
|
+
resolvePageLang: (page) => page.lang || "en",
|
|
198
|
+
resolvePageLayout: (page, layouts) => {
|
|
199
|
+
let layoutName;
|
|
200
|
+
if (page.path) {
|
|
201
|
+
const frontmatterLayout = page.frontmatter.layout;
|
|
202
|
+
if (isString(frontmatterLayout)) {
|
|
203
|
+
layoutName = frontmatterLayout;
|
|
204
|
+
} else {
|
|
205
|
+
layoutName = LAYOUT_NAME_DEFAULT;
|
|
206
|
+
}
|
|
207
|
+
} else {
|
|
208
|
+
layoutName = LAYOUT_NAME_NOT_FOUND;
|
|
209
|
+
}
|
|
210
|
+
return layouts[layoutName];
|
|
211
|
+
},
|
|
157
212
|
resolveRouteLocale: (locales, routePath) => resolveLocalePath(locales, routePath),
|
|
158
213
|
resolveSiteLocaleData: (site, routeLocale) => ({
|
|
159
214
|
...site,
|
|
@@ -210,6 +265,8 @@ var withBase = (url) => {
|
|
|
210
265
|
};
|
|
211
266
|
|
|
212
267
|
export {
|
|
268
|
+
layoutsSymbol,
|
|
269
|
+
useLayouts,
|
|
213
270
|
pagesData,
|
|
214
271
|
usePagesData,
|
|
215
272
|
pageDataEmpty,
|
|
@@ -223,6 +280,8 @@ export {
|
|
|
223
280
|
usePageHeadTitle,
|
|
224
281
|
pageLangSymbol,
|
|
225
282
|
usePageLang,
|
|
283
|
+
pageLayoutSymbol,
|
|
284
|
+
usePageLayout,
|
|
226
285
|
routeLocaleSymbol,
|
|
227
286
|
useRouteLocale,
|
|
228
287
|
siteData,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PageData, PageFrontmatter, HeadConfig, SiteData } from '@vuepress/shared';
|
|
2
2
|
export { PageData, PageFrontmatter, PageHeader, SiteData } from '@vuepress/shared';
|
|
3
3
|
import * as vue from 'vue';
|
|
4
|
-
import {
|
|
4
|
+
import { Component, App, ComputedRef, InjectionKey, Ref } from 'vue';
|
|
5
5
|
import { Router, RouteMeta } from 'vue-router';
|
|
6
6
|
|
|
7
7
|
declare const ClientOnly: vue.DefineComponent<{}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
@@ -29,6 +29,60 @@ declare const Content: vue.DefineComponent<{
|
|
|
29
29
|
pageKey: string;
|
|
30
30
|
}>;
|
|
31
31
|
|
|
32
|
+
type Layouts = Record<string, Component>;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Configure vuepress client
|
|
36
|
+
*/
|
|
37
|
+
interface ClientConfig {
|
|
38
|
+
/**
|
|
39
|
+
* An enhance function to be called after vue app instance and
|
|
40
|
+
* vue-router instance has been created
|
|
41
|
+
*/
|
|
42
|
+
enhance?: (context: {
|
|
43
|
+
app: App;
|
|
44
|
+
router: Router;
|
|
45
|
+
siteData: SiteDataRef;
|
|
46
|
+
}) => void | Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* A function to be called inside the setup function of vue app
|
|
49
|
+
*/
|
|
50
|
+
setup?: () => void;
|
|
51
|
+
/**
|
|
52
|
+
* Layout components
|
|
53
|
+
*/
|
|
54
|
+
layouts?: Layouts;
|
|
55
|
+
/**
|
|
56
|
+
* Components to be placed directly into the root node of vue app
|
|
57
|
+
*/
|
|
58
|
+
rootComponents?: Component[];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
type CreateVueAppFunction = () => Promise<{
|
|
62
|
+
app: App;
|
|
63
|
+
router: Router;
|
|
64
|
+
}>;
|
|
65
|
+
|
|
66
|
+
type PageRouteItem = [
|
|
67
|
+
name: string,
|
|
68
|
+
path: string,
|
|
69
|
+
meta: RouteMeta,
|
|
70
|
+
redirects: string[]
|
|
71
|
+
];
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Ref wrapper of `Layouts`
|
|
75
|
+
*/
|
|
76
|
+
type LayoutsRef = ComputedRef<Layouts>;
|
|
77
|
+
/**
|
|
78
|
+
* Injection key for layouts
|
|
79
|
+
*/
|
|
80
|
+
declare const layoutsSymbol: InjectionKey<LayoutsRef>;
|
|
81
|
+
/**
|
|
82
|
+
* Returns layouts component map
|
|
83
|
+
*/
|
|
84
|
+
declare const useLayouts: () => LayoutsRef;
|
|
85
|
+
|
|
32
86
|
/**
|
|
33
87
|
* Ref wrapper of `PageData`
|
|
34
88
|
*/
|
|
@@ -110,6 +164,19 @@ declare const pageLangSymbol: InjectionKey<PageLangRef>;
|
|
|
110
164
|
*/
|
|
111
165
|
declare const usePageLang: () => PageLangRef;
|
|
112
166
|
|
|
167
|
+
/**
|
|
168
|
+
* Ref wrapper of `PageLayout`
|
|
169
|
+
*/
|
|
170
|
+
type PageLayoutRef = ComputedRef<Component>;
|
|
171
|
+
/**
|
|
172
|
+
* Injection key for page layout
|
|
173
|
+
*/
|
|
174
|
+
declare const pageLayoutSymbol: InjectionKey<PageLayoutRef>;
|
|
175
|
+
/**
|
|
176
|
+
* Returns layout component of current page
|
|
177
|
+
*/
|
|
178
|
+
declare const usePageLayout: () => ComputedRef<Component>;
|
|
179
|
+
|
|
113
180
|
/**
|
|
114
181
|
* Data resolvers of all pages
|
|
115
182
|
*
|
|
@@ -190,45 +257,6 @@ declare const updateHeadSymbol: InjectionKey<UpdateHead>;
|
|
|
190
257
|
*/
|
|
191
258
|
declare const useUpdateHead: () => UpdateHead;
|
|
192
259
|
|
|
193
|
-
/**
|
|
194
|
-
* Configure vuepress client
|
|
195
|
-
*/
|
|
196
|
-
interface ClientConfig {
|
|
197
|
-
/**
|
|
198
|
-
* An enhance function to be called after vue app instance and
|
|
199
|
-
* vue-router instance has been created
|
|
200
|
-
*/
|
|
201
|
-
enhance?: (context: {
|
|
202
|
-
app: App;
|
|
203
|
-
router: Router;
|
|
204
|
-
siteData: SiteDataRef;
|
|
205
|
-
}) => void | Promise<void>;
|
|
206
|
-
/**
|
|
207
|
-
* A function to be called inside the setup function of vue app
|
|
208
|
-
*/
|
|
209
|
-
setup?: () => void;
|
|
210
|
-
/**
|
|
211
|
-
* Layout components
|
|
212
|
-
*/
|
|
213
|
-
layouts?: Record<string, Component>;
|
|
214
|
-
/**
|
|
215
|
-
* Components to be placed directly into the root node of vue app
|
|
216
|
-
*/
|
|
217
|
-
rootComponents?: Component[];
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
type CreateVueAppFunction = () => Promise<{
|
|
221
|
-
app: App;
|
|
222
|
-
router: Router;
|
|
223
|
-
}>;
|
|
224
|
-
|
|
225
|
-
type PageRouteItem = [
|
|
226
|
-
name: string,
|
|
227
|
-
path: string,
|
|
228
|
-
meta: RouteMeta,
|
|
229
|
-
redirects: string[]
|
|
230
|
-
];
|
|
231
|
-
|
|
232
260
|
/**
|
|
233
261
|
* A helper function to help you define vuepress client config file
|
|
234
262
|
*/
|
|
@@ -245,13 +273,15 @@ declare const withBase: (url: string) => string;
|
|
|
245
273
|
* Users can override corresponding method for advanced customization
|
|
246
274
|
*/
|
|
247
275
|
declare const resolvers: {
|
|
276
|
+
resolveLayouts: (clientConfigs: ClientConfig[]) => Layouts;
|
|
248
277
|
resolvePageData: (pageKey: string) => Promise<PageData>;
|
|
249
278
|
resolvePageFrontmatter: (pageData: PageData) => PageFrontmatter;
|
|
250
279
|
resolvePageHead: (headTitle: PageHeadTitle, frontmatter: PageFrontmatter, siteLocale: SiteLocaleData) => PageHead;
|
|
251
280
|
resolvePageHeadTitle: (page: PageData, siteLocale: SiteLocaleData) => PageHeadTitle;
|
|
252
|
-
resolvePageLang: (
|
|
281
|
+
resolvePageLang: (page: PageData) => PageLang;
|
|
282
|
+
resolvePageLayout: (page: PageData, layouts: Layouts) => Component;
|
|
253
283
|
resolveRouteLocale: (locales: SiteData['locales'], routePath: string) => RouteLocale;
|
|
254
284
|
resolveSiteLocaleData: (site: SiteData, routeLocale: RouteLocale) => SiteLocaleData;
|
|
255
285
|
};
|
|
256
286
|
|
|
257
|
-
export { ClientConfig, ClientOnly, Content, CreateVueAppFunction, PageDataRef, PageFrontmatterRef, PageHead, PageHeadRef, PageHeadTitle, PageHeadTitleRef, PageLang, PageLangRef, PageRouteItem, PagesData, PagesDataRef, RouteLocale, RouteLocaleRef, SiteDataRef, SiteLocaleData, SiteLocaleDataRef, UpdateHead, defineClientConfig, pageData, pageDataEmpty, pageFrontmatterSymbol, pageHeadSymbol, pageHeadTitleSymbol, pageLangSymbol, pagesData, resolvers, routeLocaleSymbol, siteData, siteLocaleDataSymbol, updateHeadSymbol, usePageData, usePageFrontmatter, usePageHead, usePageHeadTitle, usePageLang, usePagesData, useRouteLocale, useSiteData, useSiteLocaleData, useUpdateHead, withBase };
|
|
287
|
+
export { ClientConfig, ClientOnly, Content, CreateVueAppFunction, Layouts, LayoutsRef, PageDataRef, PageFrontmatterRef, PageHead, PageHeadRef, PageHeadTitle, PageHeadTitleRef, PageLang, PageLangRef, PageLayoutRef, PageRouteItem, PagesData, PagesDataRef, RouteLocale, RouteLocaleRef, SiteDataRef, SiteLocaleData, SiteLocaleDataRef, UpdateHead, defineClientConfig, layoutsSymbol, pageData, pageDataEmpty, pageFrontmatterSymbol, pageHeadSymbol, pageHeadTitleSymbol, pageLangSymbol, pageLayoutSymbol, pagesData, resolvers, routeLocaleSymbol, siteData, siteLocaleDataSymbol, updateHeadSymbol, useLayouts, usePageData, usePageFrontmatter, usePageHead, usePageHeadTitle, usePageLang, usePageLayout, usePagesData, useRouteLocale, useSiteData, useSiteLocaleData, useUpdateHead, withBase };
|
package/dist/index.js
CHANGED
|
@@ -2,51 +2,59 @@ import {
|
|
|
2
2
|
ClientOnly,
|
|
3
3
|
Content,
|
|
4
4
|
defineClientConfig,
|
|
5
|
+
layoutsSymbol,
|
|
5
6
|
pageData,
|
|
6
7
|
pageDataEmpty,
|
|
7
8
|
pageFrontmatterSymbol,
|
|
8
9
|
pageHeadSymbol,
|
|
9
10
|
pageHeadTitleSymbol,
|
|
10
11
|
pageLangSymbol,
|
|
12
|
+
pageLayoutSymbol,
|
|
11
13
|
pagesData,
|
|
12
14
|
resolvers,
|
|
13
15
|
routeLocaleSymbol,
|
|
14
16
|
siteData,
|
|
15
17
|
siteLocaleDataSymbol,
|
|
16
18
|
updateHeadSymbol,
|
|
19
|
+
useLayouts,
|
|
17
20
|
usePageData,
|
|
18
21
|
usePageFrontmatter,
|
|
19
22
|
usePageHead,
|
|
20
23
|
usePageHeadTitle,
|
|
21
24
|
usePageLang,
|
|
25
|
+
usePageLayout,
|
|
22
26
|
usePagesData,
|
|
23
27
|
useRouteLocale,
|
|
24
28
|
useSiteData,
|
|
25
29
|
useSiteLocaleData,
|
|
26
30
|
useUpdateHead,
|
|
27
31
|
withBase
|
|
28
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-2OYZ7FSR.js";
|
|
29
33
|
export {
|
|
30
34
|
ClientOnly,
|
|
31
35
|
Content,
|
|
32
36
|
defineClientConfig,
|
|
37
|
+
layoutsSymbol,
|
|
33
38
|
pageData,
|
|
34
39
|
pageDataEmpty,
|
|
35
40
|
pageFrontmatterSymbol,
|
|
36
41
|
pageHeadSymbol,
|
|
37
42
|
pageHeadTitleSymbol,
|
|
38
43
|
pageLangSymbol,
|
|
44
|
+
pageLayoutSymbol,
|
|
39
45
|
pagesData,
|
|
40
46
|
resolvers,
|
|
41
47
|
routeLocaleSymbol,
|
|
42
48
|
siteData,
|
|
43
49
|
siteLocaleDataSymbol,
|
|
44
50
|
updateHeadSymbol,
|
|
51
|
+
useLayouts,
|
|
45
52
|
usePageData,
|
|
46
53
|
usePageFrontmatter,
|
|
47
54
|
usePageHead,
|
|
48
55
|
usePageHeadTitle,
|
|
49
56
|
usePageLang,
|
|
57
|
+
usePageLayout,
|
|
50
58
|
usePagesData,
|
|
51
59
|
useRouteLocale,
|
|
52
60
|
useSiteData,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vuepress/client",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.59",
|
|
4
4
|
"description": "Client package of VuePress",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vuepress",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@vue/devtools-api": "^6.4.5",
|
|
37
37
|
"vue": "^3.2.45",
|
|
38
38
|
"vue-router": "^4.1.6",
|
|
39
|
-
"@vuepress/shared": "2.0.0-beta.
|
|
39
|
+
"@vuepress/shared": "2.0.0-beta.59"
|
|
40
40
|
},
|
|
41
41
|
"publishConfig": {
|
|
42
42
|
"access": "public"
|