一个基于 Next.js 14 构建的现代化博客系统,支持 MDX 文章、深色模式、搜索功能和评论系统。
体验地址: https://piggyblog.xyz/
-
框架: Next.js 14 (App Router)
-
样式: Tailwind CSS
-
内容管理: Contentlayer2 + MDX
-
部署: Vercel / Netlify
-
评论系统: Giscus
-
搜索: Kbar
-
分析: Umami Analytics
-
📝 支持 MDX 格式的博客文章
-
🌙 深色/浅色主题切换
-
🔍 全站搜索功能
-
💬 基于 GitHub Discussions 的评论系统
-
🏷️ 标签分类系统
-
📱 响应式设计
-
⚡ 性能优化和 SEO 友好
- Node.js 18+
- Yarn 包管理器
yarn install
创建 .env.local
文件并配置以下环境变量:
# Giscus 评论系统配置
NEXT_PUBLIC_GISCUS_REPO="your-username/your-repo"
NEXT_PUBLIC_GISCUS_REPOSITORY_ID="your-repository-id"
NEXT_PUBLIC_GISCUS_CATEGORY="General"
NEXT_PUBLIC_GISCUS_CATEGORY_ID="your-category-id"
yarn dev
访问 http://localhost:3000 查看博客。
- 在
data/blog/
目录下创建.mdx
文件 - 文件头部添加 frontmatter:
---
title: '文章标题'
date: '2024-01-01'
tags: ['tag1', 'tag2']
draft: false
summary: '文章摘要'
---
- 使用 Markdown 或 MDX 语法编写内容
- 将代码推送到 GitHub
- 在 Vercel 中导入项目
- 配置环境变量
- 部署完成
- 将代码推送到 GitHub
- 在 Netlify 中连接仓库
- 配置环境变量
# 构建镜像
docker build -t piggy-blog .
# 运行容器
docker run -p 3000:3000 --env-file .env.local piggy-blog
├── app/ # Next.js App Router 页面
├── components/ # React 组件
├── data/ # 博客文章和配置
├── public/ # 静态资源
├── styles/ # 样式文件
├── utils/ # 工具函数
yarn dev # 启动开发服务器
yarn build # 构建生产版本
yarn start # 启动生产服务器
yarn lint # 代码检查
编辑 tailwind.config.js
文件来自定义颜色、字体等样式配置。
检查所有环境变量是否正确配置。
确保 Giscus 相关的环境变量已正确配置,并且 GitHub 仓库已启用 Discussions 功能。
确保自己的 Spotify 环境变量配置正确,否则无法播放音乐。
借鉴于开源项目: https://github.com/timlrx/tailwind-nextjs-starter-blog