This commit is contained in:
Daniel 2024-11-16 00:17:18 +08:00
parent c086ec4eef
commit ea0146ceb9
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
3 changed files with 21 additions and 8 deletions

View file

@ -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)
}
}

View file

@ -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
}

View file

@ -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)