diff --git a/kernel/api/filetree.go b/kernel/api/filetree.go index 030c8dc3e..3b69b1793 100644 --- a/kernel/api/filetree.go +++ b/kernel/api/filetree.go @@ -1120,7 +1120,7 @@ func getDoc(c *gin.Context) { highlight = highlightArg.(bool) } - blockCount, content, parentID, parent2ID, rootID, typ, eof, scroll, boxID, docPath, isBacklinkExpand, err := + blockCount, content, parentID, parent2ID, rootID, typ, eof, scroll, boxID, docPath, isBacklinkExpand, keywords, err := model.GetDoc(startID, endID, id, index, query, queryTypes, queryMethod, mode, size, isBacklink, highlight) if model.ErrBlockNotFound == err { ret.Code = 3 @@ -1151,6 +1151,7 @@ func getDoc(c *gin.Context) { "path": docPath, "isSyncing": isSyncing, "isBacklinkExpand": isBacklinkExpand, + "keywords": keywords, } } diff --git a/kernel/model/blockinfo.go b/kernel/model/blockinfo.go index a6b75365c..fb2c43b22 100644 --- a/kernel/model/blockinfo.go +++ b/kernel/model/blockinfo.go @@ -267,17 +267,23 @@ func getNodeRefText(node *ast.Node) string { return getNodeRefText0(node, Conf.Editor.BlockRefDynamicAnchorTextMaxLen) } -func getNodeAvBlockText(node *ast.Node) string { +func getNodeAvBlockText(node *ast.Node) (ret string) { if nil == node { return "" } - if ret := node.IALAttr("name"); "" != ret { - ret = strings.TrimSpace(ret) - ret = util.EscapeHTML(ret) - return ret + if name := node.IALAttr("name"); "" != name { + name = strings.TrimSpace(name) + name = util.EscapeHTML(name) + ret = name + } else { + ret = getNodeRefText0(node, 1024) } - return getNodeRefText0(node, 1024) + + //if icon := node.IALAttr("icon"); "" != icon { + // ret = icon + " " + ret + //} + return } func getNodeRefText0(node *ast.Node, maxLen int) string { diff --git a/kernel/model/file.go b/kernel/model/file.go index b8a343651..f86f24774 100644 --- a/kernel/model/file.go +++ b/kernel/model/file.go @@ -599,7 +599,8 @@ func StatTree(id string) (ret *util.BlockStatResult) { } } -func GetDoc(startID, endID, id string, index int, query string, queryTypes map[string]bool, queryMethod, mode int, size int, isBacklink, highlight bool) (blockCount int, dom, parentID, parent2ID, rootID, typ string, eof, scroll bool, boxID, docPath string, isBacklinkExpand bool, err error) { +func GetDoc(startID, endID, id string, index int, query string, queryTypes map[string]bool, queryMethod, mode int, size int, isBacklink, highlight bool) ( + blockCount int, dom, parentID, parent2ID, rootID, typ string, eof, scroll bool, boxID, docPath string, isBacklinkExpand bool, keywords []string, err error) { //os.MkdirAll("pprof", 0755) //cpuProfile, _ := os.Create("pprof/GetDoc") //pprof.StartCPUProfile(cpuProfile) @@ -800,7 +801,6 @@ func GetDoc(startID, endID, id string, index int, query string, queryTypes map[s subTree := &parse.Tree{ID: rootID, Root: &ast.Node{Type: ast.NodeDocument}, Marks: tree.Marks} - var keywords []string if "" != query && (0 == queryMethod || 1 == queryMethod || 3 == queryMethod) { // 只有关键字、查询语法和正则表达式搜索支持高亮 if 0 == queryMethod { query = stringQuery(query) diff --git a/kernel/model/push_reload.go b/kernel/model/push_reload.go index 96f519d68..35a270f3b 100644 --- a/kernel/model/push_reload.go +++ b/kernel/model/push_reload.go @@ -269,7 +269,7 @@ func refreshDynamicRefTexts(updatedDefNodes map[string]*ast.Node, updatedTrees m for _, blockValue := range blockValues.Values { if blockValue.Block.ID == updatedDefNode.ID { - newContent := getNodeRefText(updatedDefNode) + newContent := getNodeAvBlockText(updatedDefNode) if newContent != blockValue.Block.Content { blockValue.Block.Content = newContent changedAv = true