Hugo框架中文文档 模板 Partials部分模板
Contents
部分模板解析查询顺序
部分模板–和 single page templates and list page templates类似, 具有特殊的 lookup order。不过,部分模板查询顺序简单些,仅仅检查两个位置:
layouts/partials/*<PARTIALNAME>.htmlthemes/<THEME>/layouts/partials/*<PARTIALNAME>.html
这允许主题的终端用户copy部分模板的内容到同名文件以进行更多的定制.
模板中使用部分模板
HUgo项目中所有的部分模板位于单一目录 layouts/partials中.
为文件组织方便,您也可以在此目录中创建多个子目录:
| |
所有部分模板在您的模板内以下面模式调用:
| |
如上面例子目录结构中显示, 可以在partials目录中嵌套您的子目录以获得更好代码组织。
调用的时候使用嵌套的部分模板的相对路径即可:
| |
变量作用范围
部分模板调用的第二个参数是传递给它的变量。上面例子中传递的., 通知接受部分模板的模板应用当前的上下文context.
这意味着部分模板将 仅仅 可以访问传递的上下文的变量. 部分模板是隔离开的、不能访问外部范围.
在部分模板中,$.Var等同于 .Var
从部分模板返回值
输出标记以外, 部分模板可以被用来返回任何值。为返回一个值,部分模板必须包含一个独立的 return 语句.
内联的部分模板
可以在模板中定义内联的部分模板.不过,请注意模板命名空间是全局的,所以需要注意保证内联模板名称要唯一,避免冲突.
| |
例子 获得具有特殊参数的页面
| |
| |
例子 获取图片
| |
| |
缓存的部分模板
模板函数partialCached 对于并不需要每次调用都重新呈现的复杂模板, 可以提供很多的性能提升. 最简单的用法如下:
| |
也可以提供额外参数给 partialCached来创建缓存的部分模板的变体。
比如,可以通知Hugo仅为每个section部分的footer.html呈现一次.
| |
如果需要传递更多参数来创建唯一的变体, 可以按需传递更多变体参数:
| |
请注意变体参数对底层的部分模板不可见。他们仅仅用于创建一个唯一的缓存键.
例子 header.html
下面的 header.html部分模板使用在spf13.com:
| |
例子 footer.html
下面的 footer.html 部分模板使用在spf13.com: