* 保存文件的高亮数据 * @param filePath 文件路径 * @param highlights 高亮数组
(filePath: string, highlights: HiNote[])
| 109 | * @param highlights 高亮数组 |
| 110 | */ |
| 111 | async saveFileHighlights(filePath: string, highlights: HiNote[]): Promise<void> { |
| 112 | const storagePath = this.getStoragePathForFile(filePath); |
| 113 | |
| 114 | // 转换为优化格式 |
| 115 | const optimizedHighlights: { [id: string]: OptimizedHighlight } = {}; |
| 116 | |
| 117 | for (const highlight of highlights) { |
| 118 | if (!highlight.id) continue; // 跳过没有 ID 的高亮 |
| 119 | const optimized = convertToOptimizedHighlight(highlight); |
| 120 | optimizedHighlights[highlight.id] = optimized; |
| 121 | } |
| 122 | |
| 123 | const data: OptimizedHighlightData = { |
| 124 | version: this.CURRENT_VERSION, |
| 125 | lastModified: Date.now(), |
| 126 | highlights: optimizedHighlights |
| 127 | }; |
| 128 | |
| 129 | await this.app.vault.adapter.write(storagePath, JSON.stringify(data, null, 2)); |
| 130 | } |
| 131 | |
| 132 | /** |
| 133 | * 删除文件的所有高亮数据 |
nothing calls this directly
no test coverage detected