mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-16 06:30:14 +01:00
🎨 Improve tag escaping
This commit is contained in:
parent
fc58892ce8
commit
618269e7df
2 changed files with 11 additions and 0 deletions
|
|
@ -308,6 +308,11 @@ func SearchTags(keyword string) (ret []string) {
|
||||||
labels := labelBlocksByKeyword(keyword)
|
labels := labelBlocksByKeyword(keyword)
|
||||||
keyword = strings.Join(strings.Split(keyword, " "), search.TermSep)
|
keyword = strings.Join(strings.Split(keyword, " "), search.TermSep)
|
||||||
for label := range labels {
|
for label := range labels {
|
||||||
|
if "" == keyword {
|
||||||
|
ret = append(ret, util.EscapeHTML(label))
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
_, t := search.MarkText(label, keyword, 1024, Conf.Search.CaseSensitive)
|
_, t := search.MarkText(label, keyword, 1024, Conf.Search.CaseSensitive)
|
||||||
ret = append(ret, t)
|
ret = append(ret, t)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -112,9 +112,15 @@ func EncloseHighlighting(text string, keywords []string, openMark, closeMark str
|
||||||
re += ")"
|
re += ")"
|
||||||
ret = util.EscapeHTML(text)
|
ret = util.EscapeHTML(text)
|
||||||
|
|
||||||
|
ret = strings.ReplaceAll(ret, """, "\ue000")
|
||||||
|
ret = strings.ReplaceAll(ret, "<", "\ue001")
|
||||||
|
ret = strings.ReplaceAll(ret, ">", "\ue002")
|
||||||
if reg, err := regexp.Compile(re); err == nil {
|
if reg, err := regexp.Compile(re); err == nil {
|
||||||
ret = reg.ReplaceAllStringFunc(ret, func(s string) string { return openMark + s + closeMark })
|
ret = reg.ReplaceAllStringFunc(ret, func(s string) string { return openMark + s + closeMark })
|
||||||
}
|
}
|
||||||
|
ret = strings.ReplaceAll(ret, "\ue000", """)
|
||||||
|
ret = strings.ReplaceAll(ret, "\ue001", "<")
|
||||||
|
ret = strings.ReplaceAll(ret, "\ue002", ">")
|
||||||
|
|
||||||
// 搜索结果预览包含转义符问题 Search results preview contains escape character issue https://github.com/siyuan-note/siyuan/issues/9790
|
// 搜索结果预览包含转义符问题 Search results preview contains escape character issue https://github.com/siyuan-note/siyuan/issues/9790
|
||||||
ret = strings.ReplaceAll(ret, "\\<span", "\\\\<span")
|
ret = strings.ReplaceAll(ret, "\\<span", "\\\\<span")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue