內建的部落格引擎 (content/)
您是否曾經想過,如果能直接在專案裡寫 Markdown (`.md`) 檔案,它就自動變成一個部落格頁面,那該有多好?
Nuxt Content 模組以及它所使用的 content/
資料夾,就是為了實現這個夢想而生。
1. 什麼是 Nuxt Content?
您可以把它想像成是 Nuxt 內建的一個迷你 CMS (內容管理系統) 或部落格引擎。
您不再需要架設一個獨立的 WordPress 或 Medium,可以直接在您的 Nuxt 專案中,透過簡單的檔案來管理您的文章、文件或任何結構化內容。
它會讀取 content/
資料夾裡的所有 .md
, .yml
, .csv
, .json
檔案,並把它們變成可以查詢的資料。
2. 三步驟打造您的內容網站
讓我們用一個簡單的例子,看看建立一個部落格頁面有多快。
第一步:安裝引擎
Nuxt Content 是一個模組,我們需要先用一個指令來安裝並啟用它:
npx nuxt module add content
這個指令會幫我們安裝好模組,並在 nuxt.config.ts
中自動啟用。
第二步:撰寫第一篇文章
在專案根目錄建立一個 content/
資料夾,並在裡面新增一個檔案,例如 hello-world.md
。
檔案最上方可以用 ---
來定義文章的元資料 (metadata),例如標題和描述。
---
title: '我的第一篇文章'
description: '這真是太神奇了!'
---
# Hello World
這是我用 Nuxt Content 寫的第一篇文章。
第三步:建立顯示頁面
我們需要一個「樣板頁面」來顯示所有 content/
資料夾裡的文章。最簡單的方法,就是使用 Nuxt Content 提供的 <ContentDoc />
元件。
在 pages/
資料夾中建立 [...slug].vue
(這是一個「捕獲所有路由」的頁面,我們在 Day 9 提過)。
<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 元件等等。這些都可以在它的官方文件中找到,非常推薦您深入探索!