docs(store): 添加Edge商店搜索关键词说明和补充文档

- 在edge-addons-listing.md中添加详细的搜索关键词策略
- 创建edge-supplemental-info.md作为Edge商店提交指南
- 更新README.md文档结构和路径说明
- 调整CI工作流触发条件,移除tag触发
这个提交包含在:
Zain 2025-12-17 11:03:25 +08:00
父节点 4b224761b6
当前提交 b5d7bf03e1
共有 5 个文件被更改,包括 974 次插入 和 15 次删除

查看文件

@ -24,10 +24,8 @@ on:
schedule:
- cron: '0 0 * * 1'
# Release 标签触发
push:
tags:
- 'v*.*.*'
# 注意:tag 推送时只触发 release.yml
# 本工作流专用于定时运行和手动触发
# 环境变量
env:

395
CLAUDE.md 普通文件
查看文件

@ -0,0 +1,395 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
Cloud Drive Renamer (云盘批量重命名工具) - A Chrome/Edge extension for batch renaming files on cloud storage platforms. Currently supports Quark Drive (夸克网盘) with architecture ready for Aliyun Drive and Baidu Drive expansion.
**Tech Stack:**
- TypeScript 5.9+ with strict mode
- Vite 5.4+ for building (with @crxjs/vite-plugin for Chrome extension support)
- Lit 3.3+ for Web Components UI
- Vitest for unit/integration tests, Playwright for E2E tests
- Chrome Extension Manifest V3
## Common Development Commands
### Development Workflow
```bash
# Start development server with hot reload
npm run dev
# Run tests in watch mode during development
npm test
# Before committing: full validation (lint + typecheck + tests)
npm run validate
# Production build with complete quality gates
npm run build
```
### Testing
```bash
# Unit tests with coverage
npm run test:coverage
# E2E tests
npm run test:e2e
# E2E tests with UI
npm run test:e2e:ui
# Run single test file
npx vitest run tests/unit/executor.test.ts
# Run test with specific pattern
npx vitest run -t "should handle batch execution"
```
### Code Quality
```bash
# Lint check
npm run lint
# Auto-fix lint issues
npm run lint:fix
# TypeScript type checking (no emit)
npm run typecheck
```
### CI/CD
```bash
# Full CI pipeline (used in GitHub Actions)
npm run ci
# Verify release package integrity
npm run verify:release
```
### Utilities
```bash
# Sync version between package.json and manifest.json
npm run sync:version
# Resize images for store assets (parameterized)
npm run resize screenshot # Store screenshots (1280x800)
npm run resize logo # Logo (300x300)
npm run resize small-promo # Small promo tile (440x280)
npm run resize large-promo # Large promo tile (1400x560)
```
## Architecture Overview
### Core Design Patterns
**Adapter Pattern for Platform Support:**
- `src/adapters/base/adapter.interface.ts` - Base adapter interface
- `src/adapters/quark/` - Quark Drive implementation
- `src/adapters/aliyun/` and `src/adapters/baidu/` - Planned for future
**Strategy Pattern for Rename Rules:**
- `src/rules/base-rule.ts` - Base rule class
- `src/rules/rule-factory.ts` - Rule factory for creating rule instances
- 5 concrete rule implementations: replace, prefix, suffix, numbering, sanitize
**Executor Pattern for Batch Processing:**
- `src/core/executor.ts` - BatchExecutor with rate limiting (800ms interval)
- `src/core/retry.ts` - Exponential backoff retry mechanism
- `src/core/crash-recovery.ts` - Crash recovery with idempotency
- `src/core/conflict-detector.ts` - Duplicate name detection
### Key Architectural Components
**Content Script Architecture:**
```
Content Script (ISOLATED world)
├── UI Components (Lit Web Components)
│ ├── rename-dialog.ts - Main dialog
│ ├── rename-preview.ts - Preview list
│ ├── progress-dialog.ts - Progress tracking
│ └── floating-button.ts - Trigger button
└── Platform Adapter Integration
Page Script (MAIN world) - For API interception
└── src/adapters/quark/page-script.ts
```
**Message Communication:**
- Content Script ↔ Background Service Worker via `chrome.runtime.sendMessage`
- Content Script ↔ Page Script via `window.postMessage` (cross-world communication)
- See `src/types/message.ts` for message protocol definitions
**Batch Execution Flow:**
1. Get selected files via platform adapter
2. Apply rename rules via RuleFactory
3. Preview changes with conflict detection
4. Execute batch rename with:
- 800ms request interval (rate limiting)
- Concurrent execution with staggered delays
- Progress tracking via event system
- Automatic retry with exponential backoff
- Crash recovery support
## Critical Implementation Details
### Chrome Extension Specifics
**Manifest V3 Requirements:**
- Service Worker background script (not persistent)
- Separate content scripts for ISOLATED and MAIN worlds
- Web-accessible resources for iframe-based dialog
- Host permissions for target cloud platforms
**Build Configuration:**
- Vite with @crxjs/vite-plugin automatically handles:
- Content script injection
- Icon copying
- Manifest processing
- Web Components polyfill loaded via `src/content/polyfills.ts`
**Testing Chrome Extension Features:**
- Vitest config excludes `quark-adapter.test.ts` (requires Chrome extension mock environment)
- Playwright config uses special launch options:
```javascript
launchOptions: {
args: [
'--disable-extensions-except=./dist',
'--load-extension=./dist'
]
}
```
### Platform Adapter Implementation
When adding a new platform adapter:
1. **Implement `PlatformAdapter` interface:**
- `getSelectedFiles()` - Extract selected files from DOM
- `renameFile(fileId, newName)` - Call platform API
- `checkNameConflict(fileName, parentId)` - Validate uniqueness
- `getFileInfo(fileId)` - Fetch file metadata
2. **Add content script entry in manifest.json:**
```json
{
"matches": ["https://newplatform.com/*"],
"js": ["src/content/index.ts"],
"run_at": "document_idle"
}
```
3. **Add host permissions:**
```json
"host_permissions": ["https://newplatform.com/*"]
```
### Rename Rule Implementation
When adding a new rename rule:
1. **Extend `BaseRule` class:**
```typescript
export class NewRule extends BaseRule {
execute(fileName: string, index: number, total: number): string {
// Implementation
}
validate(config: any): boolean {
// Validation
}
}
```
2. **Add to `RuleFactory.create()` switch statement**
3. **Update `RuleType` union in `src/types/rule.ts`**
4. **Create params interface** (e.g., `NewRuleParams`)
## Testing Strategy
### Test Structure
- `tests/unit/` - Unit tests for individual modules
- `tests/integration/` - Integration tests for workflows
- `tests/performance/` - Performance benchmarks (not run in CI)
- `tests/e2e/` - Playwright E2E tests
### Testing Best Practices
- Mock Chrome APIs using `vi.mock('chrome', ...)`
- Use `vi.stubGlobal()` for global DOM APIs
- Integration tests focus on BatchExecutor workflows
- E2E tests validate actual extension behavior in browser
### Coverage Requirements
- All new features must include unit tests
- Critical paths (executor, rules, adapters) require integration tests
- Coverage reports generated in `coverage/` directory
## Build and Release Process
### Version Management
- Version is single source of truth in `package.json`
- `npm run sync:version` syncs to `manifest.json` and `src/shared/version.ts`
- Automatically run before `dev` and `build` commands
### Quality Gates in Build
The `npm run build` command enforces quality gates in this order:
1. ✅ Sync version
2. ✅ ESLint check
3. ✅ TypeScript type check
4. ✅ Unit tests with coverage
5. ✅ TypeScript compilation
6. ✅ Vite build
**Important:** Do NOT skip quality checks. If build fails, fix the root cause.
### CI/CD Workflows
**`.github/workflows/ci.yml`:**
- Triggered on: PR to main, push to main
- Runs: `npm run ci` (validate + build)
- Verifies: dist artifacts exist and are valid
**`.github/workflows/release.yml`:**
- Triggered on: Tag push (v*.*.*)
- Steps: build → test → package → GitHub Release
- Outputs: `cloud-drive-renamer-{version}.zip`
**`.github/workflows/complete-tests.yml`:**
- Manual trigger workflow for comprehensive testing
- Includes E2E tests and performance benchmarks
### Release Process
```bash
# 1. Update version in package.json
npm version patch|minor|major
# 2. Build and verify
npm run build
npm run verify:release
# 3. Create and push tag
git push origin main --tags
```
## Code Style and Conventions
### Naming Conventions
- Classes: PascalCase (e.g., `RuleFactory`, `BatchExecutor`)
- Methods/functions: camelCase (e.g., `getSelectedFiles`)
- Constants: UPPER_SNAKE_CASE (e.g., `MAX_RETRY_COUNT`)
- Files: kebab-case (e.g., `rule-factory.ts`)
### TypeScript Guidelines
- Strict mode enabled - all code must pass strict type checking
- Prefer `interface` over `type` for object shapes
- All public APIs must have explicit type annotations
- Use `Record<string, any>` sparingly, prefer specific types
- Enable unused variables check (exception: prefix with `_`)
### Import Aliases
- `@/` alias maps to `src/`
- Example: `import { RuleFactory } from '@/rules/rule-factory'`
### ESLint Rules
- No `console.log` (use `console.warn` or `console.error` for production)
- No `any` type without explicit warning suppression
- Prefer `const` over `let`, never use `var`
- Unused parameters must be prefixed with `_`
## Critical Error Patterns to Avoid
### Chrome Extension Pitfalls
- **DO NOT** use synchronous storage APIs (use `chrome.storage.local.get/set`)
- **DO NOT** assume background script is persistent (Manifest V3)
- **DO NOT** use `eval()` or inline scripts (CSP restrictions)
- **DO NOT** forget to declare permissions in manifest.json
### TypeScript/Build Issues
- **DO NOT** bypass quality checks with `build:only` (command removed intentionally)
- **DO NOT** use relative paths for type imports across distant directories
- **DO NOT** import test files in production code
- **DO NOT** forget to run `npm run sync:version` before manual version changes
### Testing Issues
- **DO NOT** use real Chrome APIs in unit tests (always mock)
- **DO NOT** run E2E tests in parallel (set workers: 1)
- **DO NOT** skip type checking in test files
## Special Files and Scripts
### Utility Scripts (scripts/)
- `sync-version.js` - Version synchronization logic
- `verify-release.js` - Release package validation
- `resize-screenshots.js` - Image processing with Sharp
- `optimize-icon.js` - Icon optimization
### Configuration Files
- `tsconfig.json` - Strict TypeScript configuration
- `.eslintrc.cjs` - ESLint rules for webextensions
- `vite.config.ts` - Vite build with @crxjs plugin
- `vitest.config.ts` - Test configuration with jsdom
- `playwright.config.ts` - E2E test configuration
### Important Exclusions
- `tests/performance/` - Not run in standard CI
- `tests/e2e/` - Handled by Playwright, not Vitest
- `**/quark-adapter.test.ts` - Excluded until Chrome mock environment ready
## Debugging Tips
### Development Mode
1. Run `npm run dev`
2. Load unpacked extension from `dist/` directory
3. Check console in:
- Extension popup (DevTools on popup.html)
- Content script (DevTools on cloud platform page)
- Background service worker (chrome://extensions/ → "service worker")
### Common Debug Scenarios
- **Content script not loading:** Check matches pattern in manifest.json
- **API calls failing:** Verify host_permissions includes platform domain
- **Rules not applying:** Check RuleFactory registration and type definitions
- **Build artifacts missing:** Run `npm run verify:release` to diagnose
### Logging Strategy
- Use `console.warn()` for expected issues (user-facing)
- Use `console.error()` for unexpected errors
- Prefix logs with `[CloudDrive Renamer]` for filtering
- See `src/utils/logger.ts` for structured logging
## Store Assets and Documentation
The `docs/store-assets/` directory contains materials for Chrome Web Store and Edge Add-ons submission:
- Listing descriptions in markdown format
- Privacy policy (required for store submission)
- Submission checklist and guides
- Screenshot specifications
Screenshots are processed using the `npm run resize` command with predefined presets matching store requirements.
## Performance Considerations
- **Rate Limiting:** 800ms interval between rename requests (configurable via `requestInterval`)
- **Concurrent Execution:** Uses `Promise.allSettled()` with staggered delays, not sequential
- **Virtual Scrolling:** Large file lists use `@lit-labs/virtualizer` in preview
- **Bundle Size:** Lit is chosen for its small footprint (~20KB) vs React/Vue
- **Memory:** Crash recovery stores minimal state in chrome.storage.local
## Future Expansion Points
**Platform Adapters (Planned):**
- `src/adapters/aliyun/` - Aliyun Drive (architecture ready)
- `src/adapters/baidu/` - Baidu Drive (architecture ready)
**Potential Rule Types:**
- Regex-based rules (mentioned in roadmap)
- Conditional rules based on file type/size
- Template-based batch rules
**Testing Gaps:**
- `quark-adapter.test.ts` requires Chrome extension mock environment
- Performance benchmarks not yet integrated in CI
- E2E tests for all platforms (currently Quark only)

查看文件

@ -7,10 +7,11 @@
## 📁 目录结构
```
store-assets/
docs/store-assets/
├── README.md # 本文件
├── chrome-web-store-listing.md # Chrome商店列表信息
├── edge-addons-listing.md # Edge商店列表信息
├── edge-supplemental-info.md # Edge补充信息(搜索关键词等)
├── PRIVACY_POLICY.md # 隐私政策(中英文)
├── SUBMISSION_GUIDE.md # 详细提交指南
└── CHECKLIST.md # 快速检查清单
@ -49,6 +50,7 @@ store-assets/
- 简短描述(150字符以内)
- 完整描述(中英文版本)
- 分类和标签
- **搜索关键词**(新增)
- 截图说明文字
- 权限和数据使用说明
- 隐私政策信息
@ -58,7 +60,27 @@ store-assets/
**如何使用**:
1. 打开Microsoft Partner Center
2. 从此文件复制相应内容到商店列表表单
3. 为每种语言创建单独的列表
3. 特别注意填写搜索关键词(Properties部分)
4. 为每种语言创建单独的列表
### 2.1 edge-supplemental-info.md
**用途**: Edge Add-ons特定字段的详细说明和最佳实践
**包含内容**:
- 搜索关键词详细说明和策略
- 分类选择建议
- 市场和可用性设置
- 描述优化建议
- 截图优化指南
- Edge特定注意事项
- 与Chrome的差异对比
- 提交表单快速参考
**如何使用**:
- 填写搜索关键词时参考第1节
- 优化描述和截图时参考相应章节
- 作为Edge提交的完整指南
### 3. PRIVACY_POLICY.md
@ -80,6 +102,10 @@ store-assets/
**推荐URL格式**:
```
https://github.com/lhly/cloud-drive-renamer/blob/main/docs/store-assets/PRIVACY_POLICY.md
```
或者复制到项目根目录:
```
https://github.com/lhly/cloud-drive-renamer/blob/main/PRIVACY_POLICY.md
```
@ -176,25 +202,32 @@ cd ..
### 发布隐私政策
```bash
# 复制隐私政策到项目根目录
cp store-assets/PRIVACY_POLICY.md ./PRIVACY_POLICY.md
# 提交到Git
git add PRIVACY_POLICY.md
# 隐私政策已在docs/store-assets/目录下
# 直接提交到Git
git add docs/store-assets/PRIVACY_POLICY.md
git commit -m "docs: add privacy policy for store submission"
git push origin main
# 或者如果需要在项目根目录也放一份
cp docs/store-assets/PRIVACY_POLICY.md ./PRIVACY_POLICY.md
git add PRIVACY_POLICY.md
git commit -m "docs: add privacy policy to project root"
git push origin main
```
### 提交到商店
1. **Chrome Web Store**:
- 打开 [开发者控制台](https://chrome.google.com/webstore/devconsole/)
- 参考 `SUBMISSION_GUIDE.md` 中的Chrome章节
- 参考 `chrome-web-store-listing.md` 获取完整内容
- 参考 `SUBMISSION_GUIDE.md` 中的Chrome章节了解流程
- 使用 `CHECKLIST.md` 确保所有项完成
2. **Microsoft Edge Add-ons**:
- 打开 [Partner Center](https://partner.microsoft.com/dashboard)
- 参考 `SUBMISSION_GUIDE.md` 中的Edge章节
- 参考 `edge-addons-listing.md` 获取完整内容
- **重要**: 参考 `edge-supplemental-info.md` 填写搜索关键词
- 参考 `SUBMISSION_GUIDE.md` 中的Edge章节了解流程
- 使用 `CHECKLIST.md` 确保所有项完成
---
@ -242,7 +275,7 @@ git push origin main
- **项目主页**: https://github.com/lhly/cloud-drive-renamer
- **问题反馈**: https://github.com/lhly/cloud-drive-renamer/issues
- **隐私政策URL**: https://github.com/lhly/cloud-drive-renamer/blob/main/PRIVACY_POLICY.md
- **隐私政策URL**: https://github.com/lhly/cloud-drive-renamer/blob/main/docs/store-assets/PRIVACY_POLICY.md
---
@ -303,7 +336,11 @@ npm run sync:version
## 📝 更新记录
- **2025-12-16**: 初始版本创建,包含所有必需的商店资料
- **2025-12-16**:
- 初始版本创建,包含所有必需的商店资料
- 添加Edge搜索关键词说明
- 创建edge-supplemental-info.md补充文档
- 更新文档路径为docs/store-assets/
---

查看文件

@ -151,6 +151,32 @@ Project Homepage: https://github.com/lhly/cloud-drive-renamer
### 主要分类
- **Category**: Productivity (生产力工具)
### 搜索关键词 (Search Terms)
Edge Add-ons允许添加搜索关键词以提高扩展的可发现性。
**推荐关键词(英文)**:
```
rename, batch rename, file rename, cloud drive, cloud storage, quark drive, file management, bulk rename, batch operations, productivity
```
**推荐关键词(中文)**:
```
重命名, 批量重命名, 文件重命名, 云盘, 网盘, 夸克网盘, 文件管理, 批量操作, 效率工具
```
**关键词策略说明**:
- 核心功能词:rename, batch rename, file rename(重命名、批量重命名)
- 平台相关:cloud drive, quark drive(云盘、夸克网盘)
- 使用场景:file management, productivity(文件管理、效率)
- 操作类型:batch operations, bulk operations(批量操作)
**注意事项**:
- Edge限制关键词数量,建议选择5-10个最相关的
- 避免使用与功能无关的热门词汇
- 不要重复扩展名称中已有的词
- 关键词应该反映用户可能的搜索习惯
### 补充标签
- File Management
- Cloud Storage

查看文件

@ -0,0 +1,503 @@
# Edge Add-ons 补充信息
本文档补充Microsoft Edge Add-ons申请表单中的额外必填字段和最佳实践。
---
## 1. 搜索关键词 (Search Terms)
### 什么是搜索关键词
搜索关键词帮助用户在Edge Add-ons商店中发现您的扩展。这些关键词应该反映用户可能的搜索习惯和扩展的核心功能。
### 推荐关键词列表
#### 英文关键词(5-10个)
**核心推荐**:
```
rename, batch rename, file rename, cloud drive, quark drive, file management, productivity
```
**完整列表**(可选择性使用):
- `rename` - 核心功能
- `batch rename` - 批量操作
- `file rename` - 文件重命名
- `cloud drive` - 云盘
- `cloud storage` - 云存储
- `quark drive` - 夸克网盘
- `file management` - 文件管理
- `bulk rename` - 批量重命名
- `batch operations` - 批量操作
- `productivity` - 效率工具
#### 中文关键词(供参考)
虽然Edge主要使用英文关键词,但如果支持中文商店,可以考虑:
```
重命名, 批量重命名, 文件重命名, 云盘, 网盘, 夸克网盘, 文件管理, 批量操作, 效率工具
```
### 关键词策略
#### 优先级排序
1. **高优先级(必选)**:
- `rename` - 直接描述核心功能
- `batch rename` - 用户最可能搜索的词
- `file management` - 功能分类
2. **中优先级(推荐)**:
- `cloud drive` - 目标平台
- `quark drive` - 具体支持的服务
- `productivity` - 使用场景
3. **低优先级(可选)**:
- `bulk operations` - 功能描述
- `cloud storage` - 同义词
- `file rename` - 功能变体
#### 关键词组合策略
Edge允许使用**短语关键词**:
```
✅ 好的做法:
"batch rename" (短语,用户常搜索)
"file management" (短语,描述准确)
"cloud drive" (短语,目标明确)
❌ 避免的做法:
"best rename tool" (主观词汇)
"free software" (与功能无关)
"windows" (过于宽泛)
```
### 关键词最佳实践
#### ✅ 应该做的
1. **使用用户语言**
- 想象用户会如何搜索这个功能
- 使用常见的行业术语
- 包含产品的核心价值
2. **保持相关性**
- 所有关键词都应与功能直接相关
- 反映扩展的实际能力
- 匹配目标用户群体的搜索习惯
3. **覆盖不同搜索意图**
- 功能词:rename, batch
- 场景词:file management, productivity
- 平台词:cloud drive, quark
#### ❌ 不应该做的
1. **关键词堆砌**
```
❌ 错误示例:
"rename file rename batch rename bulk rename mass rename"
```
2. **使用无关热门词**
```
❌ 错误示例:
"AI, ChatGPT, popular, trending"
```
3. **重复扩展名称**
```
❌ 如果扩展名称已包含"Renamer",避免再用"renamer"作为关键词
```
4. **使用品牌名称**
```
❌ 错误示例:
"Microsoft Edge, Chrome, Windows"
```
### 填写方式
在Edge Add-ons Partner Center中:
**位置**:Properties → Search terms
**格式**:用逗号分隔的关键词列表
**推荐填写**:
```
rename, batch rename, file rename, cloud drive, file management, productivity
```
**备选方案**(如果需要更具体):
```
batch rename, cloud drive, quark drive, file management, bulk operations
```
---
## 2. 分类选择 (Category)
### 主要分类
**推荐选择**:`Productivity`(生产力工具)
**理由**:
- ✅ 扩展帮助用户提高文件管理效率
- ✅ 适合办公和日常文件整理场景
- ✅ 与同类工具归在同一类别,便于用户发现
### 其他可考虑的分类
虽然Productivity是最佳选择,但以下分类也相关:
1. **Developer Tools**(开发者工具)
- 如果您强调对开发者的价值
- 例如:批量重命名项目文件
2. **Utilities**(实用工具)
- 如果商店有这个分类
- 强调通用工具性质
**不推荐**:
- ❌ Shopping - 与电商无关
- ❌ News & Weather - 内容不匹配
- ❌ Entertainment - 不是娱乐工具
---
## 3. 市场和可用性 (Markets & Availability)
### 推荐设置
**市场选择**:`All markets`(所有市场)
**可见性**:`Public`(公开)
**理由**:
- ✅ 云盘服务全球可用
- ✅ 扩展支持多语言(中文、英文、繁体中文)
- ✅ 功能通用,适合全球用户
### 特定市场考虑
如果需要针对特定市场:
**亚太市场**:
- 中国大陆(如果适用)
- 中国台湾
- 中国香港
- 日本、韩国
**理由**:夸克网盘主要用户群在亚太地区
**注意**:全球发布可以覆盖所有用户,除非有特殊的合规或业务需求。
---
## 4. 详细描述优化建议
### 描述结构最佳实践
#### 开场白(前100字)
这是最重要的部分,因为用户首先看到的就是这里:
**好的开场**:
```
一款强大的云盘文件批量重命名工具,专为提升文件管理效率而设计。
支持夸克网盘(阿里云盘和百度网盘开发中),提供5种智能重命名规则:替换、前缀、后缀、编号、清理。所有操作在本地完成,不收集任何数据。
```
**为什么好**:
- ✅ 立即说明核心价值
- ✅ 明确支持的平台
- ✅ 强调隐私保护
- ✅ 简洁有力
#### 功能列表
使用**清晰的层级结构**:
```
✨ 核心特性
🎯 多平台支持
• 夸克网盘 - 完全支持
• 阿里云盘 - 开发中
• 百度网盘 - 开发中
🔧 五大重命名规则
1. 替换规则 - 批量替换特定文本
2. 前缀规则 - 添加统一前缀
...
```
#### 使用场景
**包含实际例子**让用户能立即理解价值:
```
📝 典型使用场景
1. 整理照片集
IMG_001.jpg → Tokyo2025_001.jpg
2. 清理文档命名
报告@2024#最终版.docx → 报告2024Final.docx
```
### 描述优化清单
- [ ] 开场白在100字内说明核心价值
- [ ] 使用emoji增强可读性(适度)
- [ ] 功能描述具体且可量化
- [ ] 包含实际使用例子
- [ ] 强调隐私和安全
- [ ] 提及开源和透明
- [ ] 包含技术栈(可选,显示专业性)
- [ ] 提供项目主页链接
---
## 5. 截图优化建议
### 截图命名和说明
每张截图都应该有清晰的说明文字:
#### 中文说明
1. **主界面截图**
```
直观的批量重命名界面 - 支持多种规则配置
```
2. **预览功能截图**
```
实时预览功能 - 所见即所得的重命名效果
```
3. **执行进度截图**
```
智能执行进度追踪 - 批量操作一目了然
```
#### 英文说明
1. **Main Interface**
```
Intuitive batch rename interface - Support multiple rule configurations
```
2. **Preview Feature**
```
Real-time preview feature - WYSIWYG rename results
```
3. **Progress Tracking**
```
Smart execution progress tracking - Batch operations at a glance
```
### 截图最佳实践
#### ✅ 好的截图
- 清晰的界面展示
- 突出核心功能
- 包含实际数据(示例文件名)
- 展示前后对比效果
- 分辨率符合要求(1366x768或1280x800)
#### ❌ 避免的问题
- 截图模糊或压缩过度
- 包含个人隐私信息
- 界面元素被截断
- 没有展示实际功能
- 文字太小难以阅读
---
## 6. Edge Add-ons特定注意事项
### 审核差异
Edge的审核与Chrome有以下不同:
#### 更严格的隐私审查
- 必须清楚说明每个权限的用途
- 数据使用必须透明
- 隐私政策必须详细且易于访问
#### 更注重用户体验
- 截图质量要求更高
- 描述必须准确且专业
- 不允许夸大宣传
#### 技术标准
- 必须与最新版Edge完全兼容
- 不能有控制台错误或警告
- 性能必须良好
### 常见拒绝原因(Edge特定)
1. **权限说明不充分**
- 解决:参考本文档的权限说明模板
- 每个权限都要有具体用途说明
2. **描述与功能不符**
- 解决:确保描述准确反映实际功能
- 不要承诺未实现的功能
3. **隐私政策不完整**
- 解决:使用提供的PRIVACY_POLICY.md模板
- 确保URL可访问
4. **截图不清晰**
- 解决:使用高分辨率截图
- 确保文字清晰可读
---
## 7. 提交表单快速参考
### Edge Add-ons Properties 部分
#### Category(分类)
```
Productivity
```
#### Search Terms(搜索关键词)
```
rename, batch rename, file rename, cloud drive, file management, productivity
```
#### Logo(图标)
```
上传: public/icons/icon128.png (128x128 PNG)
```
### Listings 部分(中文简体)
#### Extension Name(扩展名称)
```
云盘批量重命名工具
```
#### Short Description(简短描述)
```
强大的批量重命名工具,支持夸克网盘文件批量重命名(阿里云盘和百度网盘开发中)
```
#### Long Description(详细描述)
```
从 edge-addons-listing.md 复制"完整描述"的中文版本
```
#### Screenshots(截图)
```
上传3张截图,每张附带说明文字(见上文第5节)
```
### Availability 部分
#### Markets(市场)
```
All markets
```
#### Visibility(可见性)
```
Public
```
### Privacy 部分
#### Privacy Policy URL(隐私政策)
```
https://github.com/lhly/cloud-drive-renamer/blob/main/PRIVACY_POLICY.md
```
#### Website(网站)
```
https://github.com/lhly/cloud-drive-renamer
```
#### Support Email(支持邮箱)
```
lhlyzh@qq.com
```
#### Permissions Justification(权限说明)
```
storage: 在浏览器本地保存用户的重命名规则配置和任务状态
tabs: 识别当前访问的云盘平台,加载对应的功能模块
host_permissions: 在云盘页面注入重命名工具界面并调用云盘API执行重命名操作
所有权限直接支持扩展的核心功能:批量文件重命名。
```
---
## 8. 审核准备清单
### 提交前验证
- [ ] 搜索关键词已填写(5-10个相关词汇)
- [ ] 分类选择正确(Productivity)
- [ ] 扩展名称符合规范(45字符以内)
- [ ] 简短描述吸引人(150字符以内)
- [ ] 详细描述完整且专业
- [ ] 3-5张高质量截图已上传
- [ ] 每张截图都有说明文字
- [ ] 图标为128x128 PNG格式
- [ ] 隐私政策URL可访问
- [ ] 权限说明清晰详细
- [ ] 支持邮箱有效
- [ ] 在Edge浏览器中测试通过
### 提交后追踪
- [ ] 记录提交日期
- [ ] 保存扩展ID
- [ ] 设置邮件提醒
- [ ] 定期检查审核状态
- [ ] 准备好回复审核反馈
---
## 9. 与Chrome Web Store的差异对比
| 项目 | Chrome Web Store | Edge Add-ons |
|------|------------------|--------------|
| 搜索关键词 | 不支持 | 支持,需要填写 |
| 分类选择 | 必需 | 必需 |
| 简短描述字数限制 | 132字符 | 150字符 |
| 单一用途说明 | 必需 | 不需要单独说明 |
| 远程代码声明 | 必需 | 不需要单独声明 |
| 审核时间 | 1-3天 | 3-7天 |
| 注册费用 | $5(一次性) | 免费 |
| 多语言列表 | 自动根据locale | 需要手动创建 |
---
## 10. 完成状态
- [x] 搜索关键词准备完成
- [x] 分类和标签确定
- [x] 描述优化建议
- [x] 截图说明文字
- [x] 权限说明模板
- [x] 提交表单快速参考
- [x] 审核准备清单
**准备完毕!**
使用本文档补充Edge Add-ons申请表单中的搜索关键词等信息,确保提交内容完整专业。