Add image listing and asset management

Show images in asset directories with preview, rename, replacement, and trash recovery. Update local Markdown references when images move and restore original files if related metadata cannot be committed.

Refresh image previews after replacement and compare actual contents when deduplicating subsequent uploads.
This commit is contained in:
eezd committed 2026-10-21 15:14:07 +08:00
1 parent 8b54ccba18
commit d253536009
25 files changed
+801 -103

No files matched your search

+18
View File
@@ -170,3 +170,21 @@ func TestNotesExcludeResourceContents(t *testing.T) {
t.Fatalf("跟踪普通文件移动不能改变笔记索引范围: %v", indexed)
}
}
func TestImageReplacementRefreshesTree(t *testing.T) {
root := t.TempDir()
p := filepath.Join(root, "a.png")
if err := os.WriteFile(p, []byte("image"), 0o644); err != nil {
t.Fatal(err)
}
info, err := os.Stat(p)
if err != nil {
t.Fatal(err)
}
old := fileState{info: info, size: 5, mtime: 1}
updated := fileState{info: info, size: 5, mtime: 2}
evs := diff(map[string]fileState{"a.png": old}, map[string]fileState{"a.png": updated})
if len(evs) != 1 || evs[0].Type != "tree" {
t.Fatalf("同路径同大小替换须刷新预览:%v", evs)
}
}