hugo: github.com/gohugoio/hugo/common/maps Index | Files

package maps

import "github.com/gohugoio/hugo/common/maps"

Index

Package Files

maps.go maps_get.go params.go scratch.go

func GetNestedParam Uses

func GetNestedParam(keyStr, separator string, candidates ...Params) (interface{}, error)

GetNestedParam gets the first match of the keyStr in the candidates given. It will first try the exact match and then try to find it as a nested map value, using the given separator, e.g. "mymap.name". It assumes that all the maps given have lower cased keys.

func GetNestedParamFn Uses

func GetNestedParamFn(keyStr, separator string, lookupFn func(key string) interface{}) (interface{}, string, map[string]interface{}, error)

func GetString Uses

func GetString(m map[string]interface{}, key string) string

GetString tries to get a value with key from map m and convert it to a string. It will return an empty string if not found or if it cannot be convertd to a string.

func ToLower Uses

func ToLower(m Params)

ToLower makes all the keys in the given map lower cased and will do so recursively. Notes: * This will modify the map given. * Any nested map[interface{}]interface{} will be converted to Params.

func ToStringMap Uses

func ToStringMap(in interface{}) map[string]interface{}

func ToStringMapE Uses

func ToStringMapE(in interface{}) (map[string]interface{}, error)

type KeyRenamer Uses

type KeyRenamer struct {
    // contains filtered or unexported fields
}

KeyRenamer supports renaming of keys in a map.

func NewKeyRenamer Uses

func NewKeyRenamer(patternKeys ...string) (KeyRenamer, error)

NewKeyRenamer creates a new KeyRenamer given a list of pattern and new key value pairs.

func (KeyRenamer) Rename Uses

func (r KeyRenamer) Rename(m map[string]interface{})

Rename renames the keys in the given map according to the patterns in the current KeyRenamer.

type Params Uses

type Params map[string]interface{}

Params is a map where all keys are lower case.

func (Params) Get Uses

func (p Params) Get(indices ...string) interface{}

Get does a lower case and nested search in this map. It will return nil if none found.

type Scratch Uses

type Scratch struct {
    // contains filtered or unexported fields
}

Scratch is a writable context used for stateful operations in Page/Node rendering.

func NewScratch Uses

func NewScratch() *Scratch

NewScratch returns a new instance of Scratch.

func (*Scratch) Add Uses

func (c *Scratch) Add(key string, newAddend interface{}) (string, error)

Add will, for single values, add (using the + operator) the addend to the existing addend (if found). Supports numeric values and strings.

If the first add for a key is an array or slice, then the next value(s) will be appended.

func (*Scratch) Delete Uses

func (c *Scratch) Delete(key string) string

Delete deletes the given key.

func (*Scratch) Get Uses

func (c *Scratch) Get(key string) interface{}

Get returns a value previously set by Add or Set.

func (*Scratch) GetSortedMapValues Uses

func (c *Scratch) GetSortedMapValues(key string) interface{}

GetSortedMapValues returns a sorted map previously filled with SetInMap.

func (*Scratch) Set Uses

func (c *Scratch) Set(key string, value interface{}) string

Set stores a value with the given key in the Node context. This value can later be retrieved with Get.

func (*Scratch) SetInMap Uses

func (c *Scratch) SetInMap(key string, mapKey string, value interface{}) string

SetInMap stores a value to a map with the given key in the Node context. This map can later be retrieved with GetSortedMapValues.

func (*Scratch) Values Uses

func (c *Scratch) Values() map[string]interface{}

Values returns the raw backing map. Note that you should just use this method on the locally scoped Scratch instances you obtain via newScratch, not .Page.Scratch etc., as that will lead to concurrency issues.

type Scratcher Uses

type Scratcher interface {
    Scratch() *Scratch
}

Scratcher provides a scratching service.

func NewScratcher Uses

func NewScratcher() Scratcher

NewScratcher creates a new Scratcher.

Package maps imports 8 packages (graph) and is imported by 183 packages. Updated 2020-05-31. Refresh now. Tools for package owners.