浏览代码

:art: 反链面板中文档标题在鼠标悬浮时显示文档完整路径 https://github.com/siyuan-note/insider/issues/1088

Liang Ding 2 年之前
父节点
当前提交
1b0426b987
共有 2 个文件被更改,包括 29 次插入0 次删除
  1. 14 0
      kernel/model/backlink.go
  2. 15 0
      kernel/model/conf.go

+ 14 - 0
kernel/model/backlink.go

@@ -317,6 +317,7 @@ func GetBacklink2(id, keyword, mentionKeyword string, sortMode, mentionSortMode
 
 	linkRefs, linkRefsCount, excludeBacklinkIDs := buildLinkRefs(rootID, refs)
 	tmpBacklinks := toFlatTree(linkRefs, 0, "backlink")
+	var boxIDs []string
 	for _, l := range tmpBacklinks {
 		l.Blocks = nil
 		if "" != keyword {
@@ -325,6 +326,14 @@ func GetBacklink2(id, keyword, mentionKeyword string, sortMode, mentionSortMode
 			}
 		}
 		backlinks = append(backlinks, l)
+		boxIDs = append(boxIDs, l.Box)
+	}
+	boxIDs = gulu.Str.RemoveDuplicatedElem(boxIDs)
+
+	boxNames := Conf.BoxNames(boxIDs)
+	for _, l := range backlinks {
+		name := boxNames[l.Box]
+		l.HPath = name + "/" + l.HPath
 	}
 
 	sort.Slice(backlinks, func(i, j int) bool {
@@ -361,6 +370,11 @@ func GetBacklink2(id, keyword, mentionKeyword string, sortMode, mentionSortMode
 		backmentions = append(backmentions, l)
 	}
 
+	for _, l := range backmentions {
+		name := boxNames[l.Box]
+		l.HPath = name + "/" + l.HPath
+	}
+
 	sort.Slice(backmentions, func(i, j int) bool {
 		switch mentionSortMode {
 		case util.SortModeUpdatedDESC:

+ 15 - 0
kernel/model/conf.go

@@ -467,6 +467,21 @@ func (conf *AppConf) Box(boxID string) *Box {
 	return nil
 }
 
+func (conf *AppConf) BoxNames(boxIDs []string) (ret map[string]string) {
+	ret = map[string]string{}
+
+	boxes := conf.GetOpenedBoxes()
+	for _, boxID := range boxIDs {
+		for _, box := range boxes {
+			if box.ID == boxID {
+				ret[boxID] = box.Name
+				break
+			}
+		}
+	}
+	return
+}
+
 func (conf *AppConf) GetBoxes() (ret []*Box) {
 	ret = []*Box{}
 	notebooks, err := ListNotebooks()