🎨 The database primary key field displays the icon of the bound doc https://github.com/siyuan-note/siyuan/issues/13378
This commit is contained in:
parent
dbdf3c15a9
commit
807f0df86f
4 changed files with 16 additions and 12 deletions
|
@ -371,6 +371,7 @@ func (value *Value) GetValByType(typ KeyType) (ret interface{}) {
|
|||
|
||||
type ValueBlock struct {
|
||||
ID string `json:"id"`
|
||||
Icon string `json:"icon"`
|
||||
Content string `json:"content"`
|
||||
Created int64 `json:"created"`
|
||||
Updated int64 `json:"updated"`
|
||||
|
|
|
@ -1980,8 +1980,9 @@ func addAttributeViewBlock(now int64, avID, blockID, previousBlockID, addingBloc
|
|||
return
|
||||
}
|
||||
|
||||
var blockIcon string
|
||||
if !isDetached {
|
||||
addingBlockContent = getNodeAvBlockText(node)
|
||||
blockIcon, addingBlockContent = getNodeAvBlockText(node)
|
||||
}
|
||||
|
||||
// 检查是否重复添加相同的块
|
||||
|
@ -1992,6 +1993,7 @@ func addAttributeViewBlock(now int64, avID, blockID, previousBlockID, addingBloc
|
|||
// 重复绑定一下,比如剪切数据库块、取消绑定块后再次添加的场景需要
|
||||
bindBlockAv0(tx, avID, node, tree)
|
||||
blockValue.IsDetached = isDetached
|
||||
blockValue.Block.Icon = blockIcon
|
||||
blockValue.Block.Content = addingBlockContent
|
||||
blockValue.UpdatedAt = now
|
||||
err = av.SaveAttributeView(attrView)
|
||||
|
@ -2936,7 +2938,7 @@ func replaceAttributeViewBlock(operation *Operation, tx *Transaction) (err error
|
|||
if !operation.IsDetached {
|
||||
bindBlockAv0(tx, operation.AvID, node, tree)
|
||||
value.IsDetached = false
|
||||
value.Block.Content = getNodeAvBlockText(node)
|
||||
value.Block.Icon, value.Block.Content = getNodeAvBlockText(node)
|
||||
value.UpdatedAt = now
|
||||
err = av.SaveAttributeView(attrView)
|
||||
}
|
||||
|
@ -2973,7 +2975,7 @@ func replaceAttributeViewBlock(operation *Operation, tx *Transaction) (err error
|
|||
value.Block.ID = operation.NextID
|
||||
value.IsDetached = operation.IsDetached
|
||||
if !operation.IsDetached {
|
||||
value.Block.Content = getNodeAvBlockText(node)
|
||||
value.Block.Icon, value.Block.Content = getNodeAvBlockText(node)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -268,22 +268,19 @@ func getNodeRefText(node *ast.Node) string {
|
|||
return getNodeRefText0(node, Conf.Editor.BlockRefDynamicAnchorTextMaxLen)
|
||||
}
|
||||
|
||||
func getNodeAvBlockText(node *ast.Node) (ret string) {
|
||||
func getNodeAvBlockText(node *ast.Node) (icon, content string) {
|
||||
if nil == node {
|
||||
return ""
|
||||
return
|
||||
}
|
||||
|
||||
icon = node.IALAttr("icon")
|
||||
if name := node.IALAttr("name"); "" != name {
|
||||
name = strings.TrimSpace(name)
|
||||
name = util.EscapeHTML(name)
|
||||
ret = name
|
||||
content = name
|
||||
} else {
|
||||
ret = getNodeRefText0(node, 1024)
|
||||
content = getNodeRefText0(node, 1024)
|
||||
}
|
||||
|
||||
//if icon := node.IALAttr("icon"); "" != icon {
|
||||
// ret = icon + " " + ret
|
||||
//}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -269,7 +269,11 @@ func refreshDynamicRefTexts(updatedDefNodes map[string]*ast.Node, updatedTrees m
|
|||
|
||||
for _, blockValue := range blockValues.Values {
|
||||
if blockValue.Block.ID == updatedDefNode.ID {
|
||||
newContent := getNodeAvBlockText(updatedDefNode)
|
||||
newIcon, newContent := getNodeAvBlockText(updatedDefNode)
|
||||
if newIcon != blockValue.Block.Icon {
|
||||
blockValue.Block.Icon = newIcon
|
||||
changedAv = true
|
||||
}
|
||||
if newContent != blockValue.Block.Content {
|
||||
blockValue.Block.Content = newContent
|
||||
changedAv = true
|
||||
|
|
Loading…
Add table
Reference in a new issue