HUGO
Menu
GitHub 87548 stars Mastodon

Store

返回一个"暂存板"来存储和操作数据,作用域为当前 shortcode。

Syntax

SHORTCODE.Store

Returns

maps.Scratch
New in v0.139.0

使用 Store 方法创建一个 暂存板 来存储和操作数据,作用域为当前 shortcode。要创建一个具有不同 作用域 的暂存板,请参阅下面的 作用域 部分。

随着 [newScratch] 函数的引入,以及能够在初始化后 [给模板变量赋值],shortcode 内的 Store 方法大部分已过时。

方法

Set

设置给定键的值。

{{ .Store.Set "greeting" "Hello" }}

Get

获取给定键的值。

{{ .Store.Set "greeting" "Hello" }}
{{ .Store.Get "greeting" }} → Hello

Add

将给定值添加到给定键的现有值中。

对于单个值,Add 接受支持 Go 的 + 运算符的值。如果键的第一个 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

接受 keymapKeyvalue,并将 mapKeyvalue 的映射添加到给定 key

{{ .Store.SetInMap "greetings" "english" "Hello" }}
{{ .Store.SetInMap "greetings" "french" "Bonjour" }}
{{ .Store.Get "greetings" }} → map[english:Hello french:Bonjour]

DeleteInMap

接受 keymapKey,并从给定 key 中移除 mapKey 的映射。

{{ .Store.SetInMap "greetings" "english" "Hello" }}
{{ .Store.SetInMap "greetings" "french" "Bonjour" }}
{{ .Store.DeleteInMap "greetings" "english" }}
{{ .Store.Get "greetings" }} → map[french:Bonjour]

GetSortedMapValues

返回按 mapKey 排序的 key 值数组。

{{ .Store.SetInMap "greetings" "english" "Hello" }}
{{ .Store.SetInMap "greetings" "french" "Bonjour" }}
{{ .Store.GetSortedMapValues "greetings" }} → [Hello Bonjour]

Delete

移除给定键。

{{ .Store.Set "greeting" "Hello" }}
{{ .Store.Delete "greeting" }}
{{__hugo_ctx/}}



{{__hugo_ctx pid=1465}}

## 作用域

用于创建暂存板的方法或函数决定了其作用域。例如,在 `Page` 对象上使用 `Store` 方法创建作用于页面的暂存板。

作用域 | 方法或函数
:--|:--
page|[`PAGE.Store`]
site|[`SITE.Store`]
global|[`hugo.Store`]
local|[`collections.NewScratch`]
shortcode|[`SHORTCODE.Store`]

[`page.store`]: /zh/methods/page/store
[`site.store`]: /zh/methods/site/store
[`hugo.store`]: /zh/functions/hugo/store
[`collections.newscratch`]: /zh/functions/collections/newscratch
[`shortcode.store`]: /zh/methods/shortcode/store
{{__hugo_ctx/}}



[`newScratch`]: /zh/functions/collections/newscratch/
[给模板变量赋值]: https://go.dev/doc/go1.11#texttemplatepkgtexttemplate

Last updated: January 1, 0001
Improve this page