-
Notifications
You must be signed in to change notification settings - Fork 8
20180228_simply output go html template execution to strings
Shawn Wang edited this page Jun 5, 2018
·
1 revision
title: "將 Go Html Template 存入 String 變數" date: 2018-02-28 type: blog author: AppleBoy link: https://blog.wu-boy.com/2018/02/simply-output-go-html-template-execution-to-strings/ layout: post comments: true
在 Go 語言內通常都將 Html Temaple 寫入到 io.Writer interface
像是 *http.ResponseWriter
,但是有些情境需要將 Template 寫入到 String 變數內,例如實作簡訊 Template,這時候需要將 Html Temaple 轉成 String。該如何實作,非常簡單,只需要在任意變數內實作 io.Writer interface
即可,而 String 該如何轉換呢?可以使用 buffer’s pointer
func GetString(filename string, data interface{}) (string, error) { t := template.New(filename).Funcs(NewFuncMap()) content, err := ReadFile(filename) if err != nil { logrus.Warnf("Failed to read builtin %s template. %s", filename, err) return "", err } t.Parse( string(content), ) var tpl bytes.Buffer if err := t.Execute(&tpl, data); err != nil { return "", err } return tpl.String(), nil }
其中 ReadFile
是讀取檔案函式,NewFuncMap
則是 Function Map。
-
Go 語言的錯誤訊息處理 (0)
-
在 Go 語言使用 Viper 管理設定檔 (0)
-
Go 語言實現 gRPC Health 驗證 (0)
-
用 Go 語言實現單一或多重 Queue 搭配 optimistic concurrency (0)
-
Gorush 輕量級手機訊息發送服務 (1)
-
Caddy 搭配 Drone 伺服器設定 (4)
-
用 Go 語言減少 node_modules 容量來加速部署 (0)
-
Go 語言內 struct methods 該使用 pointer 或 value 傳值? (1)
-
輕量級 Gofight 支援 Echo 框架測試 (0)
-
Go 語言的 init 函式 (0)