UNPKG

vuepress-theme-plume

Version:

A Blog&Document Theme for VuePress 2.0

85 lines (82 loc) 2.59 kB
// src/client/config.ts import { defineClientConfig } from "vuepress/client"; import { enhanceScrollBehavior, setupDarkMode, setupEncrypt, setupHeaders, setupSidebar, setupThemeData, setupWatermark } from "./composables/index.js"; // src/client/globalComponents.ts import VPBadge from "@theme/global/VPBadge.vue"; import VPCard from "@theme/global/VPCard.vue"; import VPCardGrid from "@theme/global/VPCardGrid.vue"; import VPCardMasonry from "@theme/global/VPCardMasonry.vue"; import VPImageCard from "@theme/global/VPImageCard.vue"; import VPLinkCard from "@theme/global/VPLinkCard.vue"; import VPHomeBox from "@theme/Home/VPHomeBox.vue"; import VPButton from "@theme/VPButton.vue"; import VPIcon from "@theme/VPIcon.vue"; import { hasGlobalComponent } from "@vuepress/helper/client"; import { h, resolveComponent } from "vue"; function globalComponents(app) { app.component("Badge", VPBadge); app.component("VPBadge", VPBadge); app.component("VPCard", VPCard); app.component("Card", VPCard); app.component("VPCardGrid", VPCardGrid); app.component("CardGrid", VPCardGrid); app.component("VPLinkCard", VPLinkCard); app.component("LinkCard", VPLinkCard); app.component("VPImageCard", VPImageCard); app.component("ImageCard", VPImageCard); app.component("VPCardMasonry", VPCardMasonry); app.component("CardMasonry", VPCardMasonry); app.component("Icon", VPIcon); app.component("VPIcon", VPIcon); app.component("VPButton", VPButton); app.component("HomeBox", VPHomeBox); app.component("VPHomeBox", VPHomeBox); app.component("DocComment", (props) => { if (hasGlobalComponent("CommentService")) { return h(resolveComponent("CommentService"), props); } return null; }); app.component("DocGitContributors", () => { if (hasGlobalComponent("GitContributors")) { return h(resolveComponent("GitContributors")); } return null; }); app.component("DocGitChangelog", () => { if (hasGlobalComponent("GitChangelog")) { return h(resolveComponent("GitChangelog")); } return null; }); } // src/client/config.ts import Layout from "./layouts/Layout.vue"; import NotFound from "./layouts/NotFound.vue"; import "./styles/index.css"; var config_default = defineClientConfig({ enhance({ app, router }) { setupThemeData(app); setupDarkMode(app); enhanceScrollBehavior(router); globalComponents(app); }, setup() { setupSidebar(); setupHeaders(); setupEncrypt(); setupWatermark(); }, layouts: { Layout, NotFound } }); export { config_default as default };