UNPKG

vuepress-theme-hope

Version:

A light vuepress theme with tons of features

34 lines 1.46 kB
import { entries, isLinkHttp } from "@vuepress/helper/client"; import { computed, defineComponent, h } from "vue"; import { icons } from "@temp/theme-hope/socialMedia.js"; import { usePure } from "@theme-hope/composables/index"; import { useBlogOptions } from "@theme-hope/modules/blog/composables/index"; import "../styles/social-medias.scss"; export default defineComponent({ name: "SocialMedias", setup() { const blogOptions = useBlogOptions(); const isPure = usePure(); const mediaLinks = computed(() => entries(blogOptions.value.medias ?? {}).map(([media, config]) => typeof config === "string" ? { name: media, icon: icons[media], link: config, } : { name: media, ...config })); return () => mediaLinks.value.length ? h("div", { class: "vp-social-medias" }, mediaLinks.value.map(({ name, icon, link }) => h("a", { class: "vp-social-media", href: link, rel: "noopener noreferrer", target: "_blank", "aria-label": name || "", ...(isPure.value ? {} : { "data-balloon-pos": "up" }), innerHTML: isLinkHttp(icon) ? `<img class="vp-social-media-icon ${name}-icon" src="${icon}">` : icon, }))) : null; }, }); //# sourceMappingURL=SocialMedias.js.map