Store
返回一个持久化的数据结构,用于存储和操作带 key 的值,作用域为当前短代码。
(0.139.0 新增)
用 Store 方法可以创建一个持久化的数据结构,用于存储和操作带 key 的值,作用域为当前短代码。要创建其他作用域的数据结构,请参见下面的作用域一节。
方法
在数据结构上使用这些方法。
Set- 设置给定 key 的值。
{{ .Store.Set "greeting" "Hello" }} Get- (
any)获取给定 key 的值。{{ .Store.Set "greeting" "Hello" }} {{ .Store.Get "greeting" }} → Hello Add- 把给定值加到给定 key 的现有值上。
对于单个值,
Add接受支持 Go 的+运算符的值。如果对某个 key 的第一次Add操作是数组或切片,后续的 add 会追加到该列表中。{{ .Store.Set "greeting" "Hello" }} {{ .Store.Add "greeting" "Welcome" }} {{ .Store.Get "greeting" }} → HelloWelcome{{ .Store.Set "total" 3 }} {{ .Store.Add "total" 7 }} {{ .Store.Get "total" }} → 10{{ .Store.Set "greetings" (slice "Hello") }} {{ .Store.Add "greetings" (slice "Welcome" "Cheers") }} {{ .Store.Get "greetings" }} → [Hello Welcome Cheers] SetInMap- 接受
key、mapKey和value,并把由mapKey和value构成的映射加入给定的key。{{ .Store.SetInMap "greetings" "english" "Hello" }} {{ .Store.SetInMap "greetings" "french" "Bonjour" }} {{ .Store.Get "greetings" }} → map[english:Hello french:Bonjour] DeleteInMap- 接受
key和mapKey,并从给定的key中移除mapKey对应的映射。{{ .Store.SetInMap "greetings" "english" "Hello" }} {{ .Store.SetInMap "greetings" "french" "Bonjour" }} {{ .Store.DeleteInMap "greetings" "english" }} {{ .Store.Get "greetings" }} → map[french:Bonjour] GetSortedMapValues- (
[]any)返回key中的值数组,按mapKey排序。{{ .Store.SetInMap "greetings" "english" "Hello" }} {{ .Store.SetInMap "greetings" "french" "Bonjour" }} {{ .Store.GetSortedMapValues "greetings" }} → [Hello Bonjour] Delete- 移除给定的 key。
{{ .Store.Set "greeting" "Hello" }} {{ .Store.Delete "greeting" }}
作用域
用于创建该数据结构的方法或函数决定了它的作用域。例如,用 Page 对象上的 Store 方法创建的数据结构,其作用域就是该页面。
| 作用域 | 方法或函数 |
|---|---|
| page | PAGE.Store |
| site | SITE.Store |
| global | hugo.Store |
| local | collections.NewScratch |
| shortcode | SHORTCODE.Store |