mirror of
https://github.com/miniflux/v2.git
synced 2025-07-12 16:58:36 +00:00
The [strings.Fields](https://pkg.go.dev/strings#Fields) considers `'\t', '\n',
'\v', '\f', '\r', ' ', U+0085 (NEL), U+00A0 (NBSP).` as spaces, so no need to
remove them beforehand.
This is a continuation of f2f60a8f73
21 lines
498 B
Go
21 lines
498 B
Go
// SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package sanitizer
|
|
|
|
import "strings"
|
|
|
|
func TruncateHTML(input string, max int) string {
|
|
text := StripTags(input)
|
|
|
|
// Collapse multiple spaces into a single space
|
|
text = strings.Join(strings.Fields(text), " ")
|
|
|
|
// Convert to runes to be safe with unicode
|
|
runes := []rune(text)
|
|
if len(runes) > max {
|
|
return strings.TrimSpace(string(runes[:max])) + "…"
|
|
}
|
|
|
|
return text
|
|
}
|