Make all renderhook Text methods return template.HTML

This commit is contained in:
Bjørn Erik Pedersen
2024-08-31 17:25:15 +02:00
parent f738669a4d
commit 6d97ee711e
13 changed files with 50 additions and 36 deletions

View File

@@ -13,8 +13,22 @@
package hstring
type RenderedString string
import (
"html/template"
func (s RenderedString) String() string {
"github.com/gohugoio/hugo/common/types"
)
var _ types.PrintableValueProvider = RenderedHTML("")
// RenderedHTML is a string that represents rendered HTML.
// When printed in templates it will be rendered as template.HTML and considered safe.
type RenderedHTML string
func (s RenderedHTML) String() string {
return string(s)
}
func (s RenderedHTML) PrintableValue() any {
return template.HTML(s)
}

View File

@@ -25,6 +25,6 @@ func TestRenderedString(t *testing.T) {
c := qt.New(t)
// Validate that it will behave like a string in Hugo settings.
c.Assert(cast.ToString(RenderedString("Hugo")), qt.Equals, "Hugo")
c.Assert(template.HTML(RenderedString("Hugo")), qt.Equals, template.HTML("Hugo"))
c.Assert(cast.ToString(RenderedHTML("Hugo")), qt.Equals, "Hugo")
c.Assert(template.HTML(RenderedHTML("Hugo")), qt.Equals, template.HTML("Hugo"))
}