文档章节

Go 模板函数与语句

用这些函数与语句编写条件判断、循环及其它模板逻辑。

本章导读

本目录收录的是 Go 标准库 text/template 自带的函数与语句,Hugo 直接沿用它们的语义。它们负责模板的控制流:条件判断(if、else)、循环(range、break、continue)、上下文绑定(with)、模板定义与调用(define、block、template),以及逻辑运算(and、or、not)与 len、urlquery 等常用函数。

Hugo 对标准库做了少量扩展,其中 return、try 属于非标准语句,用法见各自页面。

本章内容

  • and 返回第一个假值参数;若所有参数都为真值,则返回最后一个参数。 (今天)
  • block 定义模板,并在当前位置执行它。 (今天)
  • break 终止最内层的 range 迭代,并跳过其余所有迭代。 (今天)
  • continue 终止最内层的 range 迭代,并继续执行下一次迭代。 (今天)
  • define 定义一个模板。 (今天)
  • else 为 if、with 与 range 语句开启一个备用分支。 (今天)
  • end 结束 if、with、range、block 与 define 语句。 (今天)
  • if 当表达式为真值时执行该代码块。 (今天)
  • len 返回字符串、切片、映射或集合的长度。 (今天)
  • not 对唯一参数取布尔反。 (今天)
  • or 返回第一个真值参数;若所有参数都为假值,则返回最后一个参数。 (今天)
  • range 遍历非空集合,把上下文(点)依次绑定到每个元素并执行代码块。 (今天)
  • return 终止当前模板的执行;在局部模板中使用时,还可返回给定的值(如果有)。 (今天)
  • template 执行给定的模板,可选择传入上下文。 (今天)
  • try 对给定表达式求值,并返回一个 TryValue 对象。 (今天)
  • urlquery 返回其参数文本表示的转义结果,适合嵌入 URL 查询串。 (今天)
  • with 若表达式为真值,则把上下文(点)绑定到该表达式并执行代码块。 (今天)