Functions
cast
Use these functions to cast a value from one data type to another.
- cast.ToFloat
- Converts a value to a decimal floating-point number (base 10).
- cast.ToInt
- Converts a value to a decimal integer (base 10).
- cast.ToString
- Converts a value to a string.
collections
Use these functions to work with arrays, slices, maps, and page collections.
- collections.After
- Slices an array to the items after the Nth item.
- collections.Append
- Appends one or more elements to a slice and returns the resulting slice.
- collections.Apply
- Returns a new collection with each element transformed by the given function.
- collections.Complement
- Returns the elements of the last collection that are not in any of the others.
- collections.D
- Returns a slice of sequentially ordered random integers.
- collections.Delimit
- Loops through any array, slice, or map and returns a string of all the values separated by a delimiter.
- collections.Dictionary
- Returns a map composed of the given key-value pairs.
- collections.First
- Returns the given collection, limited to the first N elements.
- collections.Group
- Groups the given page collection by the given key.
- collections.In
- Reports whether the given value is a member of the given set.
- collections.Index
- Returns the object, element, or value associated with the given key or keys.
- collections.Intersect
- Returns the common elements of two arrays or slices, in the same order as the first array.
- collections.IsSet
- Reports whether the key exists within the collection.
- collections.KeyVals
- Returns a KeyVals struct.
- collections.Last
- Returns the given collection, limited to the last N elements.
- collections.Merge
- Returns the result of merging two or more maps.
- collections.NewScratch
- Returns a locally scoped "scratch pad" to store and manipulate data.
- collections.Querify
- Returns a URL query string composed of the given key-value pairs, encoded and sorted by key.
- collections.Reverse
- Reverses the order of a collection.
- collections.Seq
- Returns a slice of integers.
- collections.Shuffle
- Returns a random permutation of a given array or slice.
- collections.Slice
- Returns a slice composed of the given values.
- collections.Sort
- Sorts slices, maps, and page collections.
- collections.SymDiff
- Returns the symmetric difference of two collections.
- collections.Union
- Given two arrays or slices, returns a new array that contains the elements that belong to either or both arrays/slices.
- collections.Uniq
- Returns the given collection, removing duplicate elements.
- collections.Where
- Returns the given collection, removing elements that do not satisfy the comparison condition.
compare
Use these functions to compare two or more values.
- compare.Conditional
- Returns one of two arguments depending on the value of the control argument.
- compare.Default
- Returns the second argument if set, else the first argument.
- compare.Eq
- Returns the boolean truth of arg1 == arg2 || arg1 == arg3.
- compare.Ge
- Returns the boolean truth of arg1 >= arg2 && arg1 >= arg3.
- compare.Gt
- Returns the boolean truth of arg1 > arg2 && arg1 > arg3.
- compare.Le
- Returns the boolean truth of arg1 <= arg2 && arg1 <= arg3.
- compare.Lt
- Returns the boolean truth of arg1 < arg2 && arg1 < arg3.
- compare.Ne
- Returns the boolean truth of arg1 != arg2 && arg1 != arg3.
crypto
Use these functions to create cryptographic hashes.
- crypto.FNV32a
- Returns the 32-bit FNV (Fowler-Noll-Vo) non-cryptographic hash of the given string.
- crypto.HMAC
- Returns a cryptographic hash that uses a key to sign a message.
- crypto.MD5
- Hashes the given input and returns its MD5 checksum encoded to a hexadecimal string.
- crypto.SHA1
- Hashes the given input and returns its SHA1 checksum encoded to a hexadecimal string.
- crypto.SHA256
- Hashes the given input and returns its SHA256 checksum encoded to a hexadecimal string.
css
Use these functions to work with CSS and Sass files.
- css.PostCSS
- Processes the given resource with PostCSS using any PostCSS plugin.
- css.Quoted
- Returns the given string, setting its data type to indicate that it must be quoted when used in CSS.
- css.Sass
- Transpiles Sass to CSS.
- css.TailwindCSS
- Processes the given resource with the Tailwind CSS CLI.
- css.Unquoted
- Returns the given string, setting its data type to indicate that it must not be quoted when used in CSS.
data
Use these functions to read local or remote data files.
- data.GetCSV
- Returns an array of arrays from a local or remote CSV file, or an error if the file does not exist.
- data.GetJSON
- Returns a JSON object from a local or remote JSON file, or an error if the file does not exist.
debug
Use these functions to debug your templates.
- debug.Dump
- Returns an object dump as a string.
- debug.Timer
- Creates a named timer that reports elapsed time to the console.
- debug.VisualizeSpaces
- Returns the given string with spaces replaced by a visible string.
diagrams
Use these functions to render diagrams.
- diagrams.Goat
- Returns an SVGDiagram object created from the given GoAT markup and options.
encoding
Use these functions to encode and decode data.
- encoding.Base64Decode
- Returns the base64 decoding of the given content.
- encoding.Base64Encode
- Returns the base64 decoding of the given content.
- encoding.Jsonify
- Encodes the given object to JSON.
fmt
Use these functions to print strings within a template or to print messages to the terminal.
- fmt.Errorf
- Log an ERROR from a template.
- fmt.Erroridf
- Log a suppressible ERROR from a template.
- fmt.Print
- Prints the default representation of the given arguments using the standard
fmt.Printfunction. - fmt.Printf
- Formats a string using the standard
fmt.Sprintffunction. - fmt.Println
- Prints the default representation of the given argument using the standard
fmt.Printfunction and enforces a line break. - fmt.Warnf
- Log a WARNING from a template.
- fmt.Warnidf
- Log a suppressible WARNING from a template.
global
Use these global functions to access page and site data.
go template
These are the functions, operators, and statements provided by Go's text/template package.
- and
- Returns the first falsy argument. If all arguments are truthy, returns the last argument.
- block
- Defines a template and executes it in place.
- break
- Used with the range statement, stops the innermost iteration and bypasses all remaining iterations.
- continue
- Used with the range statement, stops the innermost iteration and continues to the next iteration.
- define
- Defines a template.
- else
- Begins an alternate block for if, with, and range statements.
- end
- Terminates if, with, range, block, and define statements.
- if
- Executes the block if the expression is truthy.
- len
- Returns the length of a string, slice, map, or collection.
- not
- Returns the boolean negation of its single argument.
- or
- Returns the first truthy argument. If all arguments are falsy, returns the last argument.
- range
- Iterates over a non-empty collection, binds context (the dot) to successive elements, and executes the block.
- return
- Used within partial templates, terminates template execution and returns the given value, if any.
- template
- Executes the given template, optionally passing context.
- try
- Returns a TryValue object after evaluating the given expression.
- urlquery
- Returns the escaped value of the textual representation of its arguments in a form suitable for embedding in a URL query.
- with
- Binds context (the dot) to the expression and executes the block if expression is truthy.
hash
Use these functions to create non-cryptographic hashes.
- hash.FNV32a
- Returns the 32-bit FNV (Fowler-Noll-Vo) non-cryptographic hash of the given string.
- hash.XxHash
- Returns the 64-bit xxHash non-cryptographic hash of the given string.
hugo
Use these functions to access information about the Hugo application and the current environment.
- hugo.BuildDate
- Returns the compile date of the Hugo binary.
- hugo.CommitHash
- Returns the Git commit hash of the Hugo binary.
- hugo.Deps
- Returns a slice of project dependencies, either Hugo Modules or local theme components.
- hugo.Environment
- Returns the current running environment.
- hugo.Generator
- Renders an HTML meta element identifying the software that generated the site.
- hugo.GoVersion
- Returns the Go version used to compile the Hugo binary
- hugo.IsDevelopment
- Reports whether the current running environment is "development".
- hugo.IsExtended
- Reports whether the Hugo binary is either the extended or extended/deploy edition.
- hugo.IsMultihost
- Reports whether each configured language has a unique base URL.
- hugo.IsMultilingual
- Reports whether there are two or more configured languages.
- hugo.IsProduction
- Reports whether the current running environment is "production".
- hugo.IsServer
- Reports whether the built-in development server is running.
- hugo.Store
- Returns a globally scoped "scratch pad" to store and manipulate data.
- hugo.Version
- Returns the current version of the Hugo binary.
- hugo.WorkingDir
- Returns the project working directory.
images
Use these functions to create an image filter, apply an image filter to an image, and to retrieve image information.
- images.AutoOrient
- Returns an image filter that rotates and flips an image as needed per its EXIF orientation tag.
- images.Brightness
- Returns an image filter that changes the brightness of an image.
- images.ColorBalance
- Returns an image filter that changes the color balance of an image.
- images.Colorize
- Returns an image filter that produces a colorized version of an image.
- images.Config
- Returns an image.Config structure from the image at the specified path, relative to the working directory.
- images.Contrast
- Returns an image filter that changes the contrast of an image.
- images.Dither
- Returns an image filter that dithers an image.
- images.Filter
- Applies one or more image filters to the given image resource.
- images.Gamma
- Returns an image filter that performs gamma correction on an image.
- images.GaussianBlur
- Returns an image filter that applies a gaussian blur to an image.
- images.Grayscale
- Returns an image filter that produces a grayscale version of an image.
- images.Hue
- Returns an image filter that rotates the hue of an image.
- images.Invert
- Returns an image filter that negates the colors of an image.
- images.Mask
- Returns an image filter that applies a mask to the source image.
- images.Opacity
- Returns an image filter that changes the opacity of an image.
- images.Overlay
- Returns an image filter that overlays the source image at the given coordinates, relative to the upper left corner.
- images.Padding
- Returns an image filter that resizes the image canvas without resizing the image.
- images.Pixelate
- Returns an image filter that applies a pixelation effect to an image.
- images.Process
- Returns an image filter that processes the given image using the given specification.
- images.QR
- Encodes the given text into a QR code using the specified options, returning an image resource.
- images.Saturation
- Returns an image filter that changes the saturation of an image.
- images.Sepia
- Returns an image filter that produces a sepia-toned version of an image.
- images.Sigmoid
- Returns an image filter that changes the contrast of an image using a sigmoidal function.
- images.Text
- Returns an image filter that adds text to an image.
- images.UnsharpMask
- Returns an image filter that sharpens an image.
inflect
These functions provide word inflection features such as singularization and pluralization of English nouns.
- inflect.Humanize
- Returns the humanized version of the input with the first letter capitalized.
- inflect.Pluralize
- Pluralizes the given word according to a set of common English pluralization rules.
- inflect.Singularize
- Singularizes the given word according to a set of common English singularization rules.
js
Use these functions to work with JavaScript and TypeScript files.
- js.Babel
- Compile the given JavaScript resource with Babel.
- js.Batch
- Build JavaScript bundle groups with global code splitting and flexible hooks/runners setup.
- js.Build
- Bundle, transpile, tree shake, and minify JavaScript resources.
lang
Use these functions to adapt your site to meet language and regional requirements.
- lang.FormatAccounting
- Returns a currency representation of a number for the given currency and precision for the current language and region in accounting notation.
- lang.FormatCurrency
- Returns a currency representation of a number for the given currency and precision for the current language and region.
- lang.FormatNumber
- Returns a numeric representation of a number with the given precision for the current language and region.
- lang.FormatNumberCustom
- Returns a numeric representation of a number with the given precision using negative, decimal, and grouping options.
- lang.FormatPercent
- Returns a percentage representation of a number with the given precision for the current language and region.
- lang.Merge
- Merge missing translations from other languages.
- lang.Translate
- Translates a string using the translation tables in the i18n directory.
math
Use these functions to perform mathematical operations.
- math.Abs
- Returns the absolute value of the given number.
- math.Acos
- Returns the arccosine, in radians, of the given number.
- math.Add
- Adds two or more numbers.
- math.Asin
- Returns the arcsine, in radians, of the given number.
- math.Atan
- Returns the arctangent, in radians, of the given number.
- math.Atan2
- Returns the arctangent, in radians, of the given number pair, determining the correct quadrant from their signs.
- math.Ceil
- Returns the least integer value greater than or equal to the given number.
- math.Cos
- Returns the cosine of the given radian number.
- math.Counter
- Increments and returns a global counter.
- math.Div
- Divides the first number by one or more numbers.
- math.Floor
- Returns the greatest integer value less than or equal to the given number.
- math.Log
- Returns the natural logarithm of the given number.
- math.Max
- Returns the greater of all numbers. Accepts scalars, slices, or both.
- math.MaxInt64
- Returns the maximum value for a signed 64-bit integer.
- math.Min
- Returns the smaller of all numbers. Accepts scalars, slices, or both.
- math.Mod
- Returns the modulus of two integers.
- math.ModBool
- Reports whether the modulus of two integers equals 0.
- math.Mul
- Multiplies two or more numbers.
- math.Pi
- Returns the mathematical constant pi.
- math.Pow
- Returns the first number raised to the power of the second number.
- math.Product
- Returns the product of all numbers. Accepts scalars, slices, or both.
- math.Rand
- Returns a pseudo-random number in the half-open interval [0.0, 1.0).
- math.Round
- Returns the nearest integer, rounding half away from zero.
- math.Sin
- Returns the sine of the given radian number.
- math.Sqrt
- Returns the square root of the given number.
- math.Sub
- Subtracts one or more numbers from the first number.
- math.Sum
- Returns the sum of all numbers. Accepts scalars, slices, or both.
- math.Tan
- Returns the tangent of the given radian number.
- math.ToDegrees
- ToDegrees converts radians into degrees.
- math.ToRadians
- ToRadians converts degrees into radians.
openapi3
Use these functions to work with OpenAPI 3 definitions.
- openapi3.Unmarshal
- Unmarshals the given resource into an OpenAPI 3 document.
os
Use these functions to interact with the operating system.
- os.FileExists
- Reports whether the file or directory exists.
- os.Getenv
- Returns the value of an environment variable, or an empty string if the environment variable is not set.
- os.ReadDir
- Returns an array of FileInfo structures sorted by file name, one element for each directory entry.
- os.ReadFile
- Returns the contents of a file.
- os.Stat
- Returns a FileInfo structure describing a file or directory.
partials
Use these functions to call partial templates.
- partials.Include
- Executes the given template, optionally passing context. If the partial template contains a return statement, returns the given value, else returns the rendered output.
- partials.IncludeCached
- Executes the given template and caches the result, optionally passing one or more variant keys. If the partial template contains a return statement, returns the given value, else returns the rendered output.
path
Use these functions to work with file paths.
- path.Base
- Replaces path separators with slashes (
/) and returns the last element of the given path. - path.BaseName
- Replaces path separators with slashes (
/) and returns the last element of the given path, removing the extension if present. - path.Clean
- Replaces path separators with slashes (
/) and returns the shortest path name equivalent to the given path. - path.Dir
- Replaces path separators with slashes (/) and returns all but the last element of the given path.
- path.Ext
- Replaces path separators with slashes (
/) and returns the file name extension of the given path. - path.Join
- Replaces path separators with slashes (
/), joins the given path elements into a single path, and returns the shortest path name equivalent to the result. - path.Split
- Replaces path separators with slashes (
/) and splits the resulting path immediately following the final slash, separating it into a directory and file name component.
reflect
Use these functions to determine a value's data type.
- reflect.IsMap
- Reports whether the given value is a map.
- reflect.IsSlice
- Reports whether the given value is a slice.
resources
Use these functions to work with resources.
- resources.Babel
- Compiles the given JavaScript resource with Babel.
- resources.ByType
- Returns a collection of global resources of the given media type, or nil if none found.
- resources.Concat
- Returns a concatenated slice of resources.
- resources.Copy
- Copies the given resource to the target path.
- resources.ExecuteAsTemplate
- Returns a resource created from a Go template, parsed and executed with the given context.
- resources.Fingerprint
- Cryptographically hashes the content of the given resource.
- resources.FromString
- Returns a resource created from a string.
- resources.Get
- Returns a global resource from the given path, or nil if none found.
- resources.GetMatch
- Returns the first global resource from paths matching the given glob pattern, or nil if none found.
- resources.GetRemote
- Returns a remote resource from the given URL, or nil if none found.
- resources.Match
- Returns a collection of global resources from paths matching the given glob pattern, or nil if none found.
- resources.Minify
- Minifies the given resource.
- resources.PostCSS
- Processes the given resource with PostCSS using any PostCSS plugin.
- resources.PostProcess
- Processes the given resource after the build.
- resources.ToCSS
- Transpiles Sass to CSS.
safe
Use these functions to declare a value as safe in the context of Go's html/template package.
- safe.CSS
- Declares the given string as a safe CSS string.
- safe.HTML
- Declares the given string as a safeHTML string.
- safe.HTMLAttr
- Declares the given key-value pair as a safe HTML attribute.
- safe.JS
- Declares the given string as a safe JavaScript expression.
- safe.JSStr
- Declares the given string as a safe JavaScript string.
- safe.URL
- Declares the given string as a safe URL or URL substring.
strings
Use these functions to work with strings.
- strings.Chomp
- Returns the given string, removing all trailing newline characters and carriage returns.
- strings.Contains
- Reports whether the given string contains the given substring.
- strings.ContainsAny
- Reports whether the given string contains any character within the given set.
- strings.ContainsNonSpace
- Reports whether the given string contains any non-space characters as defined by Unicode.
- strings.Count
- Returns the number of non-overlapping instances of the given substring within the given string.
- strings.CountRunes
- Returns the number of runes in the given string excluding whitespace.
- strings.CountWords
- Returns the number of words in the given string.
- strings.Diff
- Returns an anchored diff of the two texts OLD and NEW in the unified diff format. If OLD and NEW are identical, returns an empty string.
- strings.FindRE
- Returns a slice of strings that match the regular expression.
- strings.FindRESubmatch
- Returns a slice of all successive matches of the regular expression. Each element is a slice of strings holding the text of the leftmost match of the regular expression and the matches, if any, of its subexpressions.
- strings.FirstUpper
- Returns the given string, capitalizing the first character.
- strings.HasPrefix
- Reports whether the given string begins with the given prefix.
- strings.HasSuffix
- Reports whether the given string ends with the given suffix.
- strings.Repeat
- Returns a new string consisting of zero or more copies of another string.
- strings.Replace
- Returns a copy of INPUT, replacing all occurrences of OLD with NEW.
- strings.ReplaceRE
- Returns a copy of INPUT, replacing all occurrences of a regular expression with a replacement pattern.
- strings.RuneCount
- Returns the number of runes in the given string.
- strings.SliceString
- Returns a substring of the given string, beginning with the start position and ending before the end position.
- strings.Split
- Returns a slice of strings by splitting the given string by a delimiter.
- strings.Substr
- Returns a substring of the given string, beginning with the start position and ending after the given length.
- strings.Title
- Returns the given string, converting it to title case.
- strings.ToLower
- Returns the given string, converting all characters to lowercase.
- strings.ToUpper
- Returns the given string, converting all characters to uppercase.
- strings.Trim
- Returns the given string, removing leading and trailing characters specified in the cutset.
- strings.TrimLeft
- Returns the given string, removing leading characters specified in the cutset.
- strings.TrimPrefix
- Returns the given string, removing the prefix from the beginning of the string.
- strings.TrimRight
- Returns the given string, removing trailing characters specified in the cutset.
- strings.TrimSpace
- Returns the given string, removing leading and trailing whitespace as defined by Unicode.
- strings.TrimSuffix
- Returns the given string, removing the suffix from the end of the string.
- strings.Truncate
- Returns the given string, truncating it to a maximum length without cutting words or leaving unclosed HTML tags.
templates
Use these functions to query the template system.
- templates.Current
- Returns information about the currently executing template.
- templates.Defer
- Defer execution of a template until after all sites and output formats have been rendered.
- templates.Exists
- Reports whether a template file exists under the given path relative to the layouts directory.
time
Use these functions to work with time values.
- time.AsTime
- Returns the given string representation of a date/time value as a time.Time value.
- time.Duration
- Returns a time.Duration value using the given time unit and number.
- time.Format
- Returns the given date/time as a formatted and localized string.
- time.In
- Returns the given date/time as represented in the specified IANA time zone.
- time.Now
- Returns the current local time.
- time.ParseDuration
- Returns a time.Duration value by parsing the given duration string.
transform
Use these functions to transform values from one format to another.
- transform.CanHighlight
- Reports whether the given code language is supported by the Chroma highlighter.
- transform.Emojify
- Runs a string through the Emoji emoticons processor.
- transform.Highlight
- Renders code with a syntax highlighter.
- transform.HighlightCodeBlock
- Highlights code received in context within a code block render hook.
- transform.HTMLEscape
- Returns the given string, escaping special characters by replacing them with HTML entities.
- transform.HTMLToMarkdown
- Converts HTML to Markdown.
- transform.HTMLUnescape
- Returns the given string, replacing each HTML entity with its corresponding character.
- transform.Markdownify
- Renders Markdown to HTML.
- transform.Plainify
- Returns a string with all HTML tags removed.
- transform.PortableText
- Converts Portable Text to Markdown.
- transform.Remarshal
- Marshals a string of serialized data, or a map, into a string of serialized data in the specified format.
- transform.ToMath
- Renders mathematical equations and expressions written in the LaTeX markup language.
- transform.Unmarshal
- Parses serialized data and returns a map or an array. Supports CSV, JSON, TOML, YAML, and XML.
- transform.XMLEscape
- Returns the given string, removing disallowed characters then escaping the result to its XML equivalent.
urls
Use these functions to work with URLs.
- urls.AbsLangURL
- Returns an absolute URL with a language prefix, if any.
- urls.AbsURL
- Returns an absolute URL.
- urls.Anchorize
- Returns the given string, sanitized for usage in an HTML id attribute.
- urls.JoinPath
- Joins the provided elements into a URL string and cleans the result of any ./ or ../ elements. If the argument list is empty, JoinPath returns an empty string.
- urls.Parse
- Parses a URL into a URL structure.
- urls.Ref
- Returns the absolute URL of the page with the given path, language, and output format.
- urls.RelLangURL
- Returns a relative URL with a language prefix, if any.
- urls.RelRef
- Returns the relative URL of the page with the given path, language, and output format.
- urls.RelURL
- Returns a relative URL.
- urls.URLize
- Returns the given string, sanitized for usage in a URL.
