Skip to content

Commit 618269e

Browse files
committed
🎨 Improve tag escaping
1 parent fc58892 commit 618269e

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

kernel/model/tag.go

+5
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,11 @@ func SearchTags(keyword string) (ret []string) {
308308
labels := labelBlocksByKeyword(keyword)
309309
keyword = strings.Join(strings.Split(keyword, " "), search.TermSep)
310310
for label := range labels {
311+
if "" == keyword {
312+
ret = append(ret, util.EscapeHTML(label))
313+
continue
314+
}
315+
311316
_, t := search.MarkText(label, keyword, 1024, Conf.Search.CaseSensitive)
312317
ret = append(ret, t)
313318
}

kernel/search/mark.go

+6
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,15 @@ func EncloseHighlighting(text string, keywords []string, openMark, closeMark str
112112
re += ")"
113113
ret = util.EscapeHTML(text)
114114

115+
ret = strings.ReplaceAll(ret, """, "\ue000")
116+
ret = strings.ReplaceAll(ret, "<", "\ue001")
117+
ret = strings.ReplaceAll(ret, ">", "\ue002")
115118
if reg, err := regexp.Compile(re); err == nil {
116119
ret = reg.ReplaceAllStringFunc(ret, func(s string) string { return openMark + s + closeMark })
117120
}
121+
ret = strings.ReplaceAll(ret, "\ue000", """)
122+
ret = strings.ReplaceAll(ret, "\ue001", "<")
123+
ret = strings.ReplaceAll(ret, "\ue002", ">")
118124

119125
// 搜索结果预览包含转义符问题 Search results preview contains escape character issue https://github.com/siyuan-note/siyuan/issues/9790
120126
ret = strings.ReplaceAll(ret, "\\<span", "\\\\<span")

0 commit comments

Comments
 (0)