Skip to content

Commit

Permalink
🔎 Connect contentful response to meta tags (#14)
Browse files Browse the repository at this point in the history
* 🔎 Resolve #6

* ✨ Start implementing contentful CMS (#10)
* 🔎 Connect contentful response to meta tags (#13)
* 📝 Update .env template
* ✨ Connect blog with Meta Tags
  • Loading branch information
TutorFx authored Sep 21, 2023
1 parent 08ec54f commit 31fe30c
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 42 deletions.
6 changes: 4 additions & 2 deletions src/composables/useMenu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,10 @@ const getDocumentos = async () => {
}

const getBlogPosts = async () => {
const data = await queryContent('/blog').find()
return data.map(documento => ({ to: documento._path, title: documento.title }))
const data = await $fetch<any>('/api/v1/blog')
return data.items?.map((item: {fields:{ path: string, title: string }}) => {
return ({ to: `/blog/${item.fields.path}`, title: item.fields.title })
})
}

const getBeneficios = async () => {
Expand Down
36 changes: 0 additions & 36 deletions src/content/blog/site-rapido-vs-site-lento.md

This file was deleted.

16 changes: 15 additions & 1 deletion src/pages/blog/[slug].vue
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,22 @@ import markdownParser from '@nuxt/content/transformers/markdown'
const route = useRoute()
const { data: content, error } = await useFetch<any>(`/api/v1/blog/${route.params.slug ?? ''}`)
const parsedMarkdown = content.value ? await markdownParser.parse('md', content.value.items.at(0).fields.body ?? '') : null
const filteredContent = computed(() => content.value.items.at(0))
if (filteredContent) {
defineOgImage({
component: 'OGImageBlog',
title: filteredContent.value.fields.title,
})
useHead({
title: filteredContent.value.fields.title,
})
useSchemaOrg([
defineArticle({
headline: filteredContent.value.fields.title,
})
])
}
</script>
8 changes: 5 additions & 3 deletions src/server/api/_sitemap-urls.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
export default defineEventHandler(async () => {
const [
content
content,
blog
] = await Promise.all([
$fetch<{url: string, createdAt: string }[]>('/api/content')
$fetch<{url: string, createdAt: string }[]>('/api/content'),
$fetch<{url: string, createdAt: string, updatedAt: string}[]>('/api/blog'),
])
return [...content].map((p) => {
return [...content, ...blog].map((p) => {
return { loc: p.url, lastmod: p.createdAt }
})
})
19 changes: 19 additions & 0 deletions src/server/api/blog.get.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { createContent } from "@/contentful"

export default defineEventHandler(async () => {
const client = createContent()
const response = await client.getEntries({
content_type: 'blog',
limit: 20,
// @ts-expect-error - Select got an type error.
select: 'fields.path, sys.updatedAt, sys.createdAt'
})
return response.items.map(item => {
console.log(item)
return ({
url: `/blog/${item.fields.path}`,
updatedAt: item.sys.updatedAt,
createdAt: item.sys.createdAt,
})
})
})

0 comments on commit 31fe30c

Please sign in to comment.