hirsun-vuepress-theme-hope-plus
Version:
A light vuepress theme with tons of features and typewriter effect
24 lines • 1.01 kB
JavaScript
import { usePageData } from "@vuepress/client";
import { defineComponent, h } from "vue";
import { VPLink, entries, generateIndexFromHash } from "vuepress-shared/client";
import { useCategoryMap } from "@theme-hope/modules/blog/composables/index";
import "../styles/category-list.scss";
export default defineComponent({
name: "CategoryList",
setup() {
const page = usePageData();
const categoryMap = useCategoryMap();
return () => h("ul", { class: "vp-category-list" }, entries(categoryMap.value.map).map(([category, { path, items }]) => h("li", {
class: [
"vp-category",
// TODO: magic number 9 is tricky here
`vp-category${generateIndexFromHash(category, 9)}`,
{ active: path === page.value.path },
],
}, h(VPLink, { to: path }, () => [
category,
h("span", { class: "count" }, items.length),
]))));
},
});
//# sourceMappingURL=CategoryList.js.map