diff --git a/kernel/cache/asset.go b/kernel/cache/asset.go index c958561b5..13d5ebc55 100644 --- a/kernel/cache/asset.go +++ b/kernel/cache/asset.go @@ -60,6 +60,6 @@ func LoadAssets() { }) elapsed := time.Since(start) if 2000 < elapsed.Milliseconds() { - util.LogInfof("loaded assets [%s]", elapsed) + util.LogInfof("loaded assets [%.2fs]", elapsed.Seconds()) } } diff --git a/kernel/model/assets.go b/kernel/model/assets.go index 7c1bab71b..32d427e32 100644 --- a/kernel/model/assets.go +++ b/kernel/model/assets.go @@ -34,7 +34,6 @@ import ( "github.com/88250/gulu" "github.com/88250/lute/ast" "github.com/88250/lute/parse" - "github.com/88250/protyle" "github.com/gabriel-vasile/mimetype" "github.com/siyuan-note/filelock" "github.com/siyuan-note/httpclient" @@ -462,13 +461,14 @@ func RenameAsset(oldPath, newName string) (err error) { return } - newPath := util.AssetName(newName) + filepath.Ext(oldPath) + newName = util.AssetName(newName) + filepath.Ext(oldPath) + newPath := "assets/" + newName if err = gulu.File.Copy(filepath.Join(util.DataDir, oldPath), filepath.Join(util.DataDir, newPath)); nil != err { util.LogErrorf("copy asset [%s] failed: %s", oldPath, err) return } + oldName := path.Base(oldPath) - luteEngine := NewLute() notebooks, err := ListNotebooks() if nil != err { return @@ -484,18 +484,19 @@ func RenameAsset(oldPath, newName string) (err error) { return } - if !bytes.Contains(data, []byte(oldPath)) { - return + if !bytes.Contains(data, []byte(oldName)) { + continue } - data = bytes.Replace(data, []byte(oldPath), []byte(newPath), -1) + data = bytes.Replace(data, []byte(oldName), []byte(newName), -1) if writeErr := filelock.NoLockFileWrite(treeAbsPath, data); nil != writeErr { util.LogErrorf("write data [path=%s] failed: %s", treeAbsPath, writeErr) err = writeErr return } - tree, parseErr := protyle.ParseJSONWithoutFix(luteEngine, data) + p := filepath.ToSlash(strings.TrimPrefix(treeAbsPath, filepath.Join(util.DataDir, notebook.ID))) + tree, parseErr := LoadTree(notebook.ID, p) if nil != parseErr { util.LogErrorf("parse json to tree [%s] failed: %s", treeAbsPath, parseErr) err = parseErr