From 9eec8510b720c5f440eb37806fb8c0e01c6ffb70 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sat, 23 Aug 2025 18:44:26 +0800 Subject: [PATCH] :art: Improve av https://github.com/siyuan-note/siyuan/issues/15528 --- kernel/model/attribute_view.go | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index fc93843c6..3087f4335 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -2969,11 +2969,7 @@ func AddAttributeViewBlock(tx *Transaction, srcs []map[string]interface{}, avID, now := time.Now().UnixMilli() for _, src := range srcs { - srcID := src["id"].(string) - if !ast.IsNodeIDPattern(srcID) { - continue - } - + boundBlockID := "" srcItemID := ast.NewNodeID() if nil != src["itemID"] { srcItemID = src["itemID"].(string) @@ -2982,14 +2978,19 @@ func AddAttributeViewBlock(tx *Transaction, srcs []map[string]interface{}, avID, isDetached := src["isDetached"].(bool) var tree *parse.Tree if !isDetached { + boundBlockID = src["id"].(string) + if !ast.IsNodeIDPattern(boundBlockID) { + continue + } + var loadErr error if nil != tx { - tree, loadErr = tx.loadTree(srcID) + tree, loadErr = tx.loadTree(boundBlockID) } else { - tree, loadErr = LoadTreeByBlockID(srcID) + tree, loadErr = LoadTreeByBlockID(boundBlockID) } if nil != loadErr { - logging.LogErrorf("load tree [%s] failed: %s", srcID, loadErr) + logging.LogErrorf("load tree [%s] failed: %s", boundBlockID, loadErr) return loadErr } } @@ -2998,7 +2999,7 @@ func AddAttributeViewBlock(tx *Transaction, srcs []map[string]interface{}, avID, if nil != src["content"] { srcContent = src["content"].(string) } - if avErr := addAttributeViewBlock(now, avID, dbBlockID, groupID, previousItemID, srcItemID, srcID, srcContent, isDetached, ignoreDefaultFill, tree, tx); nil != avErr { + if avErr := addAttributeViewBlock(now, avID, dbBlockID, groupID, previousItemID, srcItemID, boundBlockID, srcContent, isDetached, ignoreDefaultFill, tree, tx); nil != avErr { return avErr } }