🎨 Improve the backlink panel breadcrumb and block sorting https://github.com/siyuan-note/siyuan/issues/13008

This commit is contained in:
Daniel 2024-11-04 17:46:10 +08:00
parent 6ac292ff01
commit f0a292ac51
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
3 changed files with 8 additions and 11 deletions

View file

@ -167,8 +167,8 @@ func GetBacklinkDoc(defID, refTreeID, keyword string, containChildren bool) (ret
func filterBlockPaths(blockLinks []*Backlink) {
for _, b := range blockLinks {
if 1 == len(b.BlockPaths) && "NodeDocument" == b.BlockPaths[0].Type {
// 如果只有根文档这一层则不显示
if 2 == len(b.BlockPaths) {
// 根下只有一层则不显示
b.BlockPaths = []*BlockPath{}
}
}
@ -246,10 +246,7 @@ func buildBacklink(refID string, refTree *parse.Tree, keywords []string, luteEng
dom := renderBlockDOMByNodes(renderNodes, luteEngine)
var blockPaths []*BlockPath
if (nil != n.Parent && ast.NodeDocument != n.Parent.Type) || (ast.NodeHeading != n.Type && 0 < treenode.HeadingLevel(n)) {
// 仅在多于一层时才显示面包屑,这样界面展示更加简洁
// The backlink panel no longer displays breadcrumbs of the first-level blocks https://github.com/siyuan-note/siyuan/issues/12862
// Improve the backlink panel breadcrumb and block sorting https://github.com/siyuan-note/siyuan/issues/13008
blockPaths = buildBlockBreadcrumb(n, nil, false)
blockPaths = buildBlockBreadcrumb(n, nil)
}
if 1 > len(blockPaths) {
blockPaths = []*BlockPath{}

View file

@ -887,7 +887,7 @@ func getEmbeddedBlock(trees map[string]*parse.Tree, sqlBlock *sql.Block, heading
}
if breadcrumb {
blockPaths = buildBlockBreadcrumb(def, nil, true)
blockPaths = buildBlockBreadcrumb(def, nil)
}
if 1 > len(blockPaths) {
blockPaths = []*BlockPath{}

View file

@ -416,11 +416,11 @@ func BuildBlockBreadcrumb(id string, excludeTypes []string) (ret []*BlockPath, e
return
}
ret = buildBlockBreadcrumb(node, excludeTypes, true)
ret = buildBlockBreadcrumb(node, excludeTypes)
return
}
func buildBlockBreadcrumb(node *ast.Node, excludeTypes []string, displayCurrentNode bool) (ret []*BlockPath) {
func buildBlockBreadcrumb(node *ast.Node, excludeTypes []string) (ret []*BlockPath) {
ret = []*BlockPath{}
if nil == node {
return
@ -481,8 +481,8 @@ func buildBlockBreadcrumb(node *ast.Node, excludeTypes []string, displayCurrentN
name = strings.ReplaceAll(name, editor.Caret, "")
name = util.EscapeHTML(name)
if parent == node && !displayCurrentNode {
add = false
if parent == node {
name = ""
}
if add {