🎨 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 20:38:32 +08:00
parent b4c9a028fb
commit cc8841cc8c
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
2 changed files with 45 additions and 0 deletions

View file

@ -29,6 +29,7 @@ import (
"github.com/88250/gulu"
"github.com/88250/lute/ast"
jsoniter "github.com/json-iterator/go"
"github.com/siyuan-note/filelock"
"github.com/siyuan-note/logging"
"github.com/siyuan-note/siyuan/kernel/util"
@ -212,6 +213,26 @@ func NewAttributeView(id string) (ret *AttributeView) {
return
}
func GetAttributeViewName(avID string) (ret string, err error) {
avJSONPath := GetAttributeViewDataPath(avID)
if !filelock.IsExist(avJSONPath) {
return
}
data, err := filelock.ReadFile(avJSONPath)
if nil != err {
logging.LogErrorf("read attribute view [%s] failed: %s", avID, err)
return
}
val := jsoniter.Get(data, "name")
if nil == val || val.ValueType() == jsoniter.InvalidValue {
return
}
ret = val.ToString()
return
}
func IsAttributeViewExist(avID string) bool {
avJSONPath := GetAttributeViewDataPath(avID)
return filelock.IsExist(avJSONPath)

View file

@ -17,6 +17,7 @@
package model
import (
"bytes"
"errors"
"fmt"
"os"
@ -40,6 +41,7 @@ import (
"github.com/siyuan-note/filelock"
"github.com/siyuan-note/logging"
"github.com/siyuan-note/riff"
"github.com/siyuan-note/siyuan/kernel/av"
"github.com/siyuan-note/siyuan/kernel/cache"
"github.com/siyuan-note/siyuan/kernel/filesys"
"github.com/siyuan-note/siyuan/kernel/search"
@ -731,6 +733,28 @@ func GetDoc(startID, endID, id string, index int, query string, queryTypes map[s
}
}
if avs := n.IALAttr(av.NodeAttrNameAvs); "" != avs {
// 填充属性视图名称
avNames := bytes.Buffer{}
avIDs := strings.Split(avs, ",")
for _, avID := range avIDs {
avName, getErr := av.GetAttributeViewName(avID)
if nil != getErr {
continue
}
if "" == avName {
avName = "Untitled"
}
avNames.WriteString(avName)
avNames.WriteString(",")
}
if 0 < avNames.Len() {
avNames.Truncate(avNames.Len() - 1)
n.SetIALAttr("av-names", avNames.String())
}
}
if "" != n.ID {
// 填充块引计数
if cnt := refCount[n.ID]; 0 < cnt {