Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Vanessa 2024-01-19 17:55:13 +08:00
commit 29d959c18c
2 changed files with 10 additions and 3 deletions

View file

@ -1298,12 +1298,15 @@ func stringQuery(query string) string {
func markReplaceSpan(n *ast.Node, unlinks *[]*ast.Node, keywords []string, markSpanDataType string, luteEngine *lute.Lute) bool {
text := n.Content()
if ast.NodeText == n.Type {
text = util.EscapeHTML(text)
escapedText := util.EscapeHTML(text)
escapedKeywords := make([]string, len(keywords))
for i, keyword := range keywords {
escapedKeywords[i] = util.EscapeHTML(keyword)
}
text = search.EncloseHighlighting(text, escapedKeywords, search.GetMarkSpanStart(markSpanDataType), search.GetMarkSpanEnd(), Conf.Search.CaseSensitive, false)
hText := search.EncloseHighlighting(escapedText, escapedKeywords, search.GetMarkSpanStart(markSpanDataType), search.GetMarkSpanEnd(), Conf.Search.CaseSensitive, false)
if hText != escapedText {
text = hText
}
n.Tokens = gulu.Str.ToBytes(text)
if bytes.Contains(n.Tokens, []byte(search.MarkDataType)) {
linkTree := parse.Inline("", n.Tokens, luteEngine.ParseOptions)

View file

@ -43,7 +43,11 @@ func RemoveElem[T any](s []T, index int) []T {
}
func EscapeHTML(s string) string {
if strings.ContainsAny(s, "<>\"'") {
if strings.Contains(s, "&amp;") {
return s
}
if strings.ContainsAny(s, "<>\"'&") {
return html.EscapeString(s)
}
return s