Đoạn mô tả ngắn giới thiệu nội dung bài viết. Được lấy từ trường "excerpt" trong Sanity CMS.
Nội dung bài viết sẽ được tải tự động từ Sanity CMS qua Cloudflare Worker. Template này là giao diện tĩnh, khi deploy lên Cloudflare Pages cùng với function /functions/bai-viet/[slug].js, nội dung sẽ được inject vào div #artBody này.
Hướng dẫn setup (dành cho developer)
Trang này hoạt động theo mô hình SSR (Server-Side Rendering) nhẹ qua Cloudflare Workers:
- User truy cập
otahub.asia/bai-viet/ten-bai
- Cloudflare Worker intercept request, query Sanity API
- Worker inject title, description, body vào HTML này
- Trả về HTML đầy đủ với SEO metadata chính xác
Khi chưa có Cloudflare Worker, bạn có thể dùng JavaScript fetch() trực tiếp trong trang này để load nội dung từ Sanity. Không cần SSR cho giai đoạn đầu.
Sanity Portable Text Rendering
Nội dung từ Sanity được lưu dưới dạng Portable Text, cần convert sang HTML trước khi render. Sử dụng thư viện @portabletext/to-html trong Cloudflare Worker.