【Go】Echo JsonにTemplateから生成したHTMLを埋め込んで返す

今回やりたかったことは以下。
・HTMLのテンプレートを変数等に定義しておく。
・テンプレートを元に動的な部分をHTMLに埋め込む。
・生成したHTMLをJSONにいれてレスポンスとして返す。

package main

import(
  "net/http"

  "github.com/labstack/echo"
)

// ViewData
type ViewData struct {
  Title string `json:"id"`
  Contents string `json:"html"`
}

// レスポンスを表す構造体を定義
type JsonFormat struct {
  Id int `json:"id"`
  Html string `json:"name"`
}

func main() {

  e := echo.New()
  e.GET("/", func(c echo.Context) error {

    var buffer bytes.Buffer
    var html = "<div><h1>{{.Title}}</h1><p>{{.Contents}}</p></div>"
    var t = template.Must(template.New("html").Parse(html))

    if err := t.Execute(&buffer, data); err != nil {
      return echo.NewHTTPError(http.StatusInternalServerError, "Server Error")
    } else {
      return c.JSON(http.StatusOK, Advertise {
        Id: 1,
        Html: buffer.String(),
      })
    }
  })
}

以上です