个人主页(修改版)

🏠 个人主页项目
🌐 在线演示
我的站点: https://edxx.de
原作者演示: http://home.loadke.tech/
👨💻 项目信息
原作者: 阿布白(IonRh)
原项目地址: https://github.com/IonRh/homepage-public
🚀 使用原生 HTML、CSS、JS 构建,未依赖任何框架或插件,保证轻量高效。
✨ 项目功能
- 🎨 简洁美观 - 提供清爽的主页展示界面
- 📱 响应式设计 - 完美适配手机、平板、桌面等各种设备
- ⚡ 极速加载 - 优化性能,提升用户浏览体验
- 📊 GitHub 统计 - 自动获取并显示真实的 GitHub 贡献数据
- 🌍 访客信息 - 显示访客 IP 地址和地理位置
- ⚙️ 配置驱动 - 所有内容通过配置文件统一管理
- 🧭 访问统计 - 展示今日/累计访问次数(默认本地存储,Cloudflare KV 可选持久化)
- 🔧 模块化设计 - 第三个标签页支持多种类型:日记统计、项目展示、自定义内容,或完全禁用
- 🎯 个性化 - 支持自定义标签、项目、技能展示
🔧 自定义栏目功能
支持的栏目类型
- 日记统计 - 显示写作天数、连续记录等统计信息
- 项目展示 - 展示个人项目,支持GitHub链接和演示地址
- 学习记录 - 显示学习进度、完成课程等信息
- 阅读统计 - 展示读书数量、页数等阅读数据
- 自定义内容 - 完全自定义HTML和JavaScript
- 完全禁用 - 隐藏第三个标签页
快速配置
编辑 modules/custom-section-config.js
文件:
1 | const CUSTOM_SECTION_CONFIG = { |
详细配置说明请参考 modules/README.md
。
🚀 快速开始
本地测试
1 | # 克隆项目 |
- 使用
python start.py
时,访问http://localhost:8002
- 使用内置/Node 静态服务器时,访问
http://localhost:8000
环境变量与配置示例
.env.example
:环境变量示例(复制为.env
,不会被提交到 Git).env
:本地私密环境变量(已在.gitignore
中忽略)config.example.js
:配置示例(复制为config.js
并修改)
1 | # 初始化示例 |
⚙️ 配置说明
所有个人信息都在 config.js
文件中统一管理,修改后刷新页面即可看到效果。
🔧 核心配置
📋 个人信息配置
1 | personal: { |
🐙 GitHub 配置
1 | github: { |
username: "你的GitHub用户名", // ⚠️ 重要:影响统计数据获取
profileUrl: "https://github.com/你的用户名"
}
1 | </details> |
🏷️ 标签和展示配置
1 | // 个人标签 |
📝 页面文本配置
1 | texts: { |
🖼️ 图片资源
推荐使用在线图标服务,避免本地文件管理:
🚀 部署指南
Cloudflare Pages 部署
-
准备工作
- 修改
config.js
中的github.username
- 如需“精确贡献日历”,你有两种选择:
- 纯静态部署(默认,简单):把
github.calendarSource
设为'events'
或'auto'
(自动回退),无需后端 - 使用 Pages Functions(可选):保持
calendarSource: 'auto'
或'proxy'
,并提供/api/github/contributions
函数(示例可向我索取)
- 纯静态部署(默认,简单):把
- 修改
-
部署步骤
- Fork 本仓库到你的 GitHub
- 登录 Cloudflare Pages
- 连接 GitHub 仓库
- 构建设置:
- 构建命令:留空(本项目为纯静态)
- 构建输出目录:
/
- 部署完成后绑定自定义域名
如何获取 GITHUB_TOKEN(只读、最低权限)
- 打开 https://github.com/settings/tokens
- 推荐使用 Fine-grained token(或经典 Token 也可)
- 权限选择:只读公共仓库即可(无需私有权限)
- 复制 Token,粘贴到
.env
的GITHUB_TOKEN=
后 - 切勿将
.env
提交到 Git(已被忽略)
在 Cloudflare 中使用
- 纯静态 Cloudflare Pages:无需 Token,也能展示“估算版”贡献日历(events)。
- 建议在
config.js
:calendarSource: 'events'
或保留'auto'
(自动回退)
- 建议在
- Cloudflare Pages Functions(可选,启用“精确日历”):
- 新建函数
/api/github/contributions
,读取环境变量GITHUB_TOKEN
,实现与 README 前文一致的 GraphQL 代理 - 在 Pages 的项目设置中新增环境变量
GITHUB_TOKEN
- 前端配置保持:
1
2
3
4github: {
calendarSource: 'auto',
calendarProxyEndpoint: '/api/github/contributions'
} - 部署后,前端将优先调用该端点获取精确数据,失败时回退到 events
- 新建函数
启用 Cloudflare Pages Functions(精确贡献日历)
本仓库已内置函数:functions/api/github/contributions.js
-
在 Cloudflare Pages 项目 → Settings → Environment variables,新建:
GITHUB_TOKEN
= 你的 Token(只读、最低权限;若需私有贡献计入,请使用你本人账号 Token,并在 GitHub 个人设置中勾选“Include private contributions”)
-
部署后,前端无需改动或仅保持:
1 | // config.js 中(默认已是 auto) |
- 验证
- 打开你的站点,切换到“日历”视图,应显示完整 1 年绿色格子;若函数异常,前端会自动回退到 events 估算
- 常见问题
- 403/401:检查 GITHUB_TOKEN 是否正确、未过期
- 数据缺天:GraphQL 正常,但你账号近年无活动;或私有贡献未在 GitHub 个人设置中勾选显示
- 跨域:本函数默认
Access-Control-Allow-Origin: *
,同源 Pages 一般无跨域问题
- 可选:启用精确贡献日历(Pages Functions)
- 在项目中添加一个函数
functions/api/github/contributions.js
(或 .ts),读取环境变量GITHUB_TOKEN
,实现与 README 顶部 GraphQL 查询一致的代理逻辑 - 在 Cloudflare 项目的 Pages 设置里添加环境变量
GITHUB_TOKEN
- 部署后,确保
config.js
中:1
2
3
4github: {
calendarSource: 'auto',
calendarProxyEndpoint: '/api/github/contributions'
}
- 在项目中添加一个函数
本地精确日历(可选)
-
如果你只想本地预览“精确贡献日历”,可使用本仓库的
start.py
:1
2
3# Windows PowerShell(当前会话)
$env:GITHUB_TOKEN="ghp_your_token"
python start.py # 打开 http://localhost:80021
2
3# macOS/Linux
export GITHUB_TOKEN="ghp_your_token"
python3 start.py -
Cloudflare Pages 部署仍为纯静态,不依赖该脚本
- 前端会优先通过该端点获取精确数据,失败时自动回退到 events
GitHub Pages 部署
1 | # 推送到 GitHub |
Vercel 部署
1 | npm i -g vercel |
🔍 部署前检查清单
- [ ] 个人信息已更新
- [ ] GitHub 用户名配置正确
- [ ] 所有图标链接可访问
- [ ] 社交链接有效
- [ ] 本地测试正常
- [ ] 移动端适配良好
📝 注意事项
- ✅ 修改配置后刷新页面即可看到效果
- ✅ GitHub统计数据为真实API数据,非模拟数据
- ✅ 支持完全自定义所有页面内容
- ⚠️ 请保留原作者信息,遵守开源协议
- 💡 如遇问题,欢迎提交 Issue
📄 开源协议
本项目基于原作者的开源协议,请遵守相关条款。
🙏 致谢
感谢原作者 阿布白(IonRh) 提供的优秀开源项目。
评论
评论插件加载失败
正在加载评论插件