diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..0fcc637 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,22 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.{js,jsx,ts,tsx,vue}] +indent_style = space +indent_size = 2 + +[*.{json,yml,yaml}] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false + diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..585033f --- /dev/null +++ b/.prettierrc @@ -0,0 +1,12 @@ +{ + "semi": false, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "printWidth": 100, + "arrowParens": "always", + "endOfLine": "lf", + "bracketSpacing": true, + "vueIndentScriptAndStyle": false +} + diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..6365012 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,178 @@ +# Changelog + +所有重要的变更都会记录在这个文件中。 + +格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/), +版本号遵循 [Semantic Versioning](https://semver.org/lang/zh-CN/)。 + +## [1.0.0] - 2025-01-19 + +### ✨ 新增 + +#### 核心功能 +- 🎮 **聚合搜索系统** + - 支持游戏和补丁两种搜索模式 + - SSE 流式实时显示搜索进度 + - 多平台并行搜索,结果即时展示 + - 自定义 API 地址支持 + +- 🏷️ **智能标签系统** + - 11 种资源特性标签(NoReq, Login, BTmag 等) + - 每个标签独特的颜色和图标 + - 中文标签说明 + - 一眼识别资源特性 + +- 📚 **游戏信息展示** + - 集成 VNDB 数据库 + - 显示游戏封面、截图、标题、别名 + - 游戏时长评估和分类 + - AI 自动翻译游戏简介为中文 + +- 🖼️ **随机背景系统** + - IndexedDB 本地缓存(最多 9999 张) + - 每秒从 API 获取新图片 + - 每 5 秒自动切换背景 + - Fisher-Yates 洗牌算法确保完整遍历 + - 预加载机制避免白屏闪烁 + - 三层缓存机制(Blob URL + 内存 + IndexedDB) + +- 💬 **评论系统** + - 基于 Artalk 的现代化评论系统 + - 支持 Markdown 语法 + - 表情包支持 + - 嵌套回复功能 + +#### UI/UX +- 📱 **响应式设计** + - 完美适配桌面和移动设备 + - Tailwind CSS 实用优先的样式 + - 流畅的动画和过渡效果 + +- 🎨 **视觉优化** + - Font Awesome 7 图标库 + - 粉色/紫色渐变主题 + - 毛玻璃效果(backdrop-blur) + - 自定义滚动条样式 + +- ⚡ **性能优化** + - Pace.js 页面加载进度条 + - Fancybox 图片和内容预览 + - 浏览器原生懒加载 + - Service Worker 离线缓存 + +#### 开发体验 +- 🛠️ **技术栈** + - Vue 3.5 + Composition API + - TypeScript 5.9 类型安全 + - Vite 7 极速构建 + - Pinia 3 状态管理 + - Tailwind CSS 4.1 样式框架 + +- 📦 **工具链** + - pnpm 包管理器 + - EditorConfig 编辑器配置 + - Prettier 代码格式化 + - TypeScript 严格模式 + +### 🔧 API 集成 + +- **Cloudflare Workers API** + - 端点:`https://cfapi.searchgal.homes` + - POST `/gal` - 搜索游戏资源 + - POST `/patch` - 搜索补丁资源 + - SSE 流式响应 + +- **VNDB API** + - 游戏数据库查询 + - 图片代理服务 + - 多语言标题支持 + +- **AI Translation API** + - Qwen2.5-32B-Instruct 模型 + - 自动翻译游戏简介 + - 智能上下文理解 + +### 📝 文档 + +- 📖 完整的 README.md + - 项目介绍和特性说明 + - 安装和开发指南 + - 项目结构说明 + - 部署指南 + +- 🤝 CONTRIBUTING.md + - 贡献指南 + - 代码规范 + - Commit 规范 + - PR 检查清单 + +- 📄 CODE_OF_CONDUCT.md + - 社区行为准则 + - 包容性和尊重 + +- 📋 CHANGELOG.md + - 版本变更记录 + - 遵循 Keep a Changelog 格式 + +### 🎯 配置文件 + +- `.prettierrc` - Prettier 代码格式化配置 +- `.editorconfig` - 编辑器统一配置 +- `tsconfig.json` - TypeScript 编译配置 +- `vite.config.ts` - Vite 构建配置 + +### 🌐 部署支持 + +- Vercel 部署支持 +- Netlify 部署支持 +- Cloudflare Pages 部署支持 +- 自定义 Service Worker + +### 🔒 安全性 + +- CORS 跨域请求处理 +- XSS 防护 +- HTTPS 强制 +- Content Security Policy + +### ♿ 可访问性 + +- 语义化 HTML +- ARIA 标签 +- 键盘导航支持 +- 屏幕阅读器友好 + +--- + +## 未来计划 + +### [1.1.0] - 计划中 + +- [ ] 搜索历史记录 +- [ ] 收藏夹功能 +- [ ] 高级搜索过滤 +- [ ] 主题切换(暗色模式) +- [ ] 多语言支持(i18n) +- [ ] PWA 离线支持增强 +- [ ] 搜索结果导出 +- [ ] 批量下载管理 + +### [1.2.0] - 计划中 + +- [ ] 用户账号系统 +- [ ] 个性化推荐 +- [ ] 社区评分系统 +- [ ] 游戏标签管理 +- [ ] 高级统计分析 +- [ ] API 速率限制显示 + +--- + +## 版本说明 + +- **主版本号**:不兼容的 API 修改 +- **次版本号**:向下兼容的功能性新增 +- **修订号**:向下兼容的问题修正 + +[1.0.0]: https://github.com/Moe-Sakura/frontend/releases/tag/v1.0.0 + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..6fa6907 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,274 @@ +# 贡献指南 + +感谢你考虑为 SearchGal Frontend 做出贡献! + +## 🤝 如何贡献 + +### 报告 Bug + +如果你发现了 Bug,请创建一个 Issue 并包含以下信息: + +1. **Bug 描述** - 清晰简洁地描述问题 +2. **复现步骤** - 详细的步骤来复现问题 +3. **预期行为** - 你期望发生什么 +4. **实际行为** - 实际发生了什么 +5. **环境信息** - 浏览器版本、操作系统等 +6. **截图** - 如果适用,添加截图帮助解释问题 + +### 提出新功能 + +如果你有新功能的想法: + +1. 先检查 [Issues](https://github.com/Moe-Sakura/frontend/issues) 看是否已有类似建议 +2. 创建一个新的 Issue,标记为 `enhancement` +3. 详细描述功能的用途和实现思路 +4. 等待维护者的反馈 + +### 提交代码 + +#### 开发流程 + +1. **Fork 仓库** + ```bash + # 在 GitHub 上点击 Fork 按钮 + ``` + +2. **克隆你的 Fork** + ```bash + git clone https://github.com/YOUR_USERNAME/frontend.git + cd frontend + ``` + +3. **添加上游仓库** + ```bash + git remote add upstream https://github.com/Moe-Sakura/frontend.git + ``` + +4. **创建特性分支** + ```bash + git checkout -b feature/your-feature-name + # 或 + git checkout -b fix/your-bug-fix + ``` + +5. **安装依赖** + ```bash + pnpm install + ``` + +6. **开发** + ```bash + pnpm run dev + ``` + +7. **提交更改** + ```bash + git add . + git commit -m "feat: add some feature" + ``` + +8. **推送到你的 Fork** + ```bash + git push origin feature/your-feature-name + ``` + +9. **创建 Pull Request** + - 在 GitHub 上打开你的 Fork + - 点击 "New Pull Request" + - 填写 PR 描述 + +#### Commit 规范 + +我们使用 [Conventional Commits](https://www.conventionalcommits.org/) 规范: + +- `feat:` - 新功能 +- `fix:` - Bug 修复 +- `docs:` - 文档更新 +- `style:` - 代码格式(不影响代码运行的变动) +- `refactor:` - 重构(既不是新增功能,也不是修改 bug 的代码变动) +- `perf:` - 性能优化 +- `test:` - 增加测试 +- `chore:` - 构建过程或辅助工具的变动 + +示例: +``` +feat: add search history feature +fix: resolve background image loading issue +docs: update README with new API endpoints +style: format code with prettier +refactor: extract search logic to separate module +perf: optimize image caching strategy +``` + +## 📝 代码规范 + +### TypeScript + +- 使用 TypeScript 编写所有代码 +- 为函数参数和返回值添加类型注解 +- 避免使用 `any` 类型 +- 使用接口(interface)定义数据结构 + +```typescript +// ✅ 好的示例 +interface SearchResult { + platform: string + title: string + url: string + tags?: string[] +} + +function searchGame(query: string): Promise { + // ... +} + +// ❌ 不好的示例 +function searchGame(query: any): any { + // ... +} +``` + +### Vue 组件 + +- 使用 Vue 3 Composition API +- 使用 ` +``` + +### CSS/Tailwind + +- 优先使用 Tailwind CSS 工具类 +- 自定义样式使用 ` diff --git a/src/components/PlatformNav.vue b/src/components/PlatformNav.vue deleted file mode 100644 index 6f25505..0000000 --- a/src/components/PlatformNav.vue +++ /dev/null @@ -1,170 +0,0 @@ - - - - - diff --git a/src/components/SearchHeader.vue b/src/components/SearchHeader.vue index 1b37c34..a67dfbf 100644 --- a/src/components/SearchHeader.vue +++ b/src/components/SearchHeader.vue @@ -22,6 +22,12 @@ + + +
+ + + diff --git a/src/components/SearchResults.vue b/src/components/SearchResults.vue index 05ad17f..072f4d3 100644 --- a/src/components/SearchResults.vue +++ b/src/components/SearchResults.vue @@ -1,29 +1,29 @@