🎨 Display the database title on the block superscript https://github.com/siyuan-note/siyuan/issues/10545

This commit is contained in:
Daniel 2024-03-08 22:59:28 +08:00
parent 09b23754db
commit c61d412fea
No known key found for this signature in database
GPG key ID: 86211BA83DF03017

View file

@ -1696,24 +1696,29 @@ func setAttributeViewName(operation *Operation) (err error) {
nodes := getAttrViewBoundNodes(attrView) nodes := getAttrViewBoundNodes(attrView)
for _, node := range nodes { for _, node := range nodes {
oldAttrs := parse.IAL2Map(node.KramdownIAL) oldAttrs := parse.IAL2Map(node.KramdownIAL)
nodeAvIDsVal := oldAttrs[av.NodeAttrNameAvs] avNames := getNodeIALAvNames(node)
if "" == nodeAvIDsVal { if "" == avNames {
continue continue
} }
node.SetIALAttr("av-names", avNames)
pushBroadcastAttrTransactions(oldAttrs, node)
}
return
}
func getNodeIALAvNames(node *ast.Node) (ret string) {
avIDs := parse.IAL2Map(node.KramdownIAL)[av.NodeAttrNameAvs]
if "" == avIDs {
return
}
avNames := bytes.Buffer{} avNames := bytes.Buffer{}
nodeAvIDs := strings.Split(nodeAvIDsVal, ",") nodeAvIDs := strings.Split(avIDs, ",")
for _, nodeAvID := range nodeAvIDs { for _, nodeAvID := range nodeAvIDs {
var nodeAvName string nodeAvName, getErr := av.GetAttributeViewName(nodeAvID)
var getErr error
if nodeAvID == avID {
nodeAvName = attrView.Name
} else {
nodeAvName, getErr = av.GetAttributeViewName(nodeAvID)
if nil != getErr { if nil != getErr {
continue continue
} }
}
if "" == nodeAvName { if "" == nodeAvName {
nodeAvName = "Untitled" nodeAvName = "Untitled"
} }
@ -1725,9 +1730,7 @@ func setAttributeViewName(operation *Operation) (err error) {
} }
if 0 < avNames.Len() { if 0 < avNames.Len() {
avNames.Truncate(avNames.Len() - 6) avNames.Truncate(avNames.Len() - 6)
node.SetIALAttr("av-names", avNames.String()) ret = avNames.String()
pushBroadcastAttrTransactions(oldAttrs, node)
}
} }
return return
} }
@ -2053,6 +2056,11 @@ func addAttributeViewBlock(avID, blockID, previousBlockID, addingBlockID string,
attrs[av.NodeAttrNameAvs] = strings.Join(avIDs, ",") attrs[av.NodeAttrNameAvs] = strings.Join(avIDs, ",")
} }
avNames := getNodeIALAvNames(node)
if "" != avNames {
attrs["av-names"] = avNames
}
if nil != tx { if nil != tx {
if err = setNodeAttrsWithTx(tx, node, tree, attrs); nil != err { if err = setNodeAttrsWithTx(tx, node, tree, attrs); nil != err {
return return