Info
This site is generated using the static site generator developed by the Typst Community. Please adjust the text content of this banner according to your usage requirements. At Typst GmbH's request, when publishing documentation, you must clearly indicate that it is non-official and display the version of Typst being documented. For details, refer to Issue #874 on typst/typst.
TypstDocumentEnglish
v0.dev.2025-09-12

yaml

Reads structured data from a YAML file.

The file must contain a valid YAML object or array. The YAML values will be converted into corresponding Typst values as listed in the table below.

The function returns a dictionary, an array or, depending on the YAML file, another YAML data type.

The YAML files in the example contain objects with authors as keys, each with a sequence of their own submapping with the keys "title" and "published".

Example

#let bookshelf(contents) = {
  for (author, works) in contents {
    author
    for work in works [
      - #work.title (#work.published)
    ]
  }
}

#bookshelf(
  yaml("scifi-authors.yaml")
)
Preview

Conversion details

YAML valueConverted into Typst
null-values (null, ~ or empty )none
booleanbool
numberfloat or int
stringstr
sequencearray
mappingdictionary
Typst valueConverted into YAML
types that can be converted from YAMLcorresponding YAML value
bytesstring via repr
symbolstring
contenta mapping describing the content
other types (length, etc.)string via repr

Notes

  • In most cases, YAML numbers will be converted to floats or integers depending on whether they are whole numbers. However, be aware that integers larger than 263-1 or smaller than -263 will be converted to floating-point numbers, which may result in an approximative value.

  • Custom YAML tags are ignored, though the loaded value will still be present.

  • Bytes are not encoded as YAML sequences for performance and readability reasons. Consider using cbor.encode for binary data.

  • The repr function is for debugging purposes only, and its output is not guaranteed to be stable across Typst versions.

Parameter
Parameter
Parameters are input values for functions. Specify them in parentheses after the function name.

yaml()->
any

source
Required
Required
Required parameters must be specified when calling the function.
Positional
Positional
Positional parameters can be set by specifying them in order, omitting the parameter name.

A path to a YAML file or raw YAML bytes.

Definition
Definition
These functions and types can have related definitions. To access a definition, specify the name of the function or type, followed by the definition name separated by a period.

decode

Reads structured data from a YAML string/bytes.

yaml.decode()->
any

data
Required
Required
Required parameters must be specified when calling the function.
Positional
Positional
Positional parameters can be set by specifying them in order, omitting the parameter name.

YAML data.

encode

Encode structured data into a YAML string.

yaml.encode(
any
)->

value
any
Required
Required
Required parameters must be specified when calling the function.
Positional
Positional
Positional parameters can be set by specifying them in order, omitting the parameter name.

Value to be encoded.

Open official docs

Search