vp-last-updated-at.vue 985 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <script setup lang="ts">
  2. import { computed, onMounted, ref } from 'vue'
  3. import { useData } from 'vitepress'
  4. import { useLang } from '../../composables/lang'
  5. import localeData from '../../../i18n/component/last-update-at.json'
  6. const { page } = useData()
  7. const lang = useLang()
  8. const prefix = computed(() => {
  9. return localeData[lang.value].title
  10. })
  11. const datetime = ref('')
  12. onMounted(() => {
  13. datetime.value = new Date(page.value.lastUpdated).toLocaleString(lang.value)
  14. })
  15. </script>
  16. <template>
  17. <p class="last-updated text-sm">
  18. <span class="prefix">{{ prefix }}:</span>
  19. <span class="datetime">{{ datetime }}</span>
  20. </p>
  21. </template>
  22. <style scoped lang="scss">
  23. @use '../../styles/mixins' as *;
  24. .last-updated {
  25. display: inline-block;
  26. margin: 0;
  27. line-height: 1.4;
  28. color: var(--text-color-light);
  29. .prefix {
  30. display: inline-block;
  31. font-weight: 500;
  32. }
  33. .datetime {
  34. display: inline-block;
  35. margin-left: 6px;
  36. font-weight: 400;
  37. }
  38. }
  39. </style>