hirsun-vuepress-theme-hope-plus
Version:
A light vuepress theme with tons of features and typewriter effect
57 lines • 2.17 kB
JavaScript
import { usePageData, usePageFrontmatter, useSiteLocaleData, } from "@vuepress/client";
import { computed } from "vue";
import { useThemeLocaleData } from "@theme-hope/composables/index";
import { resolveEditLink } from "@theme-hope/modules/info/utils/index";
export const useEditLink = () => {
const themeLocale = useThemeLocaleData();
const page = usePageData();
const frontmatter = usePageFrontmatter();
return computed(() => {
const { repo, docsRepo = repo, docsBranch = "main", docsDir = "", editLink, editLinkPattern = "", } = themeLocale.value;
const showEditLink = frontmatter.value.editLink ?? editLink ?? true;
if (!showEditLink)
return null;
if (!docsRepo)
return null;
const link = resolveEditLink({
docsRepo,
docsBranch,
docsDir,
editLinkPattern,
filePathRelative: page.value.filePathRelative,
});
if (!link)
return null;
return {
text: themeLocale.value.metaLocales.editLink,
link,
};
});
};
export const useUpdateTime = () => {
const siteLocale = useSiteLocaleData();
const themeLocale = useThemeLocaleData();
const page = usePageData();
const frontmatter = usePageFrontmatter();
return computed(() => {
const showLastUpdated = frontmatter.value.lastUpdated ?? themeLocale.value.lastUpdated ?? true;
if (!showLastUpdated)
return null;
if (!page.value.git?.updatedTime)
return null;
const updatedDate = new Date(page.value.git?.updatedTime);
return updatedDate.toLocaleString(siteLocale.value.lang);
});
};
export const useContributors = () => {
const themeLocale = useThemeLocaleData();
const page = usePageData();
const frontmatter = usePageFrontmatter();
return computed(() => {
const showContributors = frontmatter.value.contributors ?? themeLocale.value.contributors ?? true;
if (!showContributors)
return null;
return page.value.git?.contributors ?? null;
});
};
//# sourceMappingURL=meta.js.map