announcementwriting · 3 min read

Hello World

Nenad Novakovic

Nenad Novakovic

A sample post showing every field the blog collection supports, from frontmatter through to MDC components.
Abstract gradient artwork with the words Hello World

This post exists so the blog_en collection has something real to query. Delete it once your own writing lands — or keep it around as a reference for the frontmatter shape.

Frontmatter

Every field above is validated by the schema in content.config.ts. Adding a field that is not in the schema is fine — it just will not be typed. Removing a required one fails the build, which is the point.

draft: true keeps a post out of production listings. Filter on it when you query:

const { data: posts } = await useAsyncData('blog', () =>
  queryCollection('blog_en')
    .where('draft', '=', false)
    .order('createdAt', 'DESC')
    .all(),
)

Writing

Markdown works as you would expect — bold, italic, inline code, and links.

Blockquotes render through the prose components the UI layer ships.

MDC is supported, so any auto-imported Vue component can be used directly in the body:

This is a callout, written in Markdown.

Images

The featured image lives in public/images/blog/. Reference it from image.src and it is available to the listing, the post header, and the OG image.

That is the whole loop: write a file, get a typed, queryable document.

Last updated