Skip to content

Commit f94566a

Browse files
committed
Add HTMLString
1 parent c2a4502 commit f94566a

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

renderer.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,15 @@ func (r *Render) YAML(w http.ResponseWriter, status int, v interface{}) error {
366366
return err
367367
}
368368

369+
// HTMLString render string as html
370+
func (r *Render) HTMLString(w http.ResponseWriter, status int, html string) error {
371+
w.Header().Set(ContentType, r.opts.ContentHTML)
372+
w.WriteHeader(status)
373+
out := template.HTML(html)
374+
_, err := w.Write([]byte(out))
375+
return err
376+
}
377+
369378
// HTML render html from template.Glob patterns and execute template by name. See README.md for detail example.
370379
func (r *Render) HTML(w http.ResponseWriter, status int, name string, v interface{}) error {
371380
w.Header().Set(ContentType, r.opts.ContentHTML)

renderer_test.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,27 @@ func Test_YAML(t *testing.T) {
354354
checkBody(t, res.Body.String(), expected)
355355
}
356356

357+
func Test_HTMLString(t *testing.T) {
358+
r := New()
359+
var err error
360+
361+
data := "<h1>Hello John</h1>"
362+
expected := `<h1>Hello John</h1>`
363+
364+
h := http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
365+
err = r.HTMLString(w, http.StatusOK, data)
366+
})
367+
368+
res := httptest.NewRecorder()
369+
req, _ := http.NewRequest("GET", "/htmlstring", nil)
370+
h.ServeHTTP(res, req)
371+
372+
checkNil(t, err)
373+
checkStatusOK(t, res.Code)
374+
checkContentType(t, res.HeaderMap.Get(ContentType), ContentHTML+"; charset="+defaultCharSet)
375+
checkBody(t, res.Body.String(), expected)
376+
}
377+
357378
func Test_HTML(t *testing.T) {
358379
var err error
359380
dir := "htmls"

0 commit comments

Comments
 (0)