Hero-Go - Golang 模板引擎


Apache
跨平台
Google Go

软件简介

一直觉得 Go 没有一个好用的模板引擎,渲染 HTML 的时候特别痛苦,总有一种有力气却使不出来的感觉。

模板引擎一般有两种实现方式,一种是解析 HTML 语法树,然后根据一定的规则动态的拼接,另外一种是把模板预先生成代码,渲染模板时调用相关的函数即可。

Go 内置的 template 包使用的是第一种方式,不过很多开源项目使用的是第二种方式,比如 quicktemplate 、 gorazor
等。不过这两个可能由于设计的问题,都没有实现模板继承和模板 include ,而且有的语法个人觉得不是太优雅。

所以我想要一个 Go 模板,它具备以下特性:

  • 原生的 Golang 语法

  • 支持模板植入代码

  • 支持模板继承和 include

  • 高性能

  • 语法简单、优雅

  • 自动编译

基于以上,实现了 Hero 模板引擎,用过 nodejs EJS 模板引擎的童鞋应该很容易上手。 hero 目前已经在
http://bthub.io 线上使用。