基于 React + TypeScript + Vite 构建的现代化个人博客网站,部署在 GitHub Pages。
- 🎨 现代化设计 - 简洁美观的界面设计
- 📱 响应式布局 - 完美适配桌面端和移动端
- 🌙 主题切换 - 支持明亮/暗黑主题切换
- 🔍 智能搜索 - 基于 Fuse.js 的模糊搜索功能
- 📝 Markdown 支持 - 完整的 Markdown 语法和代码高亮
- 💬 评论系统 - 基于 GitHub Issues 的评论功能
- ⚡ 性能优化 - 基于 Vite 的快速构建和热重载
- 🚀 自动部署 - GitHub Actions 自动构建和部署
- 🔧 TypeScript - 完整的类型安全支持
- 前端框架: React 18
- 类型系统: TypeScript
- 构建工具: Vite
- 样式方案: SCSS + CSS Modules
- 路由管理: React Router
- Markdown 渲染: react-markdown
- 代码高亮: react-syntax-highlighter
- 搜索功能: Fuse.js
- SEO 优化: react-helmet-async
- 部署平台: GitHub Pages
- Node.js >= 18
- npm >= 8
# 克隆项目
git clone https://github.com/xlxzhc/xlxzhc.github.io.git
cd xlxzhc.github.io
# 安装依赖
npm install --legacy-peer-deps
# 启动开发服务器
npm run dev
开发服务器启动后,访问 http://localhost:3000 查看网站。
# 构建生产版本
npm run build
# 预览构建结果
npm run preview
# 生成 sitemap 和 RSS
npm run build:sitemap
- 推送代码到
main
分支 - GitHub Actions 自动构建和部署
- 网站将在
https://[username].github.io
可用
详细部署指南请参考 DEPLOYMENT.md
npm run build
# 将 dist 目录内容部署到 GitHub Pages
src/
├── components/ # 可复用组件
│ ├── common/ # 通用组件
│ │ ├── Header/ # 页面头部
│ │ ├── Footer/ # 页面底部
│ │ └── Layout/ # 布局组件
│ └── blog/ # 博客相关组件
│ ├── PostCard/ # 文章卡片
│ ├── PostDetail/ # 文章详情
│ └── SearchBox/ # 搜索框
├── pages/ # 页面组件
│ ├── Home/ # 首页
│ ├── Post/ # 文章详情页
│ └── About/ # 关于页面
├── hooks/ # 自定义 Hooks
│ └── useTheme.tsx # 主题管理
├── utils/ # 工具函数
│ └── sitemap.ts # SEO 工具
├── types/ # TypeScript 类型定义
│ └── index.ts
├── styles/ # 全局样式
│ └── globals.scss
└── data/ # 静态数据
- 支持明亮和暗黑两种主题
- 主题偏好自动保存到 localStorage
- 平滑的主题切换动画
- 支持文章标题、内容、标签的模糊搜索
- 实时搜索结果更新
- 搜索结果高亮显示
- Markdown 格式文章支持
- 代码语法高亮
- 文章标签和分类
- 阅读时间估算
- 动态 meta 标签管理
- 自动生成 sitemap.xml
- 结构化数据支持
- 友好的 URL 结构
项目使用 GitHub Actions 自动部署到 GitHub Pages:
- 推送代码到
main
分支 - GitHub Actions 自动触发构建
- 构建完成后自动部署到 GitHub Pages
# 构建项目
npm run build
# 部署到 GitHub Pages
# (需要配置 GitHub Pages 指向 gh-pages 分支)
- 编辑
src/hooks/usePosts.ts
添加文章元数据 - 在
mockPostContent
中添加 Markdown 内容 - 更新
scripts/generate-sitemap.js
中的文章数据 - 重新构建和部署
详细内容管理指南请参考 CONTENT_GUIDE.md
{
id: '1',
title: '文章标题',
slug: 'article-slug',
excerpt: '文章摘要',
date: '2025-01-15',
tags: ['React', 'TypeScript'],
author: 'xlxzhc',
readTime: 5,
featured: false
}
博客支持两种评论系统,用户可以自由切换:
基于 GitHub Discussions 的现代化评论系统:
- ✅ 无需跳转,直接在页面内评论
- ✅ 支持回复、表情反应、主题同步
- ✅ 响应式设计,移动端友好
- 在 GitHub 仓库中启用 Discussions 功能
- 安装 Giscus App
- 访问 giscus.app 获取配置参数
- 更新
src/config/giscus.ts
中的配置
详细设置指南:GISCUS_SETUP.md
# 为文章创建对应的 GitHub Issues
npm run create:issues
- 需要 GitHub 账号才能评论
- 支持 Markdown 语法和代码高亮
- 自动邮件通知
详细配置指南请参考 COMMENTS_GUIDE.md
欢迎提交 Issue 和 Pull Request!
MIT License
- GitHub: @xlxzhc
- Email: [email protected]
完整的项目文档已整理到 docs/ 目录:
⭐ 如果这个项目对你有帮助,请给个 Star!