一个现代化的 Web 展示页面,用于在 GitHub Pages 上展示用户的 Stars 和 Repositories 数据。通过自动化工作流,每次提交时自动抓取最新数据并生成页面。
- 📊 统计概览 - 显示总数、语言数、主题数
- 🔥 热度排行 - 按 Stars 数排序的项目列表
- 📚 语言分类 - 按编程语言分类的项目统计
- 🏷️ 主题分类 - 按主题分类的项目统计
- 📊 统计概览 - 显示总数、语言数、主题数、平均 Stars/Forks
- 🔥 热度排行 - 按 Stars 数排序的项目列表
- 📚 语言分类 - 按编程语言分类的项目统计
- 🏷️ 主题分类 - 按主题分类的项目统计
- 🎨 现代化设计 - 清晰的排版和视觉效果
- 📱 响应式设计 - 完美适配移动、平板和桌面设备
- ⚡ 快速加载 - 1 秒内完成页面渲染
- 💾 页签记忆 - 自动记住用户上次选择的页签
- 🔄 无需重新加载 - 切换页签时立即显示内容
- 🤖 自动更新 - 每次提交时自动抓取最新数据
- 📦 多格式输出 - 支持 Markdown、JSON、CSV 格式
- 🚀 自动部署 - GitHub Pages 自动部署
.
├── index.html # 主页面
├── assets/
│ ├── css/
│ │ └── style.css # 样式表
│ ├── js/
│ │ ├── app.js # 应用主逻辑
│ │ └── *.test.js # 测试文件
│ └── data/
│ ├── github_stars.json # Stars 数据
│ └── github_repos.json # Repositories 数据
├── .github/
│ └── workflows/
│ └── update-data.yml # GitHub Actions 工作流
├── organize_github_stars.py # Stars 整理脚本
├── organize_github_repos.py # Repositories 整理脚本
├── README.md # 本文件
└── package.json # 项目配置
- Python 3.6+
- Node.js 14+(用于前端开发)
- GitHub Token(可选,但推荐用于提高 API 限制)
git clone https://github.com/your-username/your-repo.git
cd your-repo# Python 依赖
pip install requests
# Node.js 依赖(可选,用于开发和测试)
npm install- 访问 GitHub Settings - Tokens
- 点击 "Generate new token"
- 选择
public_repo权限 - 复制 token
# 获取 Stars 数据
python organize_github_stars.py
# 输入用户名:your-username
# 输入 Token:your-token(可选)
# 获取 Repositories 数据
python organize_github_repos.py
# 输入用户名:your-username
# 输入 Token:your-token(可选)# 使用 Python 内置服务器
python -m http.server 8000
# 或使用 Node.js http-server
npx http-server
# 访问 http://localhost:8000# Windows (cmd)
set GITHUB_TOKEN=your_token_here
# Windows (PowerShell)
$env:GITHUB_TOKEN="your_token_here"
# macOS/Linux
export GITHUB_TOKEN=your_token_here{
"username": "string",
"generated_at": "ISO 8601 datetime",
"total": "number",
"by_language": {
"language_name": {
"count": "number",
"percentage": "number"
}
},
"by_topic": {
"topic_name": {
"count": "number",
"percentage": "number"
}
},
"all_projects": [
{
"name": "string",
"html_url": "string",
"description": "string",
"stargazers_count": "number",
"language": "string",
"topics": ["string"],
"updated_at": "ISO 8601 datetime"
}
]
}{
"username": "string",
"generated_at": "ISO 8601 datetime",
"total": "number",
"average_stars": "number",
"average_forks": "number",
"by_language": {
"language_name": {
"count": "number",
"percentage": "number"
}
},
"by_topic": {
"topic_name": {
"count": "number",
"percentage": "number"
}
},
"all_projects": [
{
"name": "string",
"html_url": "string",
"description": "string",
"stargazers_count": "number",
"forks_count": "number",
"language": "string",
"topics": ["string"],
"updated_at": "ISO 8601 datetime",
"fork": "boolean",
"private": "boolean"
}
]
}- 点击 "⭐ Stars" 或 "📦 Repositories" 页签切换内容
- 页签选择会自动保存到浏览器本地存储
- 刷新页面时会恢复上次选择的页签
- 点击项目名称或链接会在新标签页打开 GitHub 项目页面
- 支持所有主流浏览器
- 统计卡片显示关键指标
- 分类统计显示按语言和主题的分布
- 热度排行按 Stars 数从高到低排序
页面在不同设备上的表现:
-
移动设备 (< 768px)
- 单列布局
- 隐藏或折叠非关键信息
- 优化的字体大小和间距
-
平板设备 (768px - 1024px)
- 两列布局
- 调整卡片大小
- 平衡的信息展示
-
桌面设备 (> 1024px)
- 多列布局
- 完整的信息展示
- 最佳的视觉效果
项目包含自动化工作流 .github/workflows/update-data.yml,配置如下:
- 触发条件:代码提交到 main 分支
- 执行步骤:
- 检出代码
- 设置 Python 环境
- 安装依赖
- 运行 Stars 整理脚本
- 运行 Repositories 整理脚本
- 提交更新到仓库
- GitHub Pages 自动部署
在 GitHub 仓库设置中配置以下 Secrets:
GITHUB_TOKEN:GitHub API token(用于获取数据)
# 推送到 main 分支自动触发
git push origin main
# 或在 GitHub 网页界面手动触发
# Actions → update-data → Run workflow- 页面加载时间:< 1 秒
- 数据渲染时间:< 500ms
- 页签切换响应:即时(无需重新加载)
- 浏览器兼容性:Chrome、Firefox、Safari、Edge 最新版本
# 运行所有测试
npm test
# 运行特定测试文件
npm test -- app.test.js
# 运行测试并生成覆盖率报告
npm test -- --coverage- ✅ 数据加载和处理
- ✅ 页面渲染和交互
- ✅ 页签切换功能
- ✅ 错误处理
- ✅ 响应式设计
- ✅ 浏览器兼容性
A: 有两种方式:
- 自动更新:提交代码到 main 分支,GitHub Actions 会自动运行脚本更新数据
- 手动更新:在本地运行
organize_github_stars.py和organize_github_repos.py脚本
A: 编辑 Python 脚本中的配置:
organize_github_stars.py:修改fetch_stars()方法organize_github_repos.py:修改fetch_repos()方法
A: 编辑 Python 脚本中的 TOPIC_KEYWORDS 字典,添加或修改主题关键词。
A: 检查以下几点:
- 确保
assets/data/github_stars.json和assets/data/github_repos.json存在 - 确保 JSON 文件格式有效
- 清除浏览器缓存并刷新页面
- 检查浏览器控制台是否有错误信息
A: 检查以下几点:
- 确保仓库是公开的(或 GitHub Pages 已启用)
- 确保 main 分支是默认分支
- 检查 GitHub Actions 工作流是否成功运行
- 查看 GitHub Pages 设置中的部署状态
MIT License - 详见 LICENSE 文件
欢迎提交 Issue 和 Pull Request!
如有问题或建议,请通过以下方式联系:
- 提交 GitHub Issue
- 发送 Pull Request
- 发送邮件至 [your-email@example.com]
最后更新:2024 年 1 月
维护者:[Your Name]