32
Re:Nuxt 100 天練習曲
Day 32

內建的部落格引擎 (content/)

Day 32·Nuxt Content·Markdown

您是否曾經想過,如果能直接在專案裡寫 Markdown (`.md`) 檔案,它就自動變成一個部落格頁面,那該有多好?

Nuxt Content 模組以及它所使用的 content/ 資料夾,就是為了實現這個夢想而生。

1. 什麼是 Nuxt Content?

您可以把它想像成是 Nuxt 內建的一個迷你 CMS (內容管理系統) 或部落格引擎

您不再需要架設一個獨立的 WordPress 或 Medium,可以直接在您的 Nuxt 專案中,透過簡單的檔案來管理您的文章、文件或任何結構化內容。

它會讀取 content/ 資料夾裡的所有 .md, .yml, .csv, .json 檔案,並把它們變成可以查詢的資料。

2. 三步驟打造您的內容網站

讓我們用一個簡單的例子,看看建立一個部落格頁面有多快。

1

第一步:安裝引擎

Nuxt Content 是一個模組,我們需要先用一個指令來安裝並啟用它:

安裝指令
npx nuxt module add content

這個指令會幫我們安裝好模組,並在 nuxt.config.ts 中自動啟用。

2

第二步:撰寫第一篇文章

在專案根目錄建立一個 content/ 資料夾,並在裡面新增一個檔案,例如 hello-world.md

檔案最上方可以用 --- 來定義文章的元資料 (metadata),例如標題和描述。

content/hello-world.md
---
title: '我的第一篇文章'
description: '這真是太神奇了!'
---

# Hello World

這是我用 Nuxt Content 寫的第一篇文章。
3

第三步:建立顯示頁面

我們需要一個「樣板頁面」來顯示所有 content/ 資料夾裡的文章。最簡單的方法,就是使用 Nuxt Content 提供的 <ContentDoc /> 元件。

pages/ 資料夾中建立 [...slug].vue (這是一個「捕獲所有路由」的頁面,我們在 Day 9 提過)。

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

<style>
/* 您可以在這裡加上文章的樣式 */
main {
  max-width: 720px;
  margin: 0 auto;
}
</style>

<ContentDoc /> 元件會自動根據當前的網址,去 content/ 資料夾尋找對應的檔案並將其渲染出來。

今日總結

就這樣!現在啟動您的專案 (npm run dev),並訪問 /hello-world,您應該就能看到剛剛寫的 Markdown 文章被漂亮地渲染出來了。

今天我們體驗了 Nuxt Content 的強大威力,它讓建立部落格、文件站或任何以內容為主的網站變得前所未有的簡單。

深入探索

Nuxt Content 還有更多強大的功能,例如用類似資料庫的方式查詢您的文章、在 Markdown 裡嵌入 Vue 元件等等。這些都可以在它的官方文件中找到,非常推薦您深入探索!