This commit is contained in:
Daniel 2024-12-13 10:42:04 +08:00
parent 441b6f7f65
commit 8f89caf22e
No known key found for this signature in database
GPG key ID: 86211BA83DF03017
2 changed files with 15 additions and 6 deletions

View file

@ -60,9 +60,10 @@ func getBackmentionDoc(c *gin.Context) {
if val, ok := arg["highlight"]; ok {
highlight = val.(bool)
}
backlinks := model.GetBackmentionDoc(defID, refTreeID, keyword, containChildren, highlight)
backlinks, keywords := model.GetBackmentionDoc(defID, refTreeID, keyword, containChildren, highlight)
ret.Data = map[string]interface{}{
"backmentions": backlinks,
"keywords": keywords,
}
}
@ -86,9 +87,10 @@ func getBacklinkDoc(c *gin.Context) {
if val, ok := arg["highlight"]; ok {
highlight = val.(bool)
}
backlinks := model.GetBacklinkDoc(defID, refTreeID, keyword, containChildren, highlight)
backlinks, keywords := model.GetBacklinkDoc(defID, refTreeID, keyword, containChildren, highlight)
ret.Data = map[string]interface{}{
"backlinks": backlinks,
"keywords": keywords,
}
}

View file

@ -62,8 +62,7 @@ type Backlink struct {
node *ast.Node // 仅用于按文档内容顺序排序
}
func GetBackmentionDoc(defID, refTreeID, keyword string, containChildren, highlight bool) (ret []*Backlink) {
var keywords []string
func GetBackmentionDoc(defID, refTreeID, keyword string, containChildren, highlight bool) (ret []*Backlink, keywords []string) {
keyword = strings.TrimSpace(keyword)
if "" != keyword {
keywords = strings.Split(keyword, " ")
@ -98,6 +97,11 @@ func GetBackmentionDoc(defID, refTreeID, keyword string, containChildren, highli
mentionKeywords = append(mentionKeywords, strings.Split(keyword, " ")...)
}
mentionKeywords = gulu.Str.RemoveDuplicatedElem(mentionKeywords)
keywords = append(keywords, mentionKeywords...)
keywords = gulu.Str.RemoveDuplicatedElem(keywords)
if 1 > len(keywords) {
keywords = []string{}
}
var refTree *parse.Tree
trees := filesys.LoadTrees(mentionBlockIDs)
@ -118,12 +122,15 @@ func GetBackmentionDoc(defID, refTreeID, keyword string, containChildren, highli
return
}
func GetBacklinkDoc(defID, refTreeID, keyword string, containChildren, highlight bool) (ret []*Backlink) {
var keywords []string
func GetBacklinkDoc(defID, refTreeID, keyword string, containChildren, highlight bool) (ret []*Backlink, keywords []string) {
keyword = strings.TrimSpace(keyword)
if "" != keyword {
keywords = strings.Split(keyword, " ")
}
keywords = gulu.Str.RemoveDuplicatedElem(keywords)
if 1 > len(keywords) {
keywords = []string{}
}
ret = []*Backlink{}
sqlBlock := sql.GetBlock(defID)