FILE / ScuroNeko/Laniakea

tgrich/utils.go

Исходный файл и его история в репозитории.
FILE v1.1.0
Files
Laniakea/tgrich/utils.go
T
ScuroNeko f03a081ed6
Golang lint / lint (pull_request) Successful in 1m20s
Golang lint / lint (push) Successful in 4m8s
(new): rich message support
(fix): runtime reliability
(tests): regression coverage
(doc): v1.1 release notes
2026-08-12 16:34:44 +03:00

42 lines
870 B
Go

package tgrich
import (
"fmt"
"sort"
"strings"
)
func escapeHTML(s string) string {
s = strings.ReplaceAll(s, "&", "&")
s = strings.ReplaceAll(s, "<", "&lt;")
s = strings.ReplaceAll(s, ">", "&gt;")
s = strings.ReplaceAll(s, `"`, "&quot;")
return s
}
func formatAttrs(attrs map[string]string) []string {
out := make([]string, 0, len(attrs))
for k, v := range attrs {
if v == "" {
out = append(out, k)
continue
}
out = append(out, fmt.Sprintf(`%s="%s"`, k, escapeHTML(v)))
}
sort.Strings(out)
return out
}
func openTag(name string, attrs []string) string {
if len(attrs) == 0 {
return "<" + name + ">"
}
return "<" + name + " " + strings.Join(attrs, " ") + ">"
}
func selfClosingTag(name string, attrs []string) string {
if len(attrs) == 0 {
return "<" + name + "/>"
}
return "<" + name + " " + strings.Join(attrs, " ") + "/>"
}