浏览代码

:bug: Hyperlinks affect backlink calculation issue https://github.com/siyuan-note/siyuan/issues/11001

Daniel 1 年之前
父节点
当前提交
3a852fd1ab
共有 2 个文件被更改,包括 6 次插入5 次删除
  1. 4 3
      kernel/model/backlink.go
  2. 2 2
      kernel/model/search.go

+ 4 - 3
kernel/model/backlink.go

@@ -521,12 +521,13 @@ func buildLinkRefs(defRootID string, refs []*sql.Ref, keyword string) (ret []*Bl
 	for parentID, _ := range parentRefParagraphs {
 		paragraphParentIDs = append(paragraphParentIDs, parentID)
 	}
-	paragraphParents := sql.GetBlocks(paragraphParentIDs)
+	sqlParagraphParents := sql.GetBlocks(paragraphParentIDs)
+	paragraphParents := fromSQLBlocks(&sqlParagraphParents, "", 12)
 
 	processedParagraphs := hashset.New()
 	for _, p := range paragraphParents {
 		// 改进标题下方块和列表项子块引用时的反链定位 https://github.com/siyuan-note/siyuan/issues/7484
-		if "i" == p.Type {
+		if "NodeListItem" == p.Type {
 			refBlock := parentRefParagraphs[p.ID]
 			if nil != refBlock && p.FContent == refBlock.Content { // 使用内容判断是否是列表项下第一个子块
 				// 如果是列表项下第一个子块,则后续会通过列表项传递或关联处理,所以这里就不处理这个段落了
@@ -535,7 +536,7 @@ func buildLinkRefs(defRootID string, refs []*sql.Ref, keyword string) (ret []*Bl
 					refsCount--
 					continue
 				}
-				ret = append(ret, fromSQLBlock(p, "", 12))
+				ret = append(ret, p)
 			}
 		}
 	}

+ 2 - 2
kernel/model/search.go

@@ -1339,7 +1339,7 @@ func fromSQLBlock(sqlBlock *sql.Block, terms string, beforeLen int) (block *Bloc
 	content, _ = markSearch(content, terms, beforeLen)
 	content = maxContent(content, 5120)
 	markdown := maxContent(sqlBlock.Markdown, 5120)
-
+	fContent := util.EscapeHTML(sqlBlock.FContent) // fContent 会用于和 content 对比,在反链计算时用于判断是否是列表项下第一个子块,所以也需要转义 https://github.com/siyuan-note/siyuan/issues/11001
 	block = &Block{
 		Box:      sqlBlock.Box,
 		Path:     sqlBlock.Path,
@@ -1351,7 +1351,7 @@ func fromSQLBlock(sqlBlock *sql.Block, terms string, beforeLen int) (block *Bloc
 		Memo:     sqlBlock.Memo,
 		Tag:      sqlBlock.Tag,
 		Content:  content,
-		FContent: sqlBlock.FContent,
+		FContent: fContent,
 		Markdown: markdown,
 		Type:     treenode.FromAbbrType(sqlBlock.Type),
 		SubType:  sqlBlock.SubType,