owncast/utils/strings.go

34 lines
735 B
Go
Raw Normal View History

package utils
import (
"strings"
"github.com/microcosm-cc/bluemonday"
)
// StripHTML will strip HTML tags from a string.
func StripHTML(s string) string {
p := bluemonday.NewPolicy()
return p.Sanitize(s)
}
// MakeSafeStringOfLength will take a string and strip HTML tags,
// trim whitespace, and limit the length.
func MakeSafeStringOfLength(s string, length int) string {
newString := s
newString = StripHTML(newString)
// Convert utf-8 string into Unicode code points.
codePoints := []rune(newString)
if len(codePoints) > length {
codePoints = codePoints[:length]
}
newString = string(codePoints)
newString = strings.ReplaceAll(newString, "\r", "")
newString = strings.TrimSpace(newString)
return newString
}