UNPKG

@starzkg/vuepress-plugin-page-info

Version:
36 lines (35 loc) 1.41 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 { TimerIcon } from './icons'; export default defineComponent({ name: 'ReadingTimeInfo', setup() { const page = usePageData(); const pageInfoLocale = useLocaleConfig(pageInfoI18n); const readingTimeLocale = useLocaleConfig(readingTimeI18n); const readingTime = computed(() => page.value.readingTime.minutes < 1 ? [readingTimeLocale.value.minute, 'PT1M'] : [ readingTimeLocale.value.time.replace('$time', Math.round(page.value.readingTime.minutes).toString()), `PT${Math.round(page.value.readingTime.minutes)}M`, ]); return () => h('span', { class: 'reading-time-info', ...(commentOptions.hint !== false ? { 'ariaLabel': pageInfoLocale.value.readingTime, 'data-balloon-pos': 'down', } : {}), }, [ h(TimerIcon), h('span', readingTime.value[0]), h('meta', { property: 'timeRequired', content: readingTime.value[1], }), ]); }, });