Hugo模板基本语法

Hugo是使用Go语言开发的,Hugo模板语法其实就是Go模板语法。

Hugo模板标签由两对花括号组成:

{{}}

.点表示当前对象:

{{ . }}

输出一个变量:

Table of Contents

{{ .Title }}

以上例子输出Hugo页面标题。

花括号内侧两端的横线表示清除左/右侧的空白(任何不可见字符):

{{- .Title -}}

注释:

{{/* 注释内容 */}}

声明变量:

{{- $name := "背字根" -}}

修改变量的值:

{{- $name = "背字根" -}}

with关键字:

{{- with .Params.excerpt -}}
	
{{- end -}}

以上例子代码第一行会判断变量是否存在,如果存在才会执行主体中的代码。并且,在主体代码中可以用点表示当前对象,即with中的变量。

条件控制语句:

{{- if .IsHome -}}
	{{- .Site.Title }} - {{ .Title -}}
{{- else -}}
	{{- .Title }} - {{ .Site.Title -}}
{{- end -}}

以上例子判断当前页面是否为首页,根据是否首页输出不同的标题。

if语句逻辑判断:

  • eq:等于;
  • ne:不等于;
  • lt:小于;
  • le:小于等于;
  • gt:大于;
  • ge:大于等于;
  • and:逻辑与;
  • or:逻辑或;
  • not:逻辑非;

判断两个参数是否相等:

{{- if eq .URL "https://www.beizigen.com" -}}

判断第一个参数是否大于第二个参数:

{{- if gt $num 5 -}}

逻辑与示例:

{{- if and (gt $num 5) (lt $num 10) -}}

以上例子判断$num是否大于5,且小于10。

range循环遍历:

{{- range .Site.Menus.main -}}
	
  • {{ .Name }}
  • {{- end -}}

    需要获取索引的情况:

    {{- range $index, $val := $array -}}
       {{ $index }}:{{ $val }}
    {{- end -}}
    

    只取5条数据:

    {{- range first .5 .Site.Pages -}}
    	
  • {{ .Title }}
  • {{- end -}}

    函数使用示例:

    
    

    以上示例中relUrl函数返回网站首页地址。

    {{- "这是一段很长很长的文本" | truncate 10 -}}
    

    以上示例使用truncate函数截取文字,长度为10

    变量作用域:

    • if、range、with代码块中定义的变量只能在该代码块中引用;
    • 全局变量在if、range、with代码块中引用需要加前缀$;

    原创文章,作者:,如若转载,请注明出处:https://ce.771633.xyz/1997.html

    Like (0)
    Previous 2025年3月8日
    Next 2025年3月8日

    相关推荐

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注