@vuepress/client
Advanced tools
| // src/composables/pagesData.ts | ||
| import { pagesData as pagesDataRaw } from "@internal/pagesData"; | ||
| import { ref } from "vue"; | ||
| var pagesData = ref(pagesDataRaw); | ||
| var usePagesData = () => pagesData; | ||
| // src/composables/pageData.ts | ||
| import { readonly, ref as ref2 } from "vue"; | ||
| var pageDataEmpty = readonly({ | ||
| key: "", | ||
| path: "", | ||
| title: "", | ||
| lang: "", | ||
| frontmatter: {}, | ||
| excerpt: "", | ||
| headers: [] | ||
| }); | ||
| var pageData = ref2(pageDataEmpty); | ||
| var usePageData = () => pageData; | ||
| if (import.meta.webpackHot || import.meta.hot) { | ||
| __VUE_HMR_RUNTIME__.updatePageData = (data) => { | ||
| pagesData.value[data.key] = () => Promise.resolve(data); | ||
| if (data.key === pageData.value.key) { | ||
| pageData.value = data; | ||
| } | ||
| }; | ||
| } | ||
| // src/composables/pageFrontmatter.ts | ||
| import { inject } from "vue"; | ||
| var pageFrontmatterSymbol = Symbol( | ||
| __VUEPRESS_DEV__ ? "pageFrontmatter" : "" | ||
| ); | ||
| var usePageFrontmatter = () => { | ||
| const pageFrontmatter = inject(pageFrontmatterSymbol); | ||
| if (!pageFrontmatter) { | ||
| throw new Error("usePageFrontmatter() is called without provider."); | ||
| } | ||
| return pageFrontmatter; | ||
| }; | ||
| // src/composables/pageHead.ts | ||
| import { inject as inject2 } from "vue"; | ||
| var pageHeadSymbol = Symbol( | ||
| __VUEPRESS_DEV__ ? "pageHead" : "" | ||
| ); | ||
| var usePageHead = () => { | ||
| const pageHead = inject2(pageHeadSymbol); | ||
| if (!pageHead) { | ||
| throw new Error("usePageHead() is called without provider."); | ||
| } | ||
| return pageHead; | ||
| }; | ||
| // src/composables/pageHeadTitle.ts | ||
| import { inject as inject3 } from "vue"; | ||
| var pageHeadTitleSymbol = Symbol( | ||
| __VUEPRESS_DEV__ ? "pageHeadTitle" : "" | ||
| ); | ||
| var usePageHeadTitle = () => { | ||
| const pageHeadTitle = inject3(pageHeadTitleSymbol); | ||
| if (!pageHeadTitle) { | ||
| throw new Error("usePageHeadTitle() is called without provider."); | ||
| } | ||
| return pageHeadTitle; | ||
| }; | ||
| // src/composables/pageLang.ts | ||
| import { inject as inject4 } from "vue"; | ||
| var pageLangSymbol = Symbol( | ||
| __VUEPRESS_DEV__ ? "pageLang" : "" | ||
| ); | ||
| var usePageLang = () => { | ||
| const pageLang = inject4(pageLangSymbol); | ||
| if (!pageLang) { | ||
| throw new Error("usePageLang() is called without provider."); | ||
| } | ||
| return pageLang; | ||
| }; | ||
| // src/composables/routeLocale.ts | ||
| import { inject as inject5 } from "vue"; | ||
| var routeLocaleSymbol = Symbol( | ||
| __VUEPRESS_DEV__ ? "routeLocale" : "" | ||
| ); | ||
| var useRouteLocale = () => { | ||
| const routeLocale = inject5(routeLocaleSymbol); | ||
| if (!routeLocale) { | ||
| throw new Error("useRouteLocale() is called without provider."); | ||
| } | ||
| return routeLocale; | ||
| }; | ||
| // src/composables/siteData.ts | ||
| import { siteData as siteDataRaw } from "@internal/siteData"; | ||
| import { ref as ref3 } from "vue"; | ||
| var siteData = ref3(siteDataRaw); | ||
| var useSiteData = () => siteData; | ||
| if (import.meta.webpackHot || import.meta.hot) { | ||
| __VUE_HMR_RUNTIME__.updateSiteData = (data) => { | ||
| siteData.value = data; | ||
| }; | ||
| } | ||
| // src/composables/siteLocaleData.ts | ||
| import { inject as inject6 } from "vue"; | ||
| var siteLocaleDataSymbol = Symbol( | ||
| __VUEPRESS_DEV__ ? "siteLocaleData" : "" | ||
| ); | ||
| var useSiteLocaleData = () => { | ||
| const siteLocaleData = inject6(siteLocaleDataSymbol); | ||
| if (!siteLocaleData) { | ||
| throw new Error("useSiteLocaleData() is called without provider."); | ||
| } | ||
| return siteLocaleData; | ||
| }; | ||
| // src/composables/updateHead.ts | ||
| import { inject as inject7 } from "vue"; | ||
| var updateHeadSymbol = Symbol( | ||
| __VUEPRESS_DEV__ ? "updateHead" : "" | ||
| ); | ||
| var useUpdateHead = () => { | ||
| const updateHead = inject7(updateHeadSymbol); | ||
| if (!updateHead) { | ||
| throw new Error("useUpdateHead() is called without provider."); | ||
| } | ||
| return updateHead; | ||
| }; | ||
| // src/resolvers.ts | ||
| import { | ||
| dedupeHead, | ||
| isArray, | ||
| isString, | ||
| resolveLocalePath | ||
| } from "@vuepress/shared"; | ||
| import { reactive } from "vue"; | ||
| var resolvers = reactive({ | ||
| resolvePageData: async (pageKey) => { | ||
| const pageDataResolver = pagesData.value[pageKey]; | ||
| const pageData2 = await pageDataResolver?.(); | ||
| return pageData2 ?? pageDataEmpty; | ||
| }, | ||
| resolvePageFrontmatter: (pageData2) => pageData2.frontmatter, | ||
| resolvePageHead: (headTitle, frontmatter, siteLocale) => { | ||
| const description = isString(frontmatter.description) ? frontmatter.description : siteLocale.description; | ||
| const head = [ | ||
| ...isArray(frontmatter.head) ? frontmatter.head : [], | ||
| ...siteLocale.head, | ||
| ["title", {}, headTitle], | ||
| ["meta", { name: "description", content: description }] | ||
| ]; | ||
| return dedupeHead(head); | ||
| }, | ||
| resolvePageHeadTitle: (page, siteLocale) => `${page.title ? `${page.title} | ` : ``}${siteLocale.title}`, | ||
| resolvePageLang: (pageData2) => pageData2.lang || "en", | ||
| resolveRouteLocale: (locales, routePath) => resolveLocalePath(locales, routePath), | ||
| resolveSiteLocaleData: (site, routeLocale) => ({ | ||
| ...site, | ||
| ...site.locales[routeLocale] | ||
| }) | ||
| }); | ||
| // src/components/ClientOnly.ts | ||
| import { defineComponent, onMounted, ref as ref4 } from "vue"; | ||
| var ClientOnly = defineComponent({ | ||
| name: "ClientOnly", | ||
| setup(_, ctx) { | ||
| const isMounted = ref4(false); | ||
| onMounted(() => { | ||
| isMounted.value = true; | ||
| }); | ||
| return () => isMounted.value ? ctx.slots.default?.() : null; | ||
| } | ||
| }); | ||
| // src/components/Content.ts | ||
| import { pagesComponents } from "@internal/pagesComponents"; | ||
| import { computed, defineComponent as defineComponent2, h } from "vue"; | ||
| var Content = defineComponent2({ | ||
| name: "Content", | ||
| props: { | ||
| pageKey: { | ||
| type: String, | ||
| required: false, | ||
| default: "" | ||
| } | ||
| }, | ||
| setup(props) { | ||
| const page = usePageData(); | ||
| const pageComponent = computed( | ||
| () => pagesComponents[props.pageKey || page.value.key] | ||
| ); | ||
| return () => pageComponent.value ? h(pageComponent.value) : h( | ||
| "div", | ||
| __VUEPRESS_DEV__ ? "Page does not exist. This is a fallback content." : "404 Not Found" | ||
| ); | ||
| } | ||
| }); | ||
| // src/components/Vuepress.ts | ||
| import { layoutComponents } from "@internal/layoutComponents"; | ||
| import { isString as isString2 } from "@vuepress/shared"; | ||
| import { computed as computed2, defineComponent as defineComponent3, h as h2, resolveComponent } from "vue"; | ||
| var Vuepress = defineComponent3({ | ||
| name: "Vuepress", | ||
| setup() { | ||
| const page = usePageData(); | ||
| const layoutComponent = computed2(() => { | ||
| let layoutName; | ||
| if (page.value.path) { | ||
| const frontmatterLayout = page.value.frontmatter.layout; | ||
| if (isString2(frontmatterLayout)) { | ||
| layoutName = frontmatterLayout; | ||
| } else { | ||
| layoutName = "Layout"; | ||
| } | ||
| } else { | ||
| layoutName = "404"; | ||
| } | ||
| return layoutComponents[layoutName] || resolveComponent(layoutName, false); | ||
| }); | ||
| return () => h2(layoutComponent.value); | ||
| } | ||
| }); | ||
| // src/withBase.ts | ||
| import { isLinkHttp, removeLeadingSlash } from "@vuepress/shared"; | ||
| var withBase = (url) => { | ||
| if (isLinkHttp(url)) | ||
| return url; | ||
| const base = useSiteData().value.base; | ||
| return `${base}${removeLeadingSlash(url)}`; | ||
| }; | ||
| export { | ||
| pagesData, | ||
| usePagesData, | ||
| pageDataEmpty, | ||
| pageData, | ||
| usePageData, | ||
| pageFrontmatterSymbol, | ||
| usePageFrontmatter, | ||
| pageHeadSymbol, | ||
| usePageHead, | ||
| pageHeadTitleSymbol, | ||
| usePageHeadTitle, | ||
| pageLangSymbol, | ||
| usePageLang, | ||
| routeLocaleSymbol, | ||
| useRouteLocale, | ||
| siteData, | ||
| useSiteData, | ||
| siteLocaleDataSymbol, | ||
| useSiteLocaleData, | ||
| updateHeadSymbol, | ||
| useUpdateHead, | ||
| resolvers, | ||
| ClientOnly, | ||
| Content, | ||
| Vuepress, | ||
| withBase | ||
| }; |
| // src/setupDevtools.ts | ||
| import { setupDevtoolsPlugin } from "@vue/devtools-api"; | ||
| import { watch } from "vue"; | ||
| var PLUGIN_ID = "org.vuejs.vuepress"; | ||
| var PLUGIN_LABEL = "VuePress"; | ||
| var PLUGIN_COMPONENT_STATE_TYPE = PLUGIN_LABEL; | ||
| var INSPECTOR_ID = PLUGIN_ID; | ||
| var INSPECTOR_LABEL = PLUGIN_LABEL; | ||
| var INSPECTOR_GLOBAL_COMPUTED_ID = "global-computed"; | ||
| var INSPECTOR_GLOBAL_COMPUTED_LABEL = "Global Computed"; | ||
| var setupDevtools = (app, globalComputed) => { | ||
| setupDevtoolsPlugin( | ||
| { | ||
| app, | ||
| id: PLUGIN_ID, | ||
| label: PLUGIN_LABEL, | ||
| packageName: "@vuepress/client", | ||
| homepage: "https://v2.vuepress.vuejs.org", | ||
| logo: "https://v2.vuepress.vuejs.org/images/hero.png", | ||
| componentStateTypes: [PLUGIN_COMPONENT_STATE_TYPE] | ||
| }, | ||
| (api) => { | ||
| const globalComputedEntries = Object.entries(globalComputed); | ||
| const globalComputedKeys = Object.keys(globalComputed); | ||
| const globalComputedValues = Object.values(globalComputed); | ||
| api.on.inspectComponent((payload) => { | ||
| payload.instanceData.state.push( | ||
| ...globalComputedEntries.map(([name, item]) => ({ | ||
| type: PLUGIN_COMPONENT_STATE_TYPE, | ||
| editable: false, | ||
| key: name, | ||
| value: item.value | ||
| })) | ||
| ); | ||
| }); | ||
| api.addInspector({ | ||
| id: INSPECTOR_ID, | ||
| label: INSPECTOR_LABEL, | ||
| icon: "article" | ||
| }); | ||
| api.on.getInspectorTree((payload) => { | ||
| if (payload.inspectorId !== INSPECTOR_ID) | ||
| return; | ||
| payload.rootNodes = [ | ||
| { | ||
| id: INSPECTOR_GLOBAL_COMPUTED_ID, | ||
| label: INSPECTOR_GLOBAL_COMPUTED_LABEL, | ||
| children: globalComputedKeys.map((name) => ({ | ||
| id: name, | ||
| label: name | ||
| })) | ||
| } | ||
| ]; | ||
| }); | ||
| api.on.getInspectorState((payload) => { | ||
| if (payload.inspectorId !== INSPECTOR_ID) | ||
| return; | ||
| if (payload.nodeId === INSPECTOR_GLOBAL_COMPUTED_ID) { | ||
| payload.state = { | ||
| [INSPECTOR_GLOBAL_COMPUTED_LABEL]: globalComputedEntries.map( | ||
| ([name, item]) => ({ | ||
| key: name, | ||
| value: item.value | ||
| }) | ||
| ) | ||
| }; | ||
| } | ||
| if (globalComputedKeys.includes(payload.nodeId)) { | ||
| payload.state = { | ||
| [INSPECTOR_GLOBAL_COMPUTED_LABEL]: [ | ||
| { | ||
| key: payload.nodeId, | ||
| value: globalComputed[payload.nodeId].value | ||
| } | ||
| ] | ||
| }; | ||
| } | ||
| }); | ||
| watch(globalComputedValues, () => { | ||
| api.notifyComponentUpdate(); | ||
| api.sendInspectorState(INSPECTOR_ID); | ||
| }); | ||
| } | ||
| ); | ||
| }; | ||
| export { | ||
| setupDevtools | ||
| }; |
+55
-50
@@ -18,3 +18,3 @@ import { | ||
| withBase | ||
| } from "./chunk-OOQFWU6B.js"; | ||
| } from "./chunk-V3MKNX2O.js"; | ||
@@ -38,20 +38,26 @@ // src/app.ts | ||
| import { pagesRoutes } from "@internal/pagesRoutes"; | ||
| var createRoutes = () => pagesRoutes.reduce((result, [name, path, meta, redirects]) => { | ||
| result.push({ | ||
| name, | ||
| path, | ||
| component: Vuepress, | ||
| meta | ||
| }, ...redirects.map((item) => ({ | ||
| path: item, | ||
| redirect: path | ||
| }))); | ||
| return result; | ||
| }, [ | ||
| { | ||
| name: "404", | ||
| path: "/:catchAll(.*)", | ||
| component: Vuepress | ||
| } | ||
| ]); | ||
| var createRoutes = () => pagesRoutes.reduce( | ||
| (result, [name, path, meta, redirects]) => { | ||
| result.push( | ||
| { | ||
| name, | ||
| path, | ||
| component: Vuepress, | ||
| meta | ||
| }, | ||
| ...redirects.map((item) => ({ | ||
| path: item, | ||
| redirect: path | ||
| })) | ||
| ); | ||
| return result; | ||
| }, | ||
| [ | ||
| { | ||
| name: "404", | ||
| path: "/:catchAll(.*)", | ||
| component: Vuepress | ||
| } | ||
| ] | ||
| ); | ||
@@ -84,26 +90,2 @@ // src/router.ts | ||
| // src/setupDevtools.ts | ||
| import { setupDevtoolsPlugin } from "@vue/devtools-api"; | ||
| var COMPONENT_STATE_TYPE = "VuePress"; | ||
| var setupDevtools = (app, globalComputed) => { | ||
| setupDevtoolsPlugin({ | ||
| app, | ||
| id: "org.vuejs.vuepress", | ||
| label: "VuePress", | ||
| packageName: "@vuepress/client", | ||
| homepage: "https://v2.vuepress.vuejs.org", | ||
| logo: "https://v2.vuepress.vuejs.org/images/hero.png", | ||
| componentStateTypes: [COMPONENT_STATE_TYPE] | ||
| }, (api) => { | ||
| api.on.inspectComponent((payload) => { | ||
| payload.instanceData.state.push(...Object.entries(globalComputed).map(([name, item]) => ({ | ||
| type: COMPONENT_STATE_TYPE, | ||
| key: name, | ||
| editable: false, | ||
| value: item.value | ||
| }))); | ||
| }); | ||
| }); | ||
| }; | ||
| // src/setupGlobalComponents.ts | ||
@@ -118,7 +100,24 @@ var setupGlobalComponents = (app) => { | ||
| var setupGlobalComputed = (app, router) => { | ||
| const routeLocale = computed(() => resolvers.resolveRouteLocale(siteData.value.locales, router.currentRoute.value.path)); | ||
| const siteLocaleData = computed(() => resolvers.resolveSiteLocaleData(siteData.value, routeLocale.value)); | ||
| const pageFrontmatter = computed(() => resolvers.resolvePageFrontmatter(pageData.value)); | ||
| const pageHeadTitle = computed(() => resolvers.resolvePageHeadTitle(pageData.value, siteLocaleData.value)); | ||
| const pageHead = computed(() => resolvers.resolvePageHead(pageHeadTitle.value, pageFrontmatter.value, siteLocaleData.value)); | ||
| const routeLocale = computed( | ||
| () => resolvers.resolveRouteLocale( | ||
| siteData.value.locales, | ||
| router.currentRoute.value.path | ||
| ) | ||
| ); | ||
| const siteLocaleData = computed( | ||
| () => resolvers.resolveSiteLocaleData(siteData.value, routeLocale.value) | ||
| ); | ||
| const pageFrontmatter = computed( | ||
| () => resolvers.resolvePageFrontmatter(pageData.value) | ||
| ); | ||
| const pageHeadTitle = computed( | ||
| () => resolvers.resolvePageHeadTitle(pageData.value, siteLocaleData.value) | ||
| ); | ||
| const pageHead = computed( | ||
| () => resolvers.resolvePageHead( | ||
| pageHeadTitle.value, | ||
| pageFrontmatter.value, | ||
| siteLocaleData.value | ||
| ) | ||
| ); | ||
| const pageLang = computed(() => resolvers.resolvePageLang(pageData.value)); | ||
@@ -199,3 +198,6 @@ app.provide(routeLocaleSymbol, routeLocale); | ||
| updateHead(); | ||
| watch(() => __VUEPRESS_DEV__ ? head.value : route.path, () => updateHead()); | ||
| watch( | ||
| () => __VUEPRESS_DEV__ ? head.value : route.path, | ||
| () => updateHead() | ||
| ); | ||
| }); | ||
@@ -258,3 +260,5 @@ }; | ||
| h(RouterView), | ||
| ...clientConfigs.flatMap(({ rootComponents = [] }) => rootComponents.map((component) => h(component))) | ||
| ...clientConfigs.flatMap( | ||
| ({ rootComponents = [] }) => rootComponents.map((component) => h(component)) | ||
| ) | ||
| ]; | ||
@@ -267,2 +271,3 @@ } | ||
| if (__VUEPRESS_DEV__ || __VUE_PROD_DEVTOOLS__) { | ||
| const { setupDevtools } = await import("./setupDevtools-EXVHPMXB.js"); | ||
| setupDevtools(app, globalComputed); | ||
@@ -269,0 +274,0 @@ } |
+38
-34
@@ -6,5 +6,36 @@ import { PageData, PageFrontmatter, HeadConfig, SiteData } from '@vuepress/shared'; | ||
| import { Router, RouteMeta } from 'vue-router'; | ||
| export { C as CreateVueAppFunction } from './createVueAppFunction-c8e67ca1.js'; | ||
| declare const ClientOnly: vue.DefineComponent<{}, () => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
| [key: string]: any; | ||
| }>[] | null | undefined, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, vue.EmitsOptions, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{}>>, {}>; | ||
| /** | ||
| * Markdown rendered content | ||
| */ | ||
| declare const Content: vue.DefineComponent<{ | ||
| pageKey: { | ||
| type: StringConstructor; | ||
| required: false; | ||
| default: string; | ||
| }; | ||
| }, () => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
| [key: string]: any; | ||
| }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{ | ||
| pageKey: { | ||
| type: StringConstructor; | ||
| required: false; | ||
| default: string; | ||
| }; | ||
| }>>, { | ||
| pageKey: string; | ||
| }>; | ||
| /** | ||
| * Global Layout | ||
| */ | ||
| declare const Vuepress: vue.DefineComponent<{}, () => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
| [key: string]: any; | ||
| }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, vue.EmitsOptions, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{}>>, {}>; | ||
| /** | ||
| * Ref wrapper of `PageData` | ||
@@ -193,2 +224,7 @@ */ | ||
| declare type CreateVueAppFunction = () => Promise<{ | ||
| app: App; | ||
| router: Router; | ||
| }>; | ||
| declare type PageRouteItem = [ | ||
@@ -201,35 +237,3 @@ name: string, | ||
| declare const ClientOnly: vue.DefineComponent<{}, () => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
| [key: string]: any; | ||
| }>[] | null | undefined, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, vue.EmitsOptions, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{}>>, {}>; | ||
| /** | ||
| * Markdown rendered content | ||
| */ | ||
| declare const Content: vue.DefineComponent<{ | ||
| pageKey: { | ||
| type: StringConstructor; | ||
| required: false; | ||
| default: string; | ||
| }; | ||
| }, () => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
| [key: string]: any; | ||
| }>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{ | ||
| pageKey: { | ||
| type: StringConstructor; | ||
| required: false; | ||
| default: string; | ||
| }; | ||
| }>>, { | ||
| pageKey: string; | ||
| }>; | ||
| /** | ||
| * Global Layout | ||
| */ | ||
| declare const Vuepress: vue.DefineComponent<{}, () => vue.VNode<vue.RendererNode, vue.RendererElement, { | ||
| [key: string]: any; | ||
| }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, vue.EmitsOptions, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{}>>, {}>; | ||
| /** | ||
| * A helper function to help you define vuepress client config file | ||
@@ -259,2 +263,2 @@ */ | ||
| export { ClientConfig, ClientOnly, Content, PageDataRef, PageFrontmatterRef, PageHead, PageHeadRef, PageHeadTitle, PageHeadTitleRef, PageLang, PageLangRef, PageRouteItem, PagesData, PagesDataRef, RouteLocale, RouteLocaleRef, SiteDataRef, SiteLocaleData, SiteLocaleDataRef, UpdateHead, Vuepress, defineClientConfig, pageData, pageDataEmpty, pageFrontmatterSymbol, pageHeadSymbol, pageHeadTitleSymbol, pageLangSymbol, pagesData, resolvers, routeLocaleSymbol, siteData, siteLocaleDataSymbol, updateHeadSymbol, usePageData, usePageFrontmatter, usePageHead, usePageHeadTitle, usePageLang, usePagesData, useRouteLocale, useSiteData, useSiteLocaleData, useUpdateHead, withBase }; | ||
| export { ClientConfig, ClientOnly, Content, CreateVueAppFunction, PageDataRef, PageFrontmatterRef, PageHead, PageHeadRef, PageHeadTitle, PageHeadTitleRef, PageLang, PageLangRef, PageRouteItem, PagesData, PagesDataRef, RouteLocale, RouteLocaleRef, SiteDataRef, SiteLocaleData, SiteLocaleDataRef, UpdateHead, Vuepress, defineClientConfig, pageData, pageDataEmpty, pageFrontmatterSymbol, pageHeadSymbol, pageHeadTitleSymbol, pageLangSymbol, pagesData, resolvers, routeLocaleSymbol, siteData, siteLocaleDataSymbol, updateHeadSymbol, usePageData, usePageFrontmatter, usePageHead, usePageHeadTitle, usePageLang, usePagesData, useRouteLocale, useSiteData, useSiteLocaleData, useUpdateHead, withBase }; |
+1
-1
@@ -28,3 +28,3 @@ import { | ||
| withBase | ||
| } from "./chunk-OOQFWU6B.js"; | ||
| } from "./chunk-V3MKNX2O.js"; | ||
@@ -31,0 +31,0 @@ // src/helpers/defineClientConfig.ts |
+9
-11
| { | ||
| "name": "@vuepress/client", | ||
| "version": "2.0.0-beta.49", | ||
| "version": "2.0.0-beta.50", | ||
| "description": "Client package of VuePress", | ||
@@ -36,6 +36,6 @@ "keywords": [ | ||
| "dependencies": { | ||
| "@vue/devtools-api": "^6.2.0", | ||
| "@vuepress/shared": "2.0.0-beta.49", | ||
| "@vue/devtools-api": "^6.2.1", | ||
| "@vuepress/shared": "2.0.0-beta.50", | ||
| "vue": "^3.2.37", | ||
| "vue-router": "^4.1.2" | ||
| "vue-router": "^4.1.4" | ||
| }, | ||
@@ -47,8 +47,6 @@ "publishConfig": { | ||
| "clean": true, | ||
| "dts": [ | ||
| "src/index.ts" | ||
| ], | ||
| "dts": "./src/index.ts", | ||
| "entry": [ | ||
| "src/app.ts", | ||
| "src/index.ts" | ||
| "./src/app.ts", | ||
| "./src/index.ts" | ||
| ], | ||
@@ -66,6 +64,6 @@ "external": [ | ||
| ], | ||
| "outDir": "dist", | ||
| "outDir": "./dist", | ||
| "sourcemap": false, | ||
| "target": "es2020", | ||
| "tsconfig": "tsconfig.dts.json" | ||
| "tsconfig": "./tsconfig.dts.json" | ||
| }, | ||
@@ -72,0 +70,0 @@ "scripts": { |
| import { C as CreateVueAppFunction } from './createVueAppFunction-c8e67ca1.js'; | ||
| import 'vue'; | ||
| import 'vue-router'; | ||
| declare const createVueApp: CreateVueAppFunction; | ||
| export { createVueApp }; |
| // src/composables/pagesData.ts | ||
| import { pagesData as pagesDataRaw } from "@internal/pagesData"; | ||
| import { ref } from "vue"; | ||
| var pagesData = ref(pagesDataRaw); | ||
| var usePagesData = () => pagesData; | ||
| // src/composables/pageData.ts | ||
| import { readonly, ref as ref2 } from "vue"; | ||
| var pageDataEmpty = readonly({ | ||
| key: "", | ||
| path: "", | ||
| title: "", | ||
| lang: "", | ||
| frontmatter: {}, | ||
| excerpt: "", | ||
| headers: [] | ||
| }); | ||
| var pageData = ref2(pageDataEmpty); | ||
| var usePageData = () => pageData; | ||
| if (import.meta.webpackHot || import.meta.hot) { | ||
| __VUE_HMR_RUNTIME__.updatePageData = (data) => { | ||
| pagesData.value[data.key] = () => Promise.resolve(data); | ||
| if (data.key === pageData.value.key) { | ||
| pageData.value = data; | ||
| } | ||
| }; | ||
| } | ||
| // src/composables/pageFrontmatter.ts | ||
| import { inject } from "vue"; | ||
| var pageFrontmatterSymbol = Symbol(__VUEPRESS_DEV__ ? "pageFrontmatter" : ""); | ||
| var usePageFrontmatter = () => { | ||
| const pageFrontmatter = inject(pageFrontmatterSymbol); | ||
| if (!pageFrontmatter) { | ||
| throw new Error("usePageFrontmatter() is called without provider."); | ||
| } | ||
| return pageFrontmatter; | ||
| }; | ||
| // src/composables/pageHead.ts | ||
| import { inject as inject2 } from "vue"; | ||
| var pageHeadSymbol = Symbol(__VUEPRESS_DEV__ ? "pageHead" : ""); | ||
| var usePageHead = () => { | ||
| const pageHead = inject2(pageHeadSymbol); | ||
| if (!pageHead) { | ||
| throw new Error("usePageHead() is called without provider."); | ||
| } | ||
| return pageHead; | ||
| }; | ||
| // src/composables/pageHeadTitle.ts | ||
| import { inject as inject3 } from "vue"; | ||
| var pageHeadTitleSymbol = Symbol(__VUEPRESS_DEV__ ? "pageHeadTitle" : ""); | ||
| var usePageHeadTitle = () => { | ||
| const pageHeadTitle = inject3(pageHeadTitleSymbol); | ||
| if (!pageHeadTitle) { | ||
| throw new Error("usePageHeadTitle() is called without provider."); | ||
| } | ||
| return pageHeadTitle; | ||
| }; | ||
| // src/composables/pageLang.ts | ||
| import { inject as inject4 } from "vue"; | ||
| var pageLangSymbol = Symbol(__VUEPRESS_DEV__ ? "pageLang" : ""); | ||
| var usePageLang = () => { | ||
| const pageLang = inject4(pageLangSymbol); | ||
| if (!pageLang) { | ||
| throw new Error("usePageLang() is called without provider."); | ||
| } | ||
| return pageLang; | ||
| }; | ||
| // src/composables/routeLocale.ts | ||
| import { inject as inject5 } from "vue"; | ||
| var routeLocaleSymbol = Symbol(__VUEPRESS_DEV__ ? "routeLocale" : ""); | ||
| var useRouteLocale = () => { | ||
| const routeLocale = inject5(routeLocaleSymbol); | ||
| if (!routeLocale) { | ||
| throw new Error("useRouteLocale() is called without provider."); | ||
| } | ||
| return routeLocale; | ||
| }; | ||
| // src/composables/siteData.ts | ||
| import { siteData as siteDataRaw } from "@internal/siteData"; | ||
| import { ref as ref3 } from "vue"; | ||
| var siteData = ref3(siteDataRaw); | ||
| var useSiteData = () => siteData; | ||
| if (import.meta.webpackHot || import.meta.hot) { | ||
| __VUE_HMR_RUNTIME__.updateSiteData = (data) => { | ||
| siteData.value = data; | ||
| }; | ||
| } | ||
| // src/composables/siteLocaleData.ts | ||
| import { inject as inject6 } from "vue"; | ||
| var siteLocaleDataSymbol = Symbol(__VUEPRESS_DEV__ ? "siteLocaleData" : ""); | ||
| var useSiteLocaleData = () => { | ||
| const siteLocaleData = inject6(siteLocaleDataSymbol); | ||
| if (!siteLocaleData) { | ||
| throw new Error("useSiteLocaleData() is called without provider."); | ||
| } | ||
| return siteLocaleData; | ||
| }; | ||
| // src/composables/updateHead.ts | ||
| import { inject as inject7 } from "vue"; | ||
| var updateHeadSymbol = Symbol(__VUEPRESS_DEV__ ? "updateHead" : ""); | ||
| var useUpdateHead = () => { | ||
| const updateHead = inject7(updateHeadSymbol); | ||
| if (!updateHead) { | ||
| throw new Error("useUpdateHead() is called without provider."); | ||
| } | ||
| return updateHead; | ||
| }; | ||
| // src/resolvers.ts | ||
| import { | ||
| dedupeHead, | ||
| isArray, | ||
| isString, | ||
| resolveLocalePath | ||
| } from "@vuepress/shared"; | ||
| import { reactive } from "vue"; | ||
| var resolvers = reactive({ | ||
| resolvePageData: async (pageKey) => { | ||
| const pageDataResolver = pagesData.value[pageKey]; | ||
| const pageData2 = await pageDataResolver?.(); | ||
| return pageData2 ?? pageDataEmpty; | ||
| }, | ||
| resolvePageFrontmatter: (pageData2) => pageData2.frontmatter, | ||
| resolvePageHead: (headTitle, frontmatter, siteLocale) => { | ||
| const description = isString(frontmatter.description) ? frontmatter.description : siteLocale.description; | ||
| const head = [ | ||
| ...isArray(frontmatter.head) ? frontmatter.head : [], | ||
| ...siteLocale.head, | ||
| ["title", {}, headTitle], | ||
| ["meta", { name: "description", content: description }] | ||
| ]; | ||
| return dedupeHead(head); | ||
| }, | ||
| resolvePageHeadTitle: (page, siteLocale) => `${page.title ? `${page.title} | ` : ``}${siteLocale.title}`, | ||
| resolvePageLang: (pageData2) => pageData2.lang || "en", | ||
| resolveRouteLocale: (locales, routePath) => resolveLocalePath(locales, routePath), | ||
| resolveSiteLocaleData: (site, routeLocale) => ({ | ||
| ...site, | ||
| ...site.locales[routeLocale] | ||
| }) | ||
| }); | ||
| // src/components/ClientOnly.ts | ||
| import { defineComponent, onMounted, ref as ref4 } from "vue"; | ||
| var ClientOnly = defineComponent({ | ||
| name: "ClientOnly", | ||
| setup(_, ctx) { | ||
| const isMounted = ref4(false); | ||
| onMounted(() => { | ||
| isMounted.value = true; | ||
| }); | ||
| return () => isMounted.value ? ctx.slots.default?.() : null; | ||
| } | ||
| }); | ||
| // src/components/Content.ts | ||
| import { pagesComponents } from "@internal/pagesComponents"; | ||
| import { computed, defineComponent as defineComponent2, h } from "vue"; | ||
| var Content = defineComponent2({ | ||
| name: "Content", | ||
| props: { | ||
| pageKey: { | ||
| type: String, | ||
| required: false, | ||
| default: "" | ||
| } | ||
| }, | ||
| setup(props) { | ||
| const page = usePageData(); | ||
| const pageComponent = computed(() => pagesComponents[props.pageKey || page.value.key]); | ||
| return () => pageComponent.value ? h(pageComponent.value) : h("div", __VUEPRESS_DEV__ ? "Page does not exist. This is a fallback content." : "404 Not Found"); | ||
| } | ||
| }); | ||
| // src/components/Vuepress.ts | ||
| import { layoutComponents } from "@internal/layoutComponents"; | ||
| import { isString as isString2 } from "@vuepress/shared"; | ||
| import { computed as computed2, defineComponent as defineComponent3, h as h2, resolveComponent } from "vue"; | ||
| var Vuepress = defineComponent3({ | ||
| name: "Vuepress", | ||
| setup() { | ||
| const page = usePageData(); | ||
| const layoutComponent = computed2(() => { | ||
| let layoutName; | ||
| if (page.value.path) { | ||
| const frontmatterLayout = page.value.frontmatter.layout; | ||
| if (isString2(frontmatterLayout)) { | ||
| layoutName = frontmatterLayout; | ||
| } else { | ||
| layoutName = "Layout"; | ||
| } | ||
| } else { | ||
| layoutName = "404"; | ||
| } | ||
| return layoutComponents[layoutName] || resolveComponent(layoutName, false); | ||
| }); | ||
| return () => h2(layoutComponent.value); | ||
| } | ||
| }); | ||
| // src/withBase.ts | ||
| import { isLinkHttp, removeLeadingSlash } from "@vuepress/shared"; | ||
| var withBase = (url) => { | ||
| if (isLinkHttp(url)) | ||
| return url; | ||
| const base = useSiteData().value.base; | ||
| return `${base}${removeLeadingSlash(url)}`; | ||
| }; | ||
| export { | ||
| pagesData, | ||
| usePagesData, | ||
| pageDataEmpty, | ||
| pageData, | ||
| usePageData, | ||
| pageFrontmatterSymbol, | ||
| usePageFrontmatter, | ||
| pageHeadSymbol, | ||
| usePageHead, | ||
| pageHeadTitleSymbol, | ||
| usePageHeadTitle, | ||
| pageLangSymbol, | ||
| usePageLang, | ||
| routeLocaleSymbol, | ||
| useRouteLocale, | ||
| siteData, | ||
| useSiteData, | ||
| siteLocaleDataSymbol, | ||
| useSiteLocaleData, | ||
| updateHeadSymbol, | ||
| useUpdateHead, | ||
| resolvers, | ||
| ClientOnly, | ||
| Content, | ||
| Vuepress, | ||
| withBase | ||
| }; |
| import { App } from 'vue'; | ||
| import { Router } from 'vue-router'; | ||
| declare type CreateVueAppFunction = () => Promise<{ | ||
| app: App; | ||
| router: Router; | ||
| }>; | ||
| export { CreateVueAppFunction as C }; |
29982
6.96%922
12.71%10
-9.09%+ Added
- Removed
Updated
Updated