这是一个使用 Next.js、TypeScript 和 Tailwind CSS 构建的现代化社区论坛,可部署到 Cloudflare Pages(支持 Pages Functions + D1 数据库)。
- ✨ 现代化技术栈:Next.js 14 + TypeScript + Tailwind CSS
- 📱 响应式设计:桌面与移动端良好体验
- 📝 Markdown 静态帖子:支持 Front Matter
- 👥 用户系统:注册、登录、个人资料
- ❤️ 互动能力:点赞、评论、关注
- 💬 聊天室:Pages Functions + D1(轮询实现,可扩展 WebSocket)
- 🔍 SEO 优化与静态导出:
next export输出到out/
- 框架:Next.js 14
- 语言:TypeScript
- 样式:Tailwind CSS
- 内容:Markdown + Gray Matter
- 平台:Cloudflare Pages(含 Functions)
git clone <your-repo-url>
cd boke
npm installnpm run dev访问 http://localhost:3000 查看。
npm run build生成的静态资源位于 out/ 目录。
├── app/ # App Router
│ ├── about/ # 关于
│ ├── forum/ # 论坛列表/详情
│ ├── article/ # 帖子阅读页(统计/点赞/评论)
│ ├── chat/ # 聊天室
│ ├── globals.css # 全局样式
│ ├── layout.tsx # 根布局
│ └── page.tsx # 首页
├── components/ # 通用组件
├── functions/ # Pages Functions(API)
│ └── api/... # 评论、点赞、统计、用户帖子、聊天等
├── lib/ # 工具
│ ├── posts.ts # 读取 Markdown 帖子
│ └── utils.ts
├── migrations/ # D1 迁移脚本
├── posts/ # Markdown 帖子
├── _headers # 安全/缓存头
├── _redirects # 路由重写
├── next.config.js # Next 配置(output: 'export')
└── wrangler.toml # Wrangler & D1 绑定
- 在
posts/下创建.md文件 - 添加 Front Matter:
---
title: "帖子标题"
date: "2024-01-01"
excerpt: "帖子摘要"
tags: ["标签1", "标签2"]
---
# 正文内容- 执行
npm run build,帖子会出现在论坛中。
迁移文件位于 migrations/:
- 001-init.sql:基础表(users、post_stats、comments、site_stats)
- 005-likes-and-posts.sql:点赞与用户帖子
- 011-chat-system.sql:聊天室(如存在)
示例执行(请先确保 wrangler login 并已在 Cloudflare 控制台创建 D1 实例,与 wrangler.toml 绑定一致):
wrangler d1 execute personal-blog-db --file=./migrations/001-init.sql
wrangler d1 execute personal-blog-db --file=./migrations/005-likes-and-posts.sql
# 若启用聊天:
wrangler d1 execute personal-blog-db --file=./migrations/011-chat-system.sqlwrangler.toml 绑定片段:
[[d1_databases]]
binding = "DB"
database_name = "personal-blog-db"
Cloudflare Pages → 连接仓库 → 构建设置:
- 构建命令:
npm run build - 输出目录:
out - Node.js:18+(可在环境变量中设置
NODE_VERSION=18.17.0)
npm run build
wrangler pages deploy out --project-name=my-personal-blogapp/layout.tsx:标题与描述components/Header.tsx:导航components/Footer.tsx:页脚tailwind.config.js/app/globals.css:样式
- 打开子路由 404?确保使用静态导出(
output: 'export')并包含_redirects。 - Functions/D1 不可用?检查
functions/与wrangler.toml绑定,并在 Cloudflare 控制台绑定实例。 - 论坛入口不存在?请确认导航已指向
/forum,且已移除旧的/blog。
MIT License
欢迎提交 Issue 与 PR。
- 邮箱:your.email@example.com
- GitHub:你的GitHub用户名
这是一个使用 Next.js、TypeScript 和 Tailwind CSS 构建的现代化社区论坛,适合部署到 Cloudflare Pages。
- ✨ 现代化技术栈 - Next.js 14 + TypeScript + Tailwind CSS
- 📱 响应式设计 - 适配各种设备和屏幕尺寸
- 📝 Markdown 支持 - 使用 Markdown 编写论坛帖子
- 🏷️ 标签系统 - 帖子分类和检索
- ⚡ 静态生成 - 极快的加载速度
- 🔍 SEO 优化 - 良好的搜索引擎优化
- 🎨 美观界面 - 简洁现代的设计风格
- 💬 聊天功能 - 实时聊天室
- 👥 用户系统 - 用户注册、登录、个人资料
- ❤️ 互动功能 - 点赞、评论、关注
- 框架: Next.js 14
- 语言: TypeScript
- 样式: Tailwind CSS
- 内容: Markdown + Gray Matter
- 部署: Cloudflare Pages
```bash git clone cd personal-blog ```
```bash npm install ```
```bash npm run dev ```
访问 http://localhost:3000 查看结果。
```bash npm run build ```
``` ├── app/ # Next.js App Router │ ├── about/ # 关于页面 │ ├── forum/ # 论坛相关页面 │ ├── contact/ # 联系页面 │ ├── globals.css # 全局样式 │ ├── layout.tsx # 根布局 │ └── page.tsx # 首页 ├── components/ # React 组件 │ ├── Footer.tsx # 页脚组件 │ └── Header.tsx # 头部组件 ├── lib/ # 工具库 │ ├── posts.ts # 文章管理 │ └── utils.ts # 通用工具 ├── posts/ # Markdown 帖子 │ ├── hello-world.md │ ├── getting-started-with-nextjs.md │ └── thoughts-on-web-development.md ├── public/ # 静态资源 ├── _headers # Cloudflare Pages 头部配置 ├── _redirects # Cloudflare Pages 重定向配置 └── next.config.js # Next.js 配置 ```
- 在 `posts/` 目录下创建新的 `.md` 文件
- 在文件顶部添加 Front Matter:
这里是你的帖子内容... ```
- 重新构建项目,新帖子会自动出现在论坛中
- 将代码推送到 GitHub/GitLab
- 登录 Cloudflare Pages
- 连接你的 Git 仓库
- 设置构建配置:
- 构建命令: `npm run build`
- 构建输出目录: `out`
- Node.js 版本: 18 或更高
-
安装 Wrangler: ```bash npm install -g wrangler ```
-
登录 Cloudflare: ```bash wrangler login ```
-
构建并部署: ```bash npm run build wrangler pages publish out ```
编辑以下文件来自定义你的博客:
- `app/layout.tsx` - 网站标题和描述
- `components/Header.tsx` - 导航菜单
- `components/Footer.tsx` - 页脚信息
- `app/about/page.tsx` - 个人介绍
- `app/contact/page.tsx` - 联系信息
- 编辑 `tailwind.config.js` 来自定义 Tailwind CSS 配置
- 修改 `app/globals.css` 来添加全局样式
- ✅ 静态生成 (SSG)
- ✅ 图片优化
- ✅ 代码分割
- ✅ 预加载关键资源
- ✅ 缓存策略优化
支持所有现代浏览器:
- Chrome (最新版本)
- Firefox (最新版本)
- Safari (最新版本)
- Edge (最新版本)
MIT License
欢迎提交 Issue 和 Pull Request!
如有问题,请通过以下方式联系:
- 邮箱: your.email@example.com
- GitHub: 你的GitHub用户名 # 社区论坛更新 Fri Oct 3 14:12:12 CST 2025