1
0

index.vue 916 B

123456789101112131415161718192021222324252627282930313233
  1. <script setup lang="ts">
  2. const { data: page } = await useAsyncData('index', () => queryCollection('landing').path('/').first())
  3. if (!page.value) {
  4. throw createError({ statusCode: 404, statusMessage: 'Page not found', fatal: true })
  5. }
  6. const title = page.value.seo?.title || page.value.title
  7. const description = page.value.seo?.description || page.value.description
  8. const siteName = typeof page.value.seo?.siteName === 'string' ? page.value.seo.siteName : 'TresJS'
  9. useSeoMeta({
  10. titleTemplate: title,
  11. ogTitle: title,
  12. description,
  13. ogSiteName: siteName,
  14. ogDescription: description,
  15. twitterCard: 'summary_large_image',
  16. ogImage: '/og-image.png',
  17. twitterImage: '/og-image.png',
  18. ogUrl: 'https://tresjs.org',
  19. twitterTitle: title,
  20. twitterDescription: description,
  21. })
  22. </script>
  23. <template>
  24. <ContentRenderer
  25. v-if="page"
  26. class="bg-default"
  27. :value="page"
  28. :prose="false"
  29. />
  30. </template>