🎨 虚拟引用和反链提及大小写敏感遵循搜索设置 Fix https://github.com/siyuan-note/siyuan/issues/6181
This commit is contained in:
parent
aa094e549d
commit
2c610c2bad
2 changed files with 20 additions and 9 deletions
|
@ -648,19 +648,26 @@ func markReplaceSpan(text string, keywords []string, replacementStart, replaceme
|
|||
}
|
||||
|
||||
for _, k := range keywords {
|
||||
if gulu.Str.IsASCII(k) {
|
||||
if gulu.Str.IsASCII(part) {
|
||||
if part == k {
|
||||
parts[i] = replacementStart + k + replacementEnd
|
||||
tmpPart := part
|
||||
tmpK := k
|
||||
if !Conf.Search.CaseSensitive {
|
||||
tmpPart = strings.ToLower(part)
|
||||
tmpK = strings.ToLower(k)
|
||||
}
|
||||
|
||||
if gulu.Str.IsASCII(tmpK) {
|
||||
if gulu.Str.IsASCII(tmpPart) {
|
||||
if tmpPart == tmpK {
|
||||
parts[i] = replacementStart + part + replacementEnd
|
||||
}
|
||||
} else {
|
||||
if strings.Contains(part, k) {
|
||||
parts[i] = strings.ReplaceAll(part, k, replacementStart+k+replacementEnd)
|
||||
if strings.Contains(tmpPart, tmpK) {
|
||||
parts[i] = search.EncloseHighlighting(part, []string{k}, replacementStart, replacementEnd, Conf.Search.CaseSensitive)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if strings.Contains(part, k) {
|
||||
parts[i] = strings.ReplaceAll(part, k, replacementStart+k+replacementEnd)
|
||||
if strings.Contains(tmpPart, tmpK) {
|
||||
parts[i] = search.EncloseHighlighting(part, []string{k}, replacementStart, replacementEnd, Conf.Search.CaseSensitive)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -195,7 +195,11 @@ func QueryBlockDefIDsByRefText(refText string, excludeIDs []string) (ret []strin
|
|||
func queryDefIDsByDefText(keyword string, excludeIDs []string) (ret []string) {
|
||||
ret = []string{}
|
||||
notIn := "('" + strings.Join(excludeIDs, "','") + "')"
|
||||
rows, err := query("SELECT DISTINCT(def_block_id) FROM refs WHERE content = ? AND def_block_id NOT IN "+notIn, keyword)
|
||||
q := "SELECT DISTINCT(def_block_id) FROM refs WHERE content LIKE ? AND def_block_id NOT IN " + notIn
|
||||
if caseSensitive {
|
||||
q = "SELECT DISTINCT(def_block_id) FROM refs WHERE content = ? AND def_block_id NOT IN " + notIn
|
||||
}
|
||||
rows, err := query(q, keyword)
|
||||
if nil != err {
|
||||
logging.LogErrorf("sql query failed: %s", err)
|
||||
return
|
||||
|
|
Loading…
Add table
Reference in a new issue