fkm blog

software開発に関することを書いていきます

Golangのhttp/templateをちょっと触ってみた

後でfkmsoft blogにも追加しておきます.

要するにHTMLテンプレートが使えればいいんです

テンプレートを用意する

こんな感じ. t.htmlとしておきます. 置き換える部分は{{.フィールド名}}

<!DOCTYPE html>
<html>
<body>
  <h1>Welcome {{.Name}}</h1>
  <!-- comment here -->
</body>
</html>

使ってみる

オブジェクトが1つ必要.

// main.go
package main

import (
        "fmt"
        "html/template"
        "os"
)

type Person struct {
        Name string
}

func main() {
        t := template.New("a")
        t, err := template.ParseFiles("t.html")
        if err != nil {
                fmt.Printf("Failed to ParseFiles")
                return
        }

        t.Execute(os.Stdout, &Person{Name: "fkm"})
}

サーバー環境では, os.Stdoutの部分をhttp.ResponseWriterにすればよさそう

実行してみる

HTMLコメントがおせっかい機能で除去されるのに注意.

$ go run main.go
<!DOCTYPE html>
<html>
<body>
  <h1>Welcome fkm</h1>

</body>
</html>