go语言:优雅的模板切割技术

众所周知,一个网页普遍由头、身、脚组成,而一个项目中头和脚基本相同,这些部分就需要提取出来。


比如:

<html>
    <head>
    ...
    </head>
    <body>
    ...
    </body>
    ...
</html>

分割的时候就会分成这样:

头:

<html>
    <head>
    ...
    </head>
    <body>

身:

...

脚:

    </body>
    ...
</html>

然后就可以通过三次调用func (*Template) Execute这个方法来渲染模板了!


可是本人有个强迫症,看到<html></html>和<body></body>被分到了两个文件中十分不爽,所以想了下面这个方法:

main.html:

{{define "main"}}
<html>
    <head>
    ...
    </head>
    <body>
    {{template "content" .}}
    </body>
    ...
</html>
{{end}}

index.html:

{{template "main" .}}
{{define "content"}}
...
{{end}}

然后使用 func ParseFiles(filenames ...string) (*Template, error) 这个方法同时传入上面两个文件名,调用一次 func (*Template) Execute 就可以达成目标了。注意两个文件{{template xxx .}}有一个点,否则数据传不进去!

本文来自:开源中国博客

感谢作者:JM_Joy

查看原文:go语言:优雅的模板切割技术

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。