Skip to content

Commit d098d85

Browse files
committed
change URL format for remote assets root in config manager
- Updated the remote assets root URL in the ConfigManager to use underscores instead of hyphens for consistency with the dataset naming convention.
1 parent d5fcf8f commit d098d85

2 files changed

Lines changed: 227 additions & 1 deletion

File tree

docs/DEV.md

Lines changed: 226 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,226 @@
1+
# RoboCOIN DataManager 开发文档
2+
3+
本文档面向开发者,介绍项目的各个组成部分以及如何配置和修改项目。
4+
5+
## 📁 项目结构
6+
7+
### 根目录结构
8+
9+
```
10+
docs/
11+
├── css/ # 样式文件
12+
│ ├── core/ # 核心样式(基础、布局、变量等)
13+
│ ├── components/ # 组件样式(模态框、提示等)
14+
│ ├── filter/ # 过滤器相关样式
15+
│ ├── selection/ # 选择面板样式
16+
│ ├── video/ # 视频卡片样式
17+
│ ├── responsive/ # 响应式样式
18+
│ └── animations/ # 动画效果
19+
├── js/ # JavaScript 源代码
20+
│ ├── modules/ # 功能模块
21+
│ ├── app.js # 应用主入口
22+
│ ├── main.js # 初始化入口
23+
│ ├── templates.js # 模板定义
24+
│ └── types.js # 类型定义
25+
├── index.html # 主页面
26+
└── favicon.ico # 网站图标
27+
```
28+
29+
### 核心模块说明
30+
31+
#### 1. **配置管理模块** (`js/modules/config.js`)
32+
- **作用**:集中管理应用的所有配置项
33+
- **功能**
34+
- 从 CSS 变量读取配置值
35+
- 管理资源路径(assets root)
36+
- 生成下载命令
37+
- 处理文件大小格式化
38+
- **关键方法**
39+
- `getConfig()`: 获取完整配置对象
40+
- `getAssetsRoot()`: 获取资源根路径
41+
- `generateDownloadCommand()`: 生成下载命令
42+
43+
#### 2. **数据管理模块** (`js/modules/data-manager.js`)
44+
- **作用**:负责数据集的加载和管理
45+
- **功能**
46+
- 从远程加载数据集索引文件
47+
- 构建数据集索引映射
48+
- 管理数据集元数据
49+
50+
#### 3. **过滤器模块** (`js/modules/@filter/`)
51+
- **作用**:实现数据集筛选功能
52+
- **组成**
53+
- `filter-manager.js`: 过滤器管理器
54+
- `filter-renderer.js`: 过滤器 UI 渲染
55+
- `filter-state.js`: 过滤器状态管理
56+
- `filter-hierarchy.js`: 过滤器层级结构
57+
- `filter-search.js`: 过滤器搜索功能
58+
- `data.js`: 过滤器数据定义
59+
60+
#### 4. **视频网格模块** (`js/modules/video-grid.js`)
61+
- **作用**:管理视频卡片的显示和虚拟滚动
62+
- **功能**
63+
- 渲染视频卡片网格
64+
- 实现虚拟滚动优化性能
65+
- 处理视频卡片交互
66+
67+
#### 5. **选择面板模块** (`js/modules/selection-panel.js`)
68+
- **作用**:管理批量下载选择功能
69+
- **功能**
70+
- 显示已选择的数据集列表
71+
- 生成下载命令
72+
- 支持导入/导出 JSON
73+
74+
#### 6. **下载管理模块** (`js/modules/download-manager.js`)
75+
- **作用**:处理下载命令的生成和复制
76+
- **功能**
77+
- 支持 HuggingFace 和 ModelScope 两个平台
78+
- 生成格式化的下载命令
79+
- 复制命令到剪贴板
80+
81+
#### 7. **事件处理模块** (`js/modules/event-handlers.js`)
82+
- **作用**:统一管理所有 DOM 事件绑定
83+
- **功能**
84+
- 绑定按钮点击事件
85+
- 处理搜索输入
86+
- 管理选择状态变化
87+
88+
#### 8. **UI 工具模块** (`js/modules/ui-utils.js`)
89+
- **作用**:提供 UI 相关的工具函数
90+
- **功能**
91+
- 更新统计计数
92+
- 显示/隐藏 UI 元素
93+
- 工具函数集合
94+
95+
#### 9. **虚拟滚动模块** (`js/modules/virtual-scroll.js`)
96+
- **作用**:实现高性能的虚拟滚动
97+
- **功能**
98+
- 只渲染可见区域的元素
99+
- 优化大量数据时的性能
100+
101+
#### 10. **其他工具模块**
102+
- `dom-utils.js`: DOM 操作工具函数
103+
- `error-notifier.js`: 错误通知管理
104+
- `toast-manager.js`: 提示消息管理
105+
- `robot-aliases.js`: 机器人别名映射
106+
107+
## 🔧 如何更换 Assets 依赖仓库
108+
109+
### 方法一:修改默认配置(推荐用于开发环境)
110+
111+
`js/modules/config.js` 文件的第 127-133 行,找到 `getDefaultRemoteAssetsRoot()` 方法:
112+
113+
```javascript
114+
/**
115+
* Default Hugging Face dataset location for assets.
116+
* @returns {string}
117+
*/
118+
static getDefaultRemoteAssetsRoot() {
119+
return 'https://huggingface.co/datasets/RogersPyke/RoboCOIN-DataManager-assets/resolve/main';
120+
}
121+
```
122+
123+
**修改步骤**
124+
1. 打开 `docs/js/modules/config.js` 文件
125+
2. 找到第 132 行的 `return` 语句
126+
3. 将 URL 替换为你自己的 Hugging Face 数据集仓库地址
127+
4. 确保 URL 格式为:`https://huggingface.co/datasets/用户名/仓库名/resolve/main`
128+
129+
**示例**
130+
```javascript
131+
static getDefaultRemoteAssetsRoot() {
132+
return 'https://huggingface.co/datasets/YourUsername/YourRepoName/resolve/main';
133+
}
134+
```
135+
136+
### 方法二:通过 URL 参数覆盖(推荐用于测试)
137+
138+
在浏览器地址栏中添加 `assetsRoot``assets` 参数:
139+
140+
```
141+
https://your-domain.com/?assetsRoot=https://huggingface.co/datasets/YourUsername/YourRepoName/resolve/main
142+
```
143+
144+
或使用简短的 `assets` 参数:
145+
146+
```
147+
https://your-domain.com/?assets=https://huggingface.co/datasets/YourUsername/YourRepoName/resolve/main
148+
```
149+
150+
**注意**:URL 参数只接受 `http://``https://` 开头的绝对 URL。
151+
152+
### 方法三:通过全局变量覆盖(用于调试)
153+
154+
在浏览器控制台中设置:
155+
156+
```javascript
157+
window.ROBOCOIN_ASSETS_ROOT = 'https://huggingface.co/datasets/YourUsername/YourRepoName/resolve/main';
158+
```
159+
160+
或者:
161+
162+
```javascript
163+
window.__ASSETS_ROOT__ = 'https://huggingface.co/datasets/YourUsername/YourRepoName/resolve/main';
164+
```
165+
166+
然后刷新页面。
167+
168+
### Assets 仓库结构要求
169+
170+
无论使用哪种方法,你的 Assets 仓库必须遵循以下目录结构:
171+
172+
```
173+
your-repo/
174+
├── info/ # JSON 索引文件
175+
│ ├── data_index.json
176+
│ └── consolidated_datasets.json
177+
├── dataset_info/ # YAML 元数据文件
178+
│ ├── dataset1.yml
179+
│ └── dataset2.yml
180+
├── thumbnails/ # 缩略图(可选)
181+
│ └── *.jpg
182+
└── videos/ # 视频文件(可选)
183+
└── *.mp4
184+
```
185+
186+
### 优先级说明
187+
188+
配置的优先级从高到低为:
189+
1. URL 参数 (`?assetsRoot=``?assets=`)
190+
2. 全局变量 (`window.ROBOCOIN_ASSETS_ROOT``window.__ASSETS_ROOT__`)
191+
3. 默认配置 (`getDefaultRemoteAssetsRoot()`)
192+
193+
## 🛠️ 开发建议
194+
195+
### 本地开发
196+
197+
1. 使用本地服务器运行项目(避免 CORS 问题)
198+
2. 可以通过 URL 参数快速切换不同的 assets 仓库进行测试
199+
3. 使用浏览器开发者工具监控网络请求
200+
201+
### 调试技巧
202+
203+
- 打开浏览器控制台查看配置信息:`ConfigManager.getConfig()`
204+
- 查看当前 assets root:`ConfigManager.getAssetsRoot()`
205+
- 检查数据集加载状态:`dataManager.getAllDatasets()`
206+
207+
### 性能优化
208+
209+
- 项目使用虚拟滚动处理大量数据集
210+
- 过滤器使用静态计数优化性能
211+
- 视频加载采用懒加载策略
212+
213+
## 📝 注意事项
214+
215+
1. **URL 格式**:所有 assets root URL 必须是以 `http://``https://` 开头的绝对 URL
216+
2. **路径规范化**:系统会自动去除 URL 末尾的斜杠
217+
3. **网络连接**:由于资源托管在 Hugging Face,网络连接可能影响加载速度
218+
4. **缓存控制**:HTML 中已设置无缓存策略,开发时注意浏览器缓存
219+
220+
## 🔗 相关文件
221+
222+
- 配置文件:`docs/js/modules/config.js`
223+
- 主应用:`docs/js/app.js`
224+
- 数据管理:`docs/js/modules/data-manager.js`
225+
- 主页面:`docs/index.html`
226+

docs/js/modules/config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ class ConfigManager {
129129
* @returns {string}
130130
*/
131131
static getDefaultRemoteAssetsRoot() {
132-
return 'https://huggingface.co/datasets/RogersPyke/RoboCOIN-DataManager-assets/resolve/main';
132+
return 'https://huggingface.co/datasets/RogersPyke/RoboCOIN_DataManager_assets/resolve/main';
133133
}
134134

135135
/**

0 commit comments

Comments
 (0)