复杂的模板函数文档可见:sprig
基本关键字
sprig文档没提到的但又十分有用的基本关键字
notlg、gt、eqif else endrange end
注释
.action{/* 用斜杠和星号括起来的内容是注释 */}
if-else语句
结束需要用end
赋值需要用= (if语句内如果想要给外部的全局变量赋值,需要用=而不是:=,因为在golang里如果直接在if语句用:=就相当于是在创建局部变量。)
案例:给月份补0
.action{$this_year := 2021}.action{$this_month := 7}.action{/* 处理月份为两位整数,小于10,则为0x */}.action{if gt $this_month 10}.action{/* 坑:这里是=而不能是:= */}.action{$this_month = $this_month}.action{else}.action{$this_month = nospace (cat "0" $this_month)}.action{end}.action{$this_month}
range循环语句
Title:.action{.title}.action{/* 1.先通过sql把查询结果赋值保存到blocks变量中去 */}.action{$blocks :=queryBlocks "SELECT * FROM blocks WHERE created >= '20210505' AND created <= '20210506' AND type !='d' AND type !='h' AND type !='i' AND root_id != '20210504004406-wc9gfh0' order by updated"}.action{/* 2. range开始循环,把查询到的block一个个循环命名为b */}.action{range $b := $blocks}.action{$b.ID} | .action{$b.Path}Type: .action{$b.Type}Markdown: .action{$b.Markdown}Content: .action{$b.Content}.action{end}.action{/* 3.循环结束 */}
