# github_trending **Repository Path**: pwmwang/github_trending ## Basic Information - **Project Name**: github_trending - **Description**: No description available - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-09 - **Last Updated**: 2026-04-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GitHub Trending Explorer 一个精美的 GitHub Trending 热门开源项目获取工具。支持按时间范围和编程语言筛选、查看项目详情、一键导出 Excel / Markdown / CSV,每个项目提供源码 ZIP 下载链接。 ## 功能特点 ### 核心功能 - **时间范围选择**: Today / This Week / This Month - **编程语言筛选**: 支持 18+ 种主流语言(Python、JavaScript、TypeScript、Go、Rust 等) - **数量选择**: Top 10 / 25 / 50 - **一键获取**: 点击即可获取最新 Trending 数据 ### 项目详情 - **完整描述**: 从 GitHub API 获取项目的完整描述 - **Topics 标签**: 展示项目分类标签 - **README 预览**: 显示 README 前 500 字符 - **统计信息**: Stars / Forks / Watchers / Open Issues 四格面板 - **项目信息**: 许可证、语言、创建时间、最近更新、仓库大小、默认分支 - **项目主页**: 一键跳转项目官网 ### 导出与下载 - **导出 Excel (.xlsx)**: 含 Trending 数据表 + Summary 汇总表,URL 可点击 - **导出 Markdown (.md)**: 格式化表格,含 GitHub 链接和下载链接 - **导出 CSV**: 带 BOM 头,Excel 直接打开无乱码 - **ZIP 下载**: 每个项目卡片提供源码 ZIP 一键下载按钮 ### 收藏功能 - **本地收藏**: 点击爱心收藏喜欢的项目 - **收藏管理**: 查看和移除已收藏项目 - **持久化存储**: 收藏数据保存在浏览器本地,刷新不丢失 ### UI 设计 - 深色主题,契合 GitHub 风格 - 动态浮动背景动画 - 卡片渐入动画 - 热度指示器(红色/橙色/绿色) - 贡献者头像展示 ## 快速开始 ### 环境要求 - Node.js >= 14.0.0 - npm 或 yarn ### 安装与启动 ```bash # 克隆项目(Gitee) git clone https://gitee.com/你的用户名/github_trending.git # 进入目录 cd github_trending # 安装依赖 npm install # 启动服务 npm start ``` 启动后会显示: ``` ╔══════════════════════════════════════════╗ ║ GitHub Trending Explorer v1.0 ║ ╠══════════════════════════════════════════╣ ║ Server: http://localhost:3333 ║ ║ Status: Running ║ ║ Press Ctrl+C to stop ║ ╚══════════════════════════════════════════╝ ``` 打开浏览器访问 **http://localhost:3333** 即可使用。 按 `Ctrl + C` 停止服务器。 ## 配置说明 ### 端口配置 默认端口为 `3333`,可通过环境变量修改: ```bash # Windows CMD set PORT=8080 && npm start # Windows PowerShell $env:PORT=8080; npm start # Linux / macOS PORT=8080 npm start ``` 或在 `server.js` 中直接修改: ```javascript const PORT = process.env.PORT || 3333; // 改成你想要的端口 ``` ## API 接口 ### 1. 获取 Trending 项目 ``` GET /api/trending ``` | 参数 | 类型 | 默认值 | 说明 | |------|------|--------|------| | since | string | daily | 时间范围: `daily`, `weekly`, `monthly` | | language | string | '' | 编程语言,留空为全部 | | count | number | 25 | 返回数量: 1-100 | **示例:** ```bash # 获取今日 Top 10 Python 项目 curl "http://localhost:3333/api/trending?since=daily&language=python&count=10" # 获取本周 Top 25 所有语言项目 curl "http://localhost:3333/api/trending?since=weekly&count=25" ``` ### 2. 获取项目详情 ``` GET /api/repo-details?repos=owner/repo1,owner/repo2 ``` 从 GitHub API 获取项目的详细信息,包括描述、topics、许可证、README 预览、统计数据等。 ### 3. 导出 Markdown ``` GET /api/export/markdown?since=daily&language=python&count=25 ``` ### 4. 导出 CSV ``` GET /api/export/csv?since=daily&language=python&count=25 ``` ### 5. 获取支持的语言列表 ``` GET /api/languages ``` ## 项目结构 ``` github_trending/ ├── server.js # Express 后端服务(爬虫 + API) ├── package.json # 项目配置 ├── public/ │ ├── index.html # 前端页面 │ ├── style.css # 深色主题样式 │ └── app.js # 前端逻辑(渲染 + 导出) └── README.md # 本文档 ``` ## 技术栈 | 技术 | 用途 | |------|------| | Node.js + Express | 后端服务 | | Axios + Cheerio | GitHub 页面数据抓取 | | GitHub REST API | 项目详情获取 | | SheetJS (xlsx) | 前端 Excel 导出 | | Font Awesome 6 | 图标 | | 原生 HTML/CSS/JS | 前端界面 | ## 常见问题 ### 1. 端口被占用 修改端口配置(见上方"端口配置"章节)。 ### 2. 无法获取数据 - 检查网络连接,确保能访问 github.com - GitHub 可能会限制频繁请求,稍后重试 - 如果使用代理,确保代理配置正确 ### 3. Stars / Forks 显示为 0 GitHub Trending 页面结构可能变化,需要更新 `server.js` 中的选择器。 ### 4. 项目详情加载失败 GitHub API 对未认证请求有速率限制(60 次/小时)。如果频繁查看详情可能触发限制,等待一段时间后重试。 ## 自定义开发 ### 添加新的编程语言 编辑 `public/index.html` 中的 `languageSelect` 下拉框: ```html ``` ### 修改主题颜色 编辑 `public/style.css` 中的 CSS 变量: ```css :root { --accent: #58a6ff; /* 主色调 */ --bg-primary: #0d1117; /* 背景色 */ --bg-card: #1c2333; /* 卡片背景 */ } ``` ## License MIT