mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-05-02 19:40:48 +08:00
🎨 改进标签重命名 Fix https://github.com/siyuan-note/siyuan/issues/6816
This commit is contained in:
parent
e4c3a2d9d0
commit
07ae572d8d
@ -17,10 +17,8 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/siyuan-note/logging"
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
@ -29,6 +27,7 @@ import (
|
||||
"github.com/88250/lute/html"
|
||||
"github.com/emirpasic/gods/sets/hashset"
|
||||
"github.com/facette/natsort"
|
||||
"github.com/siyuan-note/logging"
|
||||
"github.com/siyuan-note/siyuan/kernel/search"
|
||||
"github.com/siyuan-note/siyuan/kernel/sql"
|
||||
"github.com/siyuan-note/siyuan/kernel/treenode"
|
||||
@ -83,16 +82,7 @@ func RemoveTag(label string) (err error) {
|
||||
continue
|
||||
}
|
||||
|
||||
nodeTags := node.ChildrenByType(ast.NodeTag)
|
||||
for _, nodeTag := range nodeTags {
|
||||
nodeLabels := nodeTag.ChildrenByType(ast.NodeText)
|
||||
for _, nodeLabel := range nodeLabels {
|
||||
if bytes.Equal(nodeLabel.Tokens, []byte(label)) {
|
||||
unlinks = append(unlinks, nodeTag)
|
||||
}
|
||||
}
|
||||
}
|
||||
nodeTags = node.ChildrenByType(ast.NodeTextMark)
|
||||
nodeTags := node.ChildrenByType(ast.NodeTextMark)
|
||||
for _, nodeTag := range nodeTags {
|
||||
if nodeTag.IsTextMarkType("tag") {
|
||||
if label == nodeTag.TextMarkTextContent {
|
||||
@ -181,19 +171,10 @@ func RenameTag(oldLabel, newLabel string) (err error) {
|
||||
continue
|
||||
}
|
||||
|
||||
nodeTags := node.ChildrenByType(ast.NodeTag)
|
||||
for _, nodeTag := range nodeTags {
|
||||
nodeLabels := nodeTag.ChildrenByType(ast.NodeText)
|
||||
for _, nodeLabel := range nodeLabels {
|
||||
if bytes.Equal(nodeLabel.Tokens, []byte(oldLabel)) {
|
||||
nodeLabel.Tokens = bytes.ReplaceAll(nodeLabel.Tokens, []byte(oldLabel), []byte(newLabel))
|
||||
}
|
||||
}
|
||||
}
|
||||
nodeTags = node.ChildrenByType(ast.NodeTextMark)
|
||||
nodeTags := node.ChildrenByType(ast.NodeTextMark)
|
||||
for _, nodeTag := range nodeTags {
|
||||
if nodeTag.IsTextMarkType("tag") {
|
||||
if oldLabel == nodeTag.TextMarkTextContent {
|
||||
if strings.HasPrefix(nodeTag.TextMarkTextContent, oldLabel+"/") || nodeTag.TextMarkTextContent == oldLabel {
|
||||
nodeTag.TextMarkTextContent = strings.ReplaceAll(nodeTag.TextMarkTextContent, oldLabel, newLabel)
|
||||
}
|
||||
}
|
||||
|
@ -1232,11 +1232,11 @@ func nSort(n *ast.Node) int {
|
||||
return 20
|
||||
case ast.NodeSuperBlock:
|
||||
return 30
|
||||
// 以下为行级元素
|
||||
case ast.NodeText, ast.NodeTextMark:
|
||||
if n.IsTextMarkType("tag") {
|
||||
return 205
|
||||
}
|
||||
return 200
|
||||
case ast.NodeTag:
|
||||
return 205
|
||||
}
|
||||
return 100
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user