hirsun-vuepress-theme-hope-plus
Version:
A light vuepress theme with tons of features and typewriter effect
49 lines • 2.16 kB
JavaScript
import { useRouteLocale, useSiteLocaleData, withBase } from "@vuepress/client";
import { computed, defineComponent, h } from "vue";
import { VPLink } from "vuepress-shared/client";
import { useThemeLocaleData } from "@theme-hope/composables/index";
import "../styles/navbar-brand.scss";
export default defineComponent({
name: "NavbarBrand",
setup() {
const routeLocale = useRouteLocale();
const siteLocale = useSiteLocaleData();
const themeLocale = useThemeLocaleData();
const siteBrandLink = computed(() => themeLocale.value.home || routeLocale.value);
const siteTitle = computed(() => siteLocale.value.title);
const siteBrandTitle = computed(() => themeLocale.value.navTitle ?? siteTitle.value);
const siteBrandLogo = computed(() => themeLocale.value.logo ? withBase(themeLocale.value.logo) : null);
const siteBrandLogoDark = computed(() => themeLocale.value.logoDark ? withBase(themeLocale.value.logoDark) : null);
return () => h(VPLink, { to: siteBrandLink.value, class: "vp-brand" }, () => [
siteBrandLogo.value
? h("img", {
class: [
"vp-nav-logo",
{ light: Boolean(siteBrandLogoDark.value) },
],
src: siteBrandLogo.value,
alt: siteTitle.value,
})
: null,
siteBrandLogoDark.value
? h("img", {
class: ["vp-nav-logo dark"],
src: siteBrandLogoDark.value,
alt: siteTitle.value,
})
: null,
siteBrandTitle.value
? h("span", {
class: [
"vp-site-name",
{
"hide-in-pad": siteBrandLogo.value &&
themeLocale.value.hideSiteNameOnMobile !== false,
},
],
}, siteBrandTitle.value)
: null,
]);
},
});
//# sourceMappingURL=NavbarBrand.js.map