B
← 返回文章列表
#Next.js

用 Next.js 搭建 Markdown 技术博客

2 分钟阅读系列 · 博客搭建 #4

用 Next.js 搭建 Markdown 技术博客

从内容目录、frontmatter 到路由生成,拆解一个简洁可维护的静态博客架构。

用 Markdown 写博客是许多开发者的默认选择:版本可控、专注内容、不依赖后台。

整体架构

content/posts/*.md   →  文章源文件
src/lib/posts.ts     →  读取与解析
src/app/posts/[slug] →  文章页面

核心思路是:内容与展示分离。改样式不必动文章,写文章也不必懂 React。

Frontmatter 约定

每篇文章顶部使用 YAML frontmatter:

字段说明
title标题
description摘要,用于列表与 SEO
date发布日期 YYYY-MM-DD
tags标签数组
draft可选,为 true 时不展示

解析流程

  1. 用 Node fs 读取 content/posts
  2. gray-matter 拆出元数据与正文
  3. reading-time 估算阅读时长
  4. 在页面里用 react-markdown 渲染

示例代码:

import fs from "fs";
import matter from "gray-matter";

const raw = fs.readFileSync("content/posts/hello.md", "utf8");
const { data, content } = matter(raw);

路由与静态生成

Next.js App Router 中,动态路由 [slug] 配合 generateStaticParams,可以在构建时预生成所有文章页,适合博客这类以读为主的站点。

小结

  • 内容放 Markdown,逻辑放 TypeScript
  • 元数据用 frontmatter 统一管理
  • 构建时静态化,访问快、部署简单

下一篇可以聊聊代码高亮、标签页与搜索等增强功能。

zemeng5208

zemeng5208

@zemeng5208

全栈开发者 · 终身学习者

喜欢用代码解决问题,也喜欢把踩坑与收获写下来。关注前端工程化、TypeScript 与可读性。

2 粉丝 · 6 仓库

相关文章

评论