diff --git a/kernel/model/block.go b/kernel/model/block.go index 417cbf19356..bf0bd7a20ff 100644 --- a/kernel/model/block.go +++ b/kernel/model/block.go @@ -101,6 +101,10 @@ func (block *Block) IsContainerBlock() bool { return false } +func (block *Block) IsDoc() bool { + return "NodeDocument" == block.Type +} + type Path struct { ID string `json:"id"` // 块 ID Box string `json:"box"` // 块 Box diff --git a/kernel/model/blockial.go b/kernel/model/blockial.go index bd43d3718db..8af83a68924 100644 --- a/kernel/model/blockial.go +++ b/kernel/model/blockial.go @@ -216,7 +216,10 @@ func setNodeAttrs0(node *ast.Node, nameValues map[string]string) (oldAttrs map[s } for name, value := range nameValues { - if "" == strings.TrimSpace(value) { + value = util.RemoveInvalid(value) + value = strings.TrimSpace(value) + value = strings.TrimSuffix(value, ",") + if "" == value { node.RemoveIALAttr(name) } else { node.SetIALAttr(name, value) diff --git a/kernel/model/search.go b/kernel/model/search.go index 8033f0d30ac..dbbeb973074 100644 --- a/kernel/model/search.go +++ b/kernel/model/search.go @@ -360,8 +360,8 @@ func SearchRefBlock(id, rootID, keyword string, beforeLen int, isSquareBrackets, ret = []*Block{} } - // 在 hPath 中加入笔记本名 Show notebooks in hpath of block ref search list results https://github.com/siyuan-note/siyuan/issues/9378 prependNotebookNameInHPath(ret) + filterSelfHPath(ret) return } @@ -423,12 +423,25 @@ func SearchRefBlock(id, rootID, keyword string, beforeLen int, isSquareBrackets, newDoc = true } - // 在 hPath 中加入笔记本名 Show notebooks in hpath of block ref search list results https://github.com/siyuan-note/siyuan/issues/9378 prependNotebookNameInHPath(ret) + filterSelfHPath(ret) return } +func filterSelfHPath(blocks []*Block) { + // 简化搜索结果列表中的文档块路径 Simplify document block paths in search results https://github.com/siyuan-note/siyuan/issues/13364 + // 文档块不显示自己的路径(最后一层) + + for _, b := range blocks { + if b.IsDoc() { + b.HPath = strings.TrimSuffix(b.HPath, path.Base(b.HPath)) + } + } +} + func prependNotebookNameInHPath(blocks []*Block) { + // 在 hPath 中加入笔记本名 Show notebooks in hpath of block ref search list results https://github.com/siyuan-note/siyuan/issues/9378 + var boxIDs []string for _, b := range blocks { boxIDs = append(boxIDs, b.Box) @@ -1110,6 +1123,8 @@ func FullTextSearchBlock(query string, boxes, paths []string, types map[string]b if 1 > len(ret) { ret = []*Block{} } + + filterSelfHPath(ret) return }