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

JM_Joy · · 5244 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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


比如:

<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语言:优雅的模板切割技术

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5244 次点击  
加入收藏 微博
4 回复  |  直到 2000-01-01 00:00:00
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传