文件整体要求:仅支持标准 .zip;不支持加密 ZIP;建议 UTF-8 编码打包;单包建议 ≤ 500MB。
结构原则:每个符合命名规则的 theme_* 目录代表一套主题。支持外层再包一层目录(如 theme_batch/theme_xxx);若同时出现根目录和外层目录的重复 theme_*,会按目录名自动去重。
目录命名:theme_{categoryName}_{themeName}_{freeType}
categoryName:主题分类英文标识(如 healing、minimal)。
themeName:主题英文名(如 springDay、darkMode)。
freeType:free / limitFree / pay。
每个主题目录内(必填):
cover.*:主题封面图(jpg/png/webp)。
icons.zip:主题图标包(上传至 R2)。
wallpapers.zip:内嵌壁纸包,内部按壁纸批量规范使用 wp_{categoryName}_{wallpaperName}_{freeType} 目录。
widgets.zip:内嵌小组件包,内部按小组件批量规范使用 wg_{categoryName}_{widgetName}_{size}_{freeType} 目录。
入库规则:内嵌壁纸和小组件会按“分类 + 名称”去重;命中已有记录则直接复用,不重复上传与入库;未命中才创建新记录。主题、壁纸、小组件分类若不存在会自动创建。
theme_batch.zip
├── theme_healing_springDay_free/
│ ├── cover.jpg
│ ├── icons.zip
│ ├── wallpapers.zip
│ │ ├── wp_nature_sakura_free/
│ │ │ ├── cover.jpg
│ │ │ └── originalFile.jpg
│ │ └── ...
│ └── widgets.zip
│ ├── wg_minimal_calendar_small_free/
│ │ ├── cover.jpg
│ │ └── assets.zip
│ └── ...
└── theme_minimal_darkMode_pay/
├── cover.png
├── icons.zip
├── wallpapers.zip
└── widgets.zip