🎨 Improve database primary key content update for bound container blocks https://github.com/siyuan-note/siyuan/issues/12664

This commit is contained in:
Daniel 2024-10-01 23:43:05 +08:00
parent 0dbc8c2933
commit 512e72700c
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -234,7 +234,24 @@ func refreshDynamicRefTexts(updatedDefNodes map[string]*ast.Node, updatedTrees m
}
// 2. 更新属性视图主键内容
var parents []*ast.Node
for _, updatedDefNode := range updatedDefNodes {
parent := updatedDefNode.Parent
for ; nil != parent && ast.NodeDocument != parent.Type && parent.IsContainerBlock(); parent = parent.Parent {
if ast.NodeDocument != parent.Type && parent.IsContainerBlock() && treenode.FirstLeafBlock(parent) == updatedDefNode {
parents = append(parents, parent)
}
}
}
for _, parent := range parents {
updatedDefNodes[parent.ID] = parent
}
for _, updatedDefNode := range updatedDefNodes {
if nil != updatedDefNode.Parent && ast.NodeDocument != updatedDefNode.Parent.Type &&
updatedDefNode.Parent.IsContainerBlock() && treenode.FirstLeafBlock(updatedDefNode.Parent) == updatedDefNode {
updatedDefNode = updatedDefNode.Parent
}
avs := updatedDefNode.IALAttr(av.NodeAttrNameAvs)
if "" == avs {
continue