Nuxt/docs/2.guide/2.directory-structure/1.content.md

65 lines
1.9 KiB
Markdown
Raw Normal View History

---
title: 'content'
head.title: 'content/'
description: Use the content/ directory to create a file-based CMS for your application.
navigation.icon: i-ph-folder
---
[Nuxt Content](https://content.nuxt.com) reads the [`content/` directory](/docs/guide/directory-structure/content) 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:
```bash [Terminal]
npx nuxi module add content
```
## Create Content
Place your markdown files inside the `content/` directory:
```md [content/index.md]
# Hello Content
```
The module automatically loads and parses them.
## Render Content
2025-01-20 13:50:01 +00:00
To render content pages, add a [catch-all route](/docs/guide/directory-structure/pages/#catch-all-route) using the [`<ContentRenderer>`](https://content.nuxt.com/docs/components/content-renderer) component:
```vue [pages/[...slug\\].vue]
2025-01-20 13:50:01 +00:00
<script lang="ts" setup>
const route = useRoute()
const { data: page } = await useAsyncData(route.path, () => {
return queryCollection('content').path(route.path).first()
})
</script>
<template>
2025-01-20 13:50:01 +00:00
<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.
::