Move text sanitizing to RenderContext

This commit is contained in:
Christian Muehlhaeuser
2019-12-10 17:32:49 +01:00
parent 9e615ab474
commit 50046dd6b3
3 changed files with 35 additions and 18 deletions
+31 -2
View File
@@ -1,8 +1,37 @@
package gold
import (
"html"
"strings"
"github.com/microcosm-cc/bluemonday"
)
type RenderContext struct {
style map[StyleType]ElementStyle
options Options
style map[StyleType]ElementStyle
blockStack *BlockStack
table *TableElement
options Options
stripper *bluemonday.Policy
}
func NewRenderContext(options Options) RenderContext {
return RenderContext{
options: options,
style: make(map[StyleType]ElementStyle),
blockStack: &BlockStack{},
table: &TableElement{},
stripper: bluemonday.StrictPolicy(),
}
}
func (ctx RenderContext) SanitizeHTML(s string, trimSpaces bool) string {
s = ctx.stripper.Sanitize(s)
if trimSpaces {
s = strings.TrimSpace(s)
}
return html.UnescapeString(s)
}