跳到主要内容

Next.js 动漫风格博客系统

目录

    Next.js 动漫风格博客系统

    一个充满动漫元素的现代化个人博客系统,采用最新的 Next.js 16 和 React 19 技术栈构建。

    🎨 项目特色

    • 动漫风格界面:粉色主题,流星动画,充满少女心的视觉设计
    • 响应式布局:完美适配桌面端和移动端
    • 流畅动画:基于 Framer Motion 的丝滑交互体验
    • Markdown 支持:完整的文章编写和渲染能力
    • 代码高亮:支持多种编程语言的语法高亮显示

    🚀 技术栈

    核心框架

    • Next.js 16.0.7:采用最新的 App Router 架构和 Turbopack 构建工具
    • React 19.2.1:最新的 React 版本,支持服务端组件
    • TypeScript:完整的类型支持,提升开发体验

    UI 与样式

    • Tailwind CSS 3.4:原子化 CSS 框架,快速构建界面
    • Framer Motion 11:强大的动画库,实现流畅的页面交互
    • 响应式设计:移动端友好的自适应布局

    内容处理

    • gray-matter:解析 Markdown 文件的 Front Matter
    • remark & remark-html:Markdown 转 HTML
    • remark-gfm:GitHub 风格的 Markdown 扩展
    • rehype-highlight:代码语法高亮

    工具库

    • date-fns:现代化的日期处理库

    📦 功能模块

    1. 首页动画

    • 50 颗星星的流动动画
    • 5 颗流星划过效果
    • 渐变背景和霓虹文字特效

    2. 博客文章系统

    • Markdown 文章编写
    • 文章列表展示(带随机名言)
    • 文章详情页面
    • 代码高亮显示
    • 标签分类

    3. 侧边栏功能

    左侧边栏

    • 个人头像(支持网络图片)
    • 用户信息展示
    • 社交链接

    右侧边栏

    • 动漫日历显示
    • 图片轮播展示
    • 相册集合

    4. 导航系统

    • 首页
    • 博客列表
    • 相册展示
    • 关于页面
    • 流畅的页面切换动画

    🛠️ 使用方法

    安装依赖

    npm install

    开发环境运行

    npm run dev

    访问 http://localhost:3000 查看效果。

    生产环境构建

    npm run build
    npm start

    ✍️ 添加文章

    posts/ 目录下创建 .md 文件:

    ---
    title: "文章标题"
    date: "2025-12-09"
    tags: ["标签1", "标签2"]
    excerpt: "文章简介"
    author: "作者名"
    ---
    
    # 文章内容
    
    这里是正文内容...

    Front Matter 字段说明

    • title: 文章标题(必填)
    • date: 发布日期,格式 YYYY-MM-DD(必填)
    • tags: 标签数组(必填)
    • excerpt: 文章摘要(必填)
    • author: 作者名称(必填)

    ⚙️ 配置文件

    data/config.json - 基础配置

    {
      "userInfo": {
        "name": "你的名字",
        "bio": "个人简介",
        "avatar": "头像图片 URL",
        "github": "GitHub 链接",
        "email": "邮箱地址"
      }
    }

    data/quotes.json - 名言配置

    存储首页和文章列表展示的随机名言。

    data/carousel.json - 轮播图配置

    配置右侧边栏的图片轮播内容。

    data/albums.json - 相册配置

    配置相册页面的图片集合。

    🌐 图片配置

    项目支持外部图片链接,需在 next.config.mjs 中配置允许的域名:

    images: {
      remotePatterns: [
        {
          protocol: 'https',
          hostname: 'your-image-host.com',
        },
      ],
    }

    🎯 项目亮点

    1. 性能优化

      • 使用 Next.js 16 的 Turbopack 超快构建
      • 服务端组件减少客户端 JavaScript
      • 图片自动优化
    2. 开发体验

      • TypeScript 完整类型支持
      • 热模块替换(HMR)
      • 清晰的项目结构
    3. 用户体验

      • 流畅的页面切换动画
      • 响应式设计适配多端
      • 代码块语法高亮
      • 可爱的动漫风格 UI
    4. 可扩展性

      • 模块化组件设计
      • 配置文件分离
      • 易于添加新功能

    📂 项目结构

    ├── app/                    # Next.js App Router 页面
    │   ├── layout.tsx         # 根布局
    │   ├── page.tsx           # 首页(流星动画)
    │   ├── home/              # 博客列表
    │   ├── post/[id]/         # 文章详情
    │   ├── albums/            # 相册页面
    │   └── about/             # 关于页面
    ├── components/            # React 组件
    │   ├── Sidebar.tsx        # 左侧边栏
    │   ├── RightSidebar.tsx   # 右侧边栏
    │   ├── PostList.tsx       # 文章列表
    │   └── ...
    ├── data/                  # 配置文件
    │   ├── config.json        # 基础配置
    │   ├── quotes.json        # 名言
    │   ├── carousel.json      # 轮播图
    │   └── albums.json        # 相册
    ├── lib/                   # 工具函数
    │   └── posts.ts           # 文章处理
    ├── posts/                 # Markdown 文章
    ├── styles/                # 全局样式
    └── public/                # 静态资源

    🔧 技术细节

    性能优化

    • 预渲染星星和流星位置,避免 SSR/CSR 不一致
    • 使用 useEffect 延迟加载客户端组件
    • 图片懒加载和自动格式转换

    兼容性处理

    • 修复 React 19 hydration 错误
    • 处理 Next.js 16 参数异步化
    • 配置图片远程域名白名单

    📝 更新日志

    v0.1.0 (2025-12-09)

    • ✅ 升级到 Next.js 16.0.7 和 React 19.2.1
    • ✅ 修复所有 hydration 错误
    • ✅ 优化动画性能
    • ✅ 添加图标配置
    • ✅ 支持网络图片头像

    💡 开发建议

    1. 添加文章:直接在 posts/ 目录创建 .md 文件即可
    2. 修改配置:编辑 data/ 目录下的 JSON 文件
    3. 自定义样式:修改 Tailwind 配置或组件内的 className
    4. 添加功能:在 components/ 创建新组件并引入

    🤝 贡献

    欢迎提交 Issue 和 Pull Request!

    📄 许可证

    MIT License


    Enjoy coding! 🎉