hirsun-vuepress-theme-hope-plus
Version:
A light vuepress theme with tons of features and typewriter effect
56 lines • 2.5 kB
JavaScript
import { usePageData, usePageFrontmatter } from "@vuepress/client";
import { computed, defineComponent, h, resolveComponent } from "vue";
import DropTransition from "@theme-hope/components/transitions/DropTransition";
import ArticleList from "@theme-hope/modules/blog/components/ArticleList";
import BlogWrapper from "@theme-hope/modules/blog/components/BlogWrapper";
import CategoryList from "@theme-hope/modules/blog/components/CategoryList";
import InfoPanel from "@theme-hope/modules/blog/components/InfoPanel";
import TagList from "@theme-hope/modules/blog/components/TagList";
import { useCategoryMap, useTagMap, } from "@theme-hope/modules/blog/composables/index";
import "../styles/page.scss";
export default defineComponent({
name: "BlogPage",
components: {
CategoryList,
TagList,
},
setup() {
const page = usePageData();
const frontmatter = usePageFrontmatter();
const categoryMap = useCategoryMap();
const tagMap = useTagMap();
const blogOptions = computed(() => (frontmatter.value.blog || {}));
const componentName = computed(() => {
const { key = "" } = blogOptions.value;
return key === "category"
? "CategoryList"
: key === "tag"
? "TagList"
: null;
});
const items = computed(() => {
const { name = "", key = "" } = blogOptions.value;
return key === "category"
? name
? categoryMap.value.map[name].items
: []
: key === "tag"
? name
? tagMap.value.map[name].items
: []
: [];
});
return () => h(BlogWrapper, () => h("div", { class: "vp-page vp-blog" }, h("div", { class: "blog-page-wrapper" }, [
h("main", { id: "main-content", class: "vp-blog-main" }, [
h(DropTransition, () => componentName.value
? h(resolveComponent(componentName.value))
: null),
blogOptions.value.name
? h(DropTransition, { appear: true, delay: 0.24 }, () => h(ArticleList, { key: page.value.path, items: items.value }))
: null,
]),
h(DropTransition, { delay: 0.16 }, () => h(InfoPanel, { key: "blog" })),
])));
},
});
//# sourceMappingURL=BlogCategory.js.map