Hugo框架中文文档 模板 Partials部分模板
Contents
部分模板解析查询顺序
部分模板–和 single page templates and list page templates类似, 具有特殊的 lookup order。不过,部分模板查询顺序简单些,仅仅检查两个位置:
layouts/partials/*<PARTIALNAME>.html
themes/<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: