mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-05-04 14:52:41 +08:00
🐛 编辑器中输入 #
后标签搜索提示不全 Fix https://github.com/siyuan-note/siyuan/issues/7391
This commit is contained in:
parent
8196052c0d
commit
e08d621da7
@ -205,7 +205,7 @@ func BuildGraph(query string) (boxID string, nodes []*GraphNode, links []*GraphL
|
|||||||
}
|
}
|
||||||
|
|
||||||
func linkTagBlocks(blocks *[]*Block, nodes *[]*GraphNode, links *[]*GraphLink, p string, style map[string]string) {
|
func linkTagBlocks(blocks *[]*Block, nodes *[]*GraphNode, links *[]*GraphLink, p string, style map[string]string) {
|
||||||
tagSpans := sql.QueryTagSpans(p, 1024)
|
tagSpans := sql.QueryTagSpans(p)
|
||||||
if 1 > len(tagSpans) {
|
if 1 > len(tagSpans) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -41,7 +41,7 @@ func RemoveTag(label string) (err error) {
|
|||||||
util.PushEndlessProgress(Conf.Language(116))
|
util.PushEndlessProgress(Conf.Language(116))
|
||||||
util.RandomSleep(1000, 2000)
|
util.RandomSleep(1000, 2000)
|
||||||
|
|
||||||
tags := sql.QueryTagSpansByKeyword(label, 102400)
|
tags := sql.QueryTagSpansByLabel(label)
|
||||||
treeBlocks := map[string][]string{}
|
treeBlocks := map[string][]string{}
|
||||||
for _, tag := range tags {
|
for _, tag := range tags {
|
||||||
if blocks, ok := treeBlocks[tag.RootID]; !ok {
|
if blocks, ok := treeBlocks[tag.RootID]; !ok {
|
||||||
@ -126,7 +126,7 @@ func RenameTag(oldLabel, newLabel string) (err error) {
|
|||||||
util.PushEndlessProgress(Conf.Language(110))
|
util.PushEndlessProgress(Conf.Language(110))
|
||||||
util.RandomSleep(500, 1000)
|
util.RandomSleep(500, 1000)
|
||||||
|
|
||||||
tags := sql.QueryTagSpansByKeyword(oldLabel, 102400)
|
tags := sql.QueryTagSpansByLabel(oldLabel)
|
||||||
treeBlocks := map[string][]string{}
|
treeBlocks := map[string][]string{}
|
||||||
for _, tag := range tags {
|
for _, tag := range tags {
|
||||||
if blocks, ok := treeBlocks[tag.RootID]; !ok {
|
if blocks, ok := treeBlocks[tag.RootID]; !ok {
|
||||||
@ -310,7 +310,7 @@ func labelBlocksByKeyword(keyword string) (ret map[string]TagBlocks) {
|
|||||||
func labelTags() (ret map[string]Tags) {
|
func labelTags() (ret map[string]Tags) {
|
||||||
ret = map[string]Tags{}
|
ret = map[string]Tags{}
|
||||||
|
|
||||||
tagSpans := sql.QueryTagSpans("", 10240)
|
tagSpans := sql.QueryTagSpans("")
|
||||||
for _, tagSpan := range tagSpans {
|
for _, tagSpan := range tagSpans {
|
||||||
label := tagSpan.Content
|
label := tagSpan.Content
|
||||||
if _, ok := ret[label]; ok {
|
if _, ok := ret[label]; ok {
|
||||||
|
@ -80,8 +80,23 @@ func SelectSpansRawStmt(stmt string, limit int) (ret []*Span) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func QueryTagSpansByLabel(label string) (ret []*Span) {
|
||||||
|
stmt := "SELECT * FROM spans WHERE type LIKE '%tag%' AND content LIKE '%" + label + "%' GROUP BY block_id"
|
||||||
|
rows, err := query(stmt)
|
||||||
|
if nil != err {
|
||||||
|
logging.LogErrorf("sql query failed: %s", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
for rows.Next() {
|
||||||
|
span := scanSpanRows(rows)
|
||||||
|
ret = append(ret, span)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func QueryTagSpansByKeyword(keyword string, limit int) (ret []*Span) {
|
func QueryTagSpansByKeyword(keyword string, limit int) (ret []*Span) {
|
||||||
stmt := "SELECT * FROM spans WHERE type LIKE '%tag%' AND content LIKE '%" + keyword + "%'"
|
stmt := "SELECT * FROM spans WHERE type LIKE '%tag%' AND content LIKE '%" + keyword + "%' GROUP BY markdown"
|
||||||
stmt += " LIMIT " + strconv.Itoa(limit)
|
stmt += " LIMIT " + strconv.Itoa(limit)
|
||||||
rows, err := query(stmt)
|
rows, err := query(stmt)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
@ -96,12 +111,11 @@ func QueryTagSpansByKeyword(keyword string, limit int) (ret []*Span) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func QueryTagSpans(p string, limit int) (ret []*Span) {
|
func QueryTagSpans(p string) (ret []*Span) {
|
||||||
stmt := "SELECT * FROM spans WHERE type LIKE '%tag%'"
|
stmt := "SELECT * FROM spans WHERE type LIKE '%tag%'"
|
||||||
if "" != p {
|
if "" != p {
|
||||||
stmt += " AND path = '" + p + "'"
|
stmt += " AND path = '" + p + "'"
|
||||||
}
|
}
|
||||||
stmt += " LIMIT " + strconv.Itoa(limit)
|
|
||||||
rows, err := query(stmt)
|
rows, err := query(stmt)
|
||||||
if nil != err {
|
if nil != err {
|
||||||
logging.LogErrorf("sql query failed: %s", err)
|
logging.LogErrorf("sql query failed: %s", err)
|
||||||
|
Loading…
Reference in New Issue
Block a user