🎨 Improve av block text https://github.com/siyuan-note/siyuan/issues/13140
This commit is contained in:
parent
c086ec4eef
commit
ea0146ceb9
3 changed files with 21 additions and 8 deletions
|
@ -1981,7 +1981,7 @@ func addAttributeViewBlock(now int64, avID, blockID, previousBlockID, addingBloc
|
|||
}
|
||||
|
||||
if !isDetached {
|
||||
addingBlockContent = getNodeRefText(node)
|
||||
addingBlockContent = getNodeAvBlockText(node)
|
||||
}
|
||||
|
||||
// 检查是否重复添加相同的块
|
||||
|
@ -2936,7 +2936,7 @@ func replaceAttributeViewBlock(operation *Operation, tx *Transaction) (err error
|
|||
if !operation.IsDetached {
|
||||
bindBlockAv0(tx, operation.AvID, node, tree)
|
||||
value.IsDetached = false
|
||||
value.Block.Content = getNodeRefText(node)
|
||||
value.Block.Content = getNodeAvBlockText(node)
|
||||
value.UpdatedAt = now
|
||||
err = av.SaveAttributeView(attrView)
|
||||
}
|
||||
|
@ -2973,7 +2973,7 @@ func replaceAttributeViewBlock(operation *Operation, tx *Transaction) (err error
|
|||
value.Block.ID = operation.NextID
|
||||
value.IsDetached = operation.IsDetached
|
||||
if !operation.IsDetached {
|
||||
value.Block.Content = getNodeRefText(node)
|
||||
value.Block.Content = getNodeAvBlockText(node)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -262,10 +262,23 @@ func getNodeRefText(node *ast.Node) string {
|
|||
ret = util.EscapeHTML(ret)
|
||||
return ret
|
||||
}
|
||||
return getNodeRefText0(node)
|
||||
return getNodeRefText0(node, Conf.Editor.BlockRefDynamicAnchorTextMaxLen)
|
||||
}
|
||||
|
||||
func getNodeRefText0(node *ast.Node) string {
|
||||
func getNodeAvBlockText(node *ast.Node) string {
|
||||
if nil == node {
|
||||
return ""
|
||||
}
|
||||
|
||||
if ret := node.IALAttr("name"); "" != ret {
|
||||
ret = strings.TrimSpace(ret)
|
||||
ret = util.EscapeHTML(ret)
|
||||
return ret
|
||||
}
|
||||
return getNodeRefText0(node, 1024)
|
||||
}
|
||||
|
||||
func getNodeRefText0(node *ast.Node, maxLen int) string {
|
||||
switch node.Type {
|
||||
case ast.NodeBlockQueryEmbed:
|
||||
return "Query Embed Block..."
|
||||
|
@ -289,8 +302,8 @@ func getNodeRefText0(node *ast.Node) string {
|
|||
node = treenode.FirstLeafBlock(node)
|
||||
}
|
||||
ret := renderBlockText(node, nil)
|
||||
if Conf.Editor.BlockRefDynamicAnchorTextMaxLen < utf8.RuneCountInString(ret) {
|
||||
ret = gulu.Str.SubStr(ret, Conf.Editor.BlockRefDynamicAnchorTextMaxLen) + "..."
|
||||
if maxLen < utf8.RuneCountInString(ret) {
|
||||
ret = gulu.Str.SubStr(ret, maxLen) + "..."
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
|
|
@ -296,7 +296,7 @@ func Heading2Doc(srcHeadingID, targetBoxID, targetPath string) (srcRootBlockID,
|
|||
}
|
||||
|
||||
box := Conf.Box(targetBoxID)
|
||||
headingText := getNodeRefText0(headingNode)
|
||||
headingText := getNodeRefText0(headingNode, Conf.Editor.BlockRefDynamicAnchorTextMaxLen)
|
||||
if strings.Contains(headingText, "/") {
|
||||
headingText = strings.ReplaceAll(headingText, "/", "_")
|
||||
util.PushMsg(Conf.language(246), 7000)
|
||||
|
|
Loading…
Add table
Reference in a new issue