UNPKG

vuepress-theme-hope

Version:

A light vuepress theme with tons of features

45 lines 1.91 kB
import { RenderDefault, hasGlobalComponent } from "@vuepress/helper/client"; import { defineComponent, h, resolveComponent } from "vue"; import { withBase } from "vuepress/client"; import BreadCrumb from "@theme-hope/components/base/BreadCrumb"; import MarkdownContent from "@theme-hope/components/base/MarkdownContent"; import PageNav from "@theme-hope/components/base/PageNav"; import PageTitle from "@theme-hope/components/base/PageTitle"; import TOC from "@theme-hope/components/base/TOC"; import PageMeta from "@theme-hope/components/info/PageMeta"; import { useDarkMode } from "@theme-hope/composables/useDarkMode"; import { useData } from "@theme-hope/composables/useData"; import "../../styles/base/page-content.scss"; export default defineComponent({ name: "PageContent", slots: Object, setup(_props, { slots }) { const { frontmatter } = useData(); const { isDarkMode } = useDarkMode(); return () => h("main", { id: "main-content", class: "vp-page" }, h(hasGlobalComponent("LocalEncrypt") ? resolveComponent("LocalEncrypt") : RenderDefault, () => [ slots.pageTop?.(), frontmatter.value.cover ? h("div", { class: "page-cover" }, h("img", { src: withBase(frontmatter.value.cover), alt: "", "no-view": "", })) : null, h(BreadCrumb), h(PageTitle), h(TOC, null, slots), slots.content?.() ?? h(MarkdownContent, null, slots), h(PageMeta), h(PageNav), hasGlobalComponent("CommentService") ? h(resolveComponent("CommentService"), { darkmode: isDarkMode.value, }) : null, slots.pageBottom?.(), ])); }, }); //# sourceMappingURL=PageContent.js.map