chore: fix various problems (#39298)

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
wxiaoguang
2026-09-14 22:15:21 +02:00
committed by GitHub
co-authored by Lunny Xiao
parent 85cbf477e5
commit c0ceea2f8f
14 changed files with 124 additions and 122 deletions
+25 -8
View File
@@ -90,18 +90,27 @@ func EscapeString(s string) template.HTML {
}
type HTMLWriter interface {
Err() error
OriginWriter() io.Writer
WriteString(s string) HTMLWriter
WriteHTML(s template.HTML) HTMLWriter
WriteFormatf(fmt template.HTML, args ...any) HTMLWriter
Err() error
}
var (
_ HTMLWriter = (*htmlWriter)(nil)
_ HTMLWriter = (*HTMLBuilder)(nil)
)
type htmlWriter struct {
w io.Writer
errs []error
}
func (h *htmlWriter) Err() error {
return errors.Join(h.errs...)
}
func (h *htmlWriter) OriginWriter() io.Writer {
return h.w
}
@@ -127,10 +136,6 @@ func (h *htmlWriter) WriteFormatf(fmt template.HTML, args ...any) HTMLWriter {
return h
}
func (h *htmlWriter) Err() error {
return errors.Join(h.errs...)
}
func NewHTMLWriter(w io.Writer) HTMLWriter {
return &htmlWriter{w: w}
}
@@ -144,17 +149,29 @@ type HTMLBuilder struct {
sb strings.Builder
}
func (b *HTMLBuilder) WriteString(s string) *HTMLBuilder {
func (b *HTMLBuilder) Err() error {
return nil
}
func (b *HTMLBuilder) OriginWriter() io.Writer {
return &b.sb
}
func (b *HTMLBuilder) Reset() {
b.sb.Reset()
}
func (b *HTMLBuilder) WriteString(s string) HTMLWriter {
b.sb.WriteString(template.HTMLEscapeString(s))
return b
}
func (b *HTMLBuilder) WriteHTML(s template.HTML) *HTMLBuilder {
func (b *HTMLBuilder) WriteHTML(s template.HTML) HTMLWriter {
b.sb.WriteString(string(s))
return b
}
func (b *HTMLBuilder) WriteFormatf(fmt template.HTML, args ...any) *HTMLBuilder {
func (b *HTMLBuilder) WriteFormatf(fmt template.HTML, args ...any) HTMLWriter {
_, _ = HTMLPrintf(&b.sb, fmt, args...)
return b
}