Nuxt Content v3 bilan statik blog qurish
Bu sayt qanday ishlaydi: Markdown kolleksiyalar, SQLite asosidagi so'rovlar va Nuxt bilan to'liq statik generatsiya.
Bu sayt — to'liq statik Nuxt ilovasi. Har bir post repo ichidagi Markdown fayl, nuxt generate esa hammasini oddiy HTML'ga aylantiradi. Sozlamaning qiziqarli qismlari quyida.
Kolleksiyalar tipizatsiyalangan
Nuxt Content v3 eski fayl-asosidagi so'rovlarni kolleksiyalar bilan almashtirdi — sxema e'lon qilasiz va frontmatter build vaqtida tekshiriladi:
const blogSchema = z.object({
title: z.string(),
description: z.string(),
date: z.string(),
tags: z.array(z.string()).default([]),
})
Endi frontmatter'dagi xatolar jimgina undefined ko'rsatish o'rniga build'ni to'xtatadi. Bu v2'ga nisbatan eng katta yutuq.
So'rovlar SQL'ga o'xshaydi, chunki ular SQL
Ichkarida kontent SQLite'da saqlanadi. So'rov API'si SQL'ga kompilyatsiya bo'ladi:
const posts = await queryCollection('blog_uz')
.order('date', 'DESC')
.limit(3)
.all()
Ikki til — ikki kolleksiya
Ikki tilli sayt uchun har locale'ga alohida kolleksiya eng sodda yechim:
content/
en/blog/ → blog_en kolleksiyasi, /blog manzilida
uz/blog/ → blog_uz kolleksiyasi, /uz/blog manzilida
Kichik composable aktiv til bo'yicha to'g'ri kolleksiyani tanlaydi — qolgan kod i18n haqida umuman o'ylamaydi.
Natija
Server yo'q, production'da database yo'q, CMS obunasi yo'q. Faqat Markdown fayllar, git tarixi va istalgan CDN tarqata oladigan statik HTML.