Skip to content

XinChengP/OxygenBlogPlatform

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

612 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌸 个人博客 - 洛天依主题

最后更新: 2026年4月11日

一个温馨可爱的个人博客,以虚拟歌手洛天依为主题,适合记录生活感悟和技术学习心得。

Live站点: https://blog.xinchengp.cn

🛠️ 技术栈

核心框架

  • Next.js 16.1.6 - App Router + Turbopack,静态导出模式
  • React 19.2.x - 函数组件 + Hooks
  • TypeScript 5.x - 严格模式,类型安全

样式系统

  • Tailwind CSS 4 - 原子化CSS,深色模式支持
  • CSS Variables - 10种预设主题色系统
  • Framer Motion - 动画和过渡效果

主要依赖

  • next-themes - 主题切换
  • marked / react-markdown - Markdown渲染
  • gray-matter - Frontmatter解析
  • highlight.js - 代码语法高亮
  • recharts - 数据可视化图表
  • @tsparticles/react - 粒子动画背景
  • aplayer - 音乐播放器
  • octokit - GitHub API集成
  • simple-git - Git操作
  • bcryptjs - 密码加密
  • date-fns - 日期处理
  • lucide-react / @heroicons/react - 图标库

开发工具

  • ESLint 9.x - 代码检查
  • TypeScript 5.x - 类型检查
  • tsx - TypeScript执行器
  • sharp - 图片处理

✨ 主要功能

✨ 洛天依特色

  • 互动看板娘 - 可爱的洛天依陪你逛博客
  • 精选音乐 - 内置多首洛天依歌曲
  • 主题配色 - 以天依蓝为主色调,清新自然

📝 博客功能

  • 轻松写文 - 支持Markdown格式,简单易用
  • 自动归档 - 文章按时间和分类整理
  • 评论互动 - 基于GitHub的评论系统
  • 阅读统计 - 自动计算阅读时间
  • 隐藏文章 - 支持标记文章为隐藏状态
  • 时效性提示 - 技术文章自动显示更新时效提示

🎯 个人动态

  • 动态发布 - 记录生活点滴,支持置顶功能
  • 时间显示 - 精确到秒的时间记录
  • 博客关联 - 自动关联博客文章发布动态
  • 紧凑布局 - 美观的卡片式设计
  • 隐藏动态 - 支持标记动态为隐藏状态
  • Live2D彩蛋 - 发现隐藏内容时看板娘显示惊喜消息

✅ 待办事项

  • 待办展示 - 在动态页面侧边栏展示待办列表
  • 优先级标记 - 支持高/中/低三级优先级
  • 完成统计 - 显示完成进度和统计信息
  • 后台管理 - 本地后台支持增删改查操作

🖼️ 画廊系统

  • 图片管理 - 集中管理博客图片资源
  • 分类筛选 - 按分类浏览和筛选图片
  • 图片预览 - 支持高级放大控制和左右翻页
  • 响应式布局 - 适配不同设备屏幕
  • 递归扫描 - 自动递归扫描子目录图片
  • 目录树导航 - 子目录快速导航和数量统计

📋 更新日志

  • 开发日志 - 记录项目开发过程和功能更新
  • 时间线展示 - 按时间顺序展示更新历史
  • 分类标记 - 区分功能新增、优化、修复等类型
  • 数据可视化 - 时间趋势折线图和类型分布环形图

🛠️ 后台管理

  • 本地管理 - 开发环境访问 /admin 进行后台管理
  • 待办管理 - 支持待办事项的增删改查操作
  • 更新日志管理 - 创建和管理项目更新日志
  • 代码备份 - 本地代码备份快照管理
  • GitHub推送 - 直接推送更改到远程仓库
  • 统一组件 - 复用性强的后台UI组件库

🎨 设计亮点

  • 深色模式 - 自动跟随系统或手动切换
  • 流畅动画 - 自然的交互动效
  • 毛玻璃特效 - 现代化的卡片设计
  • 浏览器检测 - 自动检测浏览器兼容性并提示
  • 代码复制 - 代码块一键复制功能
  • 暗黑模式图片优化 - 智能滤镜适配暗色主题

🛠️ 实用工具

  • 拼音转换器 - 汉字转拼音,支持多音字
  • Markdown编辑器 - 实时预览,可导出

⏰ 时间进度

  • 年度进度 - 显示当前年份进度百分比
  • 节日倒计时 - 重要节日倒计时提醒
  • 可视化展示 - 直观的进度条设计

🚀 本地体验

准备工作

  • 需要安装 Node.js(版本20.9及以上,Next.js 16要求)
  • 安装完成后,打开命令行工具

开始步骤

  1. 获取代码

    git clone https://github.com/xinchengp/OxygenBlogPlatform.git
    cd OxygenBlogPlatform
  2. 安装依赖

    npm install
  3. 启动博客

    npm run dev
  4. 访问博客 打开浏览器,输入 http://localhost:3000 即可看到博客

📝 内容管理

添加新文章

  1. src/content/blogs 文件夹中创建新的Markdown文件(.md结尾)
  2. 在文件开头添加文章信息,示例:
    ---
    title: "文章标题"
    date: "2025-12-31"
    updatedAt: "2025-12-31"  # 可选:文章更新时间
    category: "生活感悟"
    tags: ["日常", "洛天依"]
    excerpt: "这里是文章的简短摘要"
    coverImage: "/path/to/image.png"  # 可选:封面图片路径
    ---
  3. 接下来用Markdown格式写正文内容

发布动态

  1. src/content/moments 文件夹中创建新的Markdown文件(.md结尾)
  2. 在文件开头添加动态信息,示例:
    ---
    id: "1"
    time: "2026-02-24 10:30:00"
    pinned: false  # 可选,设置为true可置顶动态
    tags: ["测试", "动态"]
    images: ["/Momentsabout/图片1.jpg", "/LTY_Picture/图片2.png"]  # 可选,支持多张图片
    ---
  3. 接下来写动态内容

图片功能

  • 九宫格布局: 图片会以传统九宫格的形式排列,正方形缩小显示
  • 图片预览: 点击图片可以放大显示,支持左右翻页
  • 高级放大功能: 支持精细的缩放控制(+/-/0键)、鼠标拖拽查看、缩放百分比显示
  • 加载状态: 图片加载过程中显示加载动画,提升用户体验
  • 错误处理: 图片加载失败时显示错误信息并提供重试按钮
  • 数量限制: 支持多张图片,根据实际需求添加
  • 图片格式: 建议使用WebP格式,每张图片大小不超过5MB
  • 图片来源: 支持两种图片添加方式:
    1. 本地上传: 直接从本地设备上传图片,自动压缩和存储
    2. 画廊选择: 从博客的画廊(gallery)中选择已有的图片,支持按分类筛选

画廊系统使用

  • 访问画廊: 通过导航菜单进入画廊页面
  • 浏览图片: 按分类浏览和筛选图片
  • 选择图片: 在发布动态时可以从画廊选择图片
  • 图片管理: 画廊中的图片存储在 public 目录下的相关文件夹

更新日志管理

  • 日志位置: src/content/changelogs/ 目录
  • 文件命名: 使用日期格式 YYYY-MM-DD.md
  • 内容格式: Markdown格式,支持分类标记
  • 自动展示: 在更新日志页面按时间线展示

🌐 部署到线上

使用GitHub Pages

  1. ** Fork 本仓库** 到你的GitHub账号
  2. 设置环境变量:在仓库Settings → Secrets中添加必要的环境变量
  3. 开启GitHub Actions:确保仓库的Actions功能已启用
  4. 推送文章:将写好的文章推送到main分支
  5. 等待部署:GitHub会自动构建并部署到GitHub Pages

环境变量配置

# 生产环境 (.env) - GitHub Pages 默认域名
NODE_ENV=production
NEXT_PUBLIC_GITHUB_REPO_NAME=你的仓库名
NEXT_PUBLIC_BASE_PATH=/你的仓库名  # GitHub Pages路径前缀

# 生产环境 (.env) - 自定义域名
NODE_ENV=production
NEXT_PUBLIC_GITHUB_REPO_NAME=你的仓库名
NEXT_PUBLIC_BASE_PATH=             # 空值,自定义域名不需要仓库名前缀

使用自定义域名

  1. 在GitHub仓库Settings → Pages中设置你的域名
  2. 修改 next.config.ts 中的配置,确保域名正确
  3. 推送代码后等待部署完成

🖥️ 桌面应用(可选)

本项目支持使用 Electron 打包为桌面应用:

# 安装 Electron 依赖(如未安装)
npm install electron --save-dev

# 运行桌面应用
npm run electron

⚠️ 注意事项

  1. Node.js版本:建议使用Node.js 20.9或以上版本(Next.js 16要求)
  2. 依赖安装:如果安装依赖失败,尝试使用 npm install --legacy-peer-deps
  3. 图片大小:建议图片大小不超过500KB,确保加载速度
  4. 文章命名:文章文件名建议使用英文或拼音,避免特殊字符
  5. 本地测试:每次修改后,建议先在本地测试再推送到线上
  6. 时效性说明:技术类文章会自动显示时效性提示,超过1年的文章会有更新提示
  7. 浏览器兼容:建议使用现代浏览器(Chrome、Firefox、Safari、Edge)以获得最佳体验
  8. Electron版本:桌面应用使用Electron 34,支持Node.js 24
  9. 隐藏内容:隐藏的文章和动态仅在后台可见,构建后不会显示在前台

🌟 特色亮点

  • 静态生成 - 加载速度快,SEO友好
  • 免费托管 - 可部署到GitHub Pages,无需服务器
  • 易于定制 - 主题和功能可根据需求调整
  • 持续更新 - 定期优化和添加新功能
  • 类型安全 - 使用TypeScript确保代码质量
  • 响应式设计 - 适配各种设备屏幕
  • 桌面支持 - 可打包为桌面应用

📄 许可证

MIT License - 可自由使用和修改


🌸 一个温馨的小天地,记录生活与成长的美好时光

⬆️ 返回顶部

About

Study qwq

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 90.8%
  • JavaScript 5.9%
  • CSS 2.8%
  • Other 0.5%