UNPKG

@starzkg/vuepress-plugin-page-info

Version:
34 lines (33 loc) 1.31 kB
import { useLocaleConfig } from '@starzkg/vuepress-shared/lib/esm/client'; import { usePageData } from '@vuepress/client'; import { computed, defineComponent, h } from 'vue'; import { commentOptions, pageInfoI18n, readingTimeI18n } from '../define'; import { WordIcon } from './icons'; export default defineComponent({ name: 'WordInfo', setup() { const page = usePageData(); const pageInfoLocale = useLocaleConfig(pageInfoI18n); const readingTimeLocale = useLocaleConfig(readingTimeI18n); const words = computed(() => page.value.readingTime.words.toString()); const wordText = computed(() => readingTimeLocale.value.word.replace('$word', words.value)); return () => wordText.value ? h('span', { class: 'words-info', ...(commentOptions.hint !== false ? { 'ariaLabel': pageInfoLocale.value.words, 'data-balloon-pos': 'down', } : {}), }, [ h(WordIcon), h('span', wordText.value), h('meta', { property: 'wordCount', content: words.value, }), ]) : null; }, });