Content Directory

The Nuxt Content module 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.

Get Started

Installation

Install the @nuxt/content module in your project:

yarn
yarn add --dev @nuxt/content
npm
npm install --save-dev @nuxt/content
pnpm
pnpm add -D @nuxt/content

Then, add @nuxt/content to the modules section of nuxt.config.ts:

nuxt.config.ts
export default defineNuxtConfig({
  modules: [
    '@nuxt/content'
  ],
  content: {
    // https://content.nuxtjs.org/api/configuration
  }
})

Create Content

Place your markdown files inside the content/ directory in the root directory of your project:

content/index.md
# Hello Content

The module automatically loads and parses them.

Render Pages

To render content pages, add a catch-all route using the ContentDoc component:

pages/[...slug].vue
<template>
  <main>
    <ContentDoc />
  </main>
</template>

Documentation

Head over to https://content.nuxtjs.org 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.
Edit this page on GitHub Updated at Mon, Oct 3, 2022