Nuxt/docs/2.guide/2.directory-structure/1.content.md
2025-01-20 13:50:42 +00:00

1.9 KiB

title head.title description navigation.icon
content content/ Use the content/ directory to create a file-based CMS for your application. i-ph-folder

Nuxt Content reads the content/ directory in your project and parses .md, .yml, .csv and .json files to create a file-based CMS for your application.

  • Render your content with built-in components.
  • Query your content with a MongoDB-like API.
  • Use your Vue components in Markdown files with the MDC syntax.
  • Automatically generate your navigation.

::read-more{to="https://content.nuxt.com" target="_blank"} Learn more in Nuxt Content documentation. ::

Enable Nuxt Content

Install the @nuxt/content module in your project as well as adding it to your nuxt.config.ts with one command:

npx nuxi module add content

Create Content

Place your markdown files inside the content/ directory:

# Hello Content

The module automatically loads and parses them.

Render Content

To render content pages, add a catch-all route using the <ContentRenderer> component:

<script lang="ts" setup>
const route = useRoute()
const { data: page } = await useAsyncData(route.path, () => {
  return queryCollection('content').path(route.path).first()
})
</script>

<template>
  <div>
    <header><!-- ... --></header>

    <ContentRenderer v-if="page" :value="page" />

    <footer><!-- ... --></footer>
  </div>
</template>

Documentation

::tip{ icon="i-ph-book" } Head over to https://content.nuxt.com to learn more about the Content module features, such as how to build queries and use Vue components in your Markdown files with the MDC syntax. ::