Skip to content

Commit

Permalink
🎨 Improve av block text #13140
Browse files Browse the repository at this point in the history
  • Loading branch information
88250 committed Nov 15, 2024
1 parent c086ec4 commit ea0146c
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 8 deletions.
6 changes: 3 additions & 3 deletions kernel/model/attribute_view.go
Original file line number Diff line number Diff line change
Expand Up @@ -1981,7 +1981,7 @@ func addAttributeViewBlock(now int64, avID, blockID, previousBlockID, addingBloc
}

if !isDetached {
addingBlockContent = getNodeRefText(node)
addingBlockContent = getNodeAvBlockText(node)
}

// 检查是否重复添加相同的块
Expand Down Expand Up @@ -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)
}
Expand Down Expand Up @@ -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)
}
}

Expand Down
21 changes: 17 additions & 4 deletions kernel/model/blockinfo.go
Original file line number Diff line number Diff line change
Expand Up @@ -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..."
Expand All @@ -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
}
Expand Down
2 changes: 1 addition & 1 deletion kernel/model/heading.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit ea0146c

Please sign in to comment.