镜像自地址
https://github.com/lhly/cloud-drive-renamer.git
已同步 2026-10-22 14:25:41 +08:00
docs(store): 添加Edge商店搜索关键词说明和补充文档
- 在edge-addons-listing.md中添加详细的搜索关键词策略 - 创建edge-supplemental-info.md作为Edge商店提交指南 - 更新README.md文档结构和路径说明 - 调整CI工作流触发条件,移除tag触发
这个提交包含在:
父节点
4b224761b6
当前提交
b5d7bf03e1
6
.github/workflows/complete-tests.yml
vendored
6
.github/workflows/complete-tests.yml
vendored
@ -24,10 +24,8 @@ on:
|
|||||||
schedule:
|
schedule:
|
||||||
- cron: '0 0 * * 1'
|
- cron: '0 0 * * 1'
|
||||||
|
|
||||||
# Release 标签触发
|
# 注意:tag 推送时只触发 release.yml
|
||||||
push:
|
# 本工作流专用于定时运行和手动触发
|
||||||
tags:
|
|
||||||
- 'v*.*.*'
|
|
||||||
|
|
||||||
# 环境变量
|
# 环境变量
|
||||||
env:
|
env:
|
||||||
|
|||||||
395
CLAUDE.md
普通文件
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 # 本文件
|
├── README.md # 本文件
|
||||||
├── chrome-web-store-listing.md # Chrome商店列表信息
|
├── chrome-web-store-listing.md # Chrome商店列表信息
|
||||||
├── edge-addons-listing.md # Edge商店列表信息
|
├── edge-addons-listing.md # Edge商店列表信息
|
||||||
|
├── edge-supplemental-info.md # Edge补充信息(搜索关键词等)
|
||||||
├── PRIVACY_POLICY.md # 隐私政策(中英文)
|
├── PRIVACY_POLICY.md # 隐私政策(中英文)
|
||||||
├── SUBMISSION_GUIDE.md # 详细提交指南
|
├── SUBMISSION_GUIDE.md # 详细提交指南
|
||||||
└── CHECKLIST.md # 快速检查清单
|
└── CHECKLIST.md # 快速检查清单
|
||||||
@ -49,6 +50,7 @@ store-assets/
|
|||||||
- 简短描述(150字符以内)
|
- 简短描述(150字符以内)
|
||||||
- 完整描述(中英文版本)
|
- 完整描述(中英文版本)
|
||||||
- 分类和标签
|
- 分类和标签
|
||||||
|
- **搜索关键词**(新增)
|
||||||
- 截图说明文字
|
- 截图说明文字
|
||||||
- 权限和数据使用说明
|
- 权限和数据使用说明
|
||||||
- 隐私政策信息
|
- 隐私政策信息
|
||||||
@ -58,7 +60,27 @@ store-assets/
|
|||||||
**如何使用**:
|
**如何使用**:
|
||||||
1. 打开Microsoft Partner Center
|
1. 打开Microsoft Partner Center
|
||||||
2. 从此文件复制相应内容到商店列表表单
|
2. 从此文件复制相应内容到商店列表表单
|
||||||
3. 为每种语言创建单独的列表
|
3. 特别注意填写搜索关键词(Properties部分)
|
||||||
|
4. 为每种语言创建单独的列表
|
||||||
|
|
||||||
|
### 2.1 edge-supplemental-info.md
|
||||||
|
|
||||||
|
**用途**: Edge Add-ons特定字段的详细说明和最佳实践
|
||||||
|
|
||||||
|
**包含内容**:
|
||||||
|
- 搜索关键词详细说明和策略
|
||||||
|
- 分类选择建议
|
||||||
|
- 市场和可用性设置
|
||||||
|
- 描述优化建议
|
||||||
|
- 截图优化指南
|
||||||
|
- Edge特定注意事项
|
||||||
|
- 与Chrome的差异对比
|
||||||
|
- 提交表单快速参考
|
||||||
|
|
||||||
|
**如何使用**:
|
||||||
|
- 填写搜索关键词时参考第1节
|
||||||
|
- 优化描述和截图时参考相应章节
|
||||||
|
- 作为Edge提交的完整指南
|
||||||
|
|
||||||
### 3. PRIVACY_POLICY.md
|
### 3. PRIVACY_POLICY.md
|
||||||
|
|
||||||
@ -80,6 +102,10 @@ store-assets/
|
|||||||
|
|
||||||
**推荐URL格式**:
|
**推荐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
|
https://github.com/lhly/cloud-drive-renamer/blob/main/PRIVACY_POLICY.md
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -176,25 +202,32 @@ cd ..
|
|||||||
### 发布隐私政策
|
### 发布隐私政策
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 复制隐私政策到项目根目录
|
# 隐私政策已在docs/store-assets/目录下
|
||||||
cp store-assets/PRIVACY_POLICY.md ./PRIVACY_POLICY.md
|
# 直接提交到Git
|
||||||
|
git add docs/store-assets/PRIVACY_POLICY.md
|
||||||
# 提交到Git
|
|
||||||
git add PRIVACY_POLICY.md
|
|
||||||
git commit -m "docs: add privacy policy for store submission"
|
git commit -m "docs: add privacy policy for store submission"
|
||||||
git push origin main
|
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**:
|
1. **Chrome Web Store**:
|
||||||
- 打开 [开发者控制台](https://chrome.google.com/webstore/devconsole/)
|
- 打开 [开发者控制台](https://chrome.google.com/webstore/devconsole/)
|
||||||
- 参考 `SUBMISSION_GUIDE.md` 中的Chrome章节
|
- 参考 `chrome-web-store-listing.md` 获取完整内容
|
||||||
|
- 参考 `SUBMISSION_GUIDE.md` 中的Chrome章节了解流程
|
||||||
- 使用 `CHECKLIST.md` 确保所有项完成
|
- 使用 `CHECKLIST.md` 确保所有项完成
|
||||||
|
|
||||||
2. **Microsoft Edge Add-ons**:
|
2. **Microsoft Edge Add-ons**:
|
||||||
- 打开 [Partner Center](https://partner.microsoft.com/dashboard)
|
- 打开 [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` 确保所有项完成
|
- 使用 `CHECKLIST.md` 确保所有项完成
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -242,7 +275,7 @@ git push origin main
|
|||||||
|
|
||||||
- **项目主页**: https://github.com/lhly/cloud-drive-renamer
|
- **项目主页**: https://github.com/lhly/cloud-drive-renamer
|
||||||
- **问题反馈**: https://github.com/lhly/cloud-drive-renamer/issues
|
- **问题反馈**: 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 (生产力工具)
|
- **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
|
- File Management
|
||||||
- Cloud Storage
|
- 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申请表单中的搜索关键词等信息,确保提交内容完整专业。
|
||||||
正在加载...
在新工单中引用
屏蔽一个用户