vuepress-theme-hope
Version:
A light vuepress theme with tons of features
48 lines • 2.49 kB
JavaScript
import { hasGlobalComponent } from "@vuepress/helper/client";
import { useContributors, useLastUpdated } from "@vuepress/plugin-git/client";
import { defineComponent, h } from "vue";
import AutoLink from "@theme-hope/components/base/AutoLink";
import EditIcon from "@theme-hope/components/base/EditIcon";
import { useEditLink } from "@theme-hope/composables/info/useEditLink";
import { useMetaLocale } from "@theme-hope/composables/info/useMetaLocale";
import { useMetaInfo } from "@theme-hope/composables/useMetaInfo";
import "../../styles/info/page-meta.scss";
export default defineComponent({
name: "PageMeta",
setup() {
const metaInfo = useMetaInfo();
const contributors = useContributors();
const editLink = useEditLink();
const lastUpdated = useLastUpdated(metaInfo.lastUpdated);
const metaLocale = useMetaLocale();
return () => h("footer", { class: "vp-page-meta" }, [
editLink.value
? h("div", { class: "vp-meta-item edit-link" }, h(AutoLink, { class: "vp-meta-label", config: editLink.value }, { before: () => h(EditIcon) }))
: null,
h("div", { class: "vp-meta-item git-info" }, [
(!metaInfo.changelog.value || !hasGlobalComponent("GitChangelog")) && lastUpdated.value
? h("div", { class: "update-time" }, [
h("span", { class: "vp-meta-label" }, `${lastUpdated.value.locale}: `),
h("time", {
class: "vp-meta-info",
datetime: lastUpdated.value.iso,
"data-allow-mismatch": "",
}, lastUpdated.value.text),
])
: null,
metaInfo.contributors.value &&
metaInfo.contributors.value !== "content" &&
contributors.value.length > 0
? h("div", { class: "contributors" }, [
h("span", { class: "vp-meta-label" }, `${metaLocale.value.contributors}: `),
contributors.value.map(({ email, name }, index, items) => [
h("span", { class: "vp-meta-info", title: `email: ${email}` }, name),
index === items.length - 1 ? "" : ",",
]),
])
: null,
]),
]);
},
});
//# sourceMappingURL=PageMeta.js.map