go语言模板引擎gotpl,新鲜出炉。https://github.com/codinl/gotpl

gotpl

go语言模板引擎。基于gorazor开发。

特性

  • 简洁优雅
  • 模板继承
  • 原生go语言
  • 模块,组件

原生go语句

@if .... {
    ....
}

@if .... {
    ....
} else {
    ....
}

@for .... {

}

@{
    switch .... {
    case ....:
          <p>...</p>
    case 2:
          <p>...</p>
    default:
          <p>...</p>
    }
}

模板继承(extends,block)

base.tpl :

<html>

@block aa {
    aaaa

    @block bb {
        bbb
    }

    @block cc {
        ccc
    }
}

@section Pagination(curPage int)

</html>

test_extends_base.tpl :

@block bb {
     extends bbb
}

@block cc {
     @for i:=0;i<10;i++ {
     <p>@i</p>
     }
}

文件名test_extends_base.tpl,代表test.tpl继承base.tpl。模板继承方式,类似django,通过覆盖block。

模块组件(section)

base.tpl :

<html>

...

@section Pagination(curPage int)

</html>

sections/page.tpl:

@{
    import (

    )
}

@section Pagination(curPage int) {
    <div>curPage is: @curPage </div>
}

section必须放在sections目录下,文件名不限制。

LICENSE

LICENSE? Well, WTFPL.

Todo

共 4 个回复


leedstyh

有Benchmark吗

# 0

mi_tiger

这个和标准库里面的模板有什么优势吗?

# 1

haonan3344

请问与gorazor有哪些改进?

改进不大的话,为什么不合并到gorazor中?

# 2

lamciuloeng

其实现在应该把MVC都放到前台的静态页面和JS去,后台只是提供restful的API就好了,不要再弄什么模样引擎了。

# 3