TypstDocumentation

content

A piece of document content.

This type is at the heart of Typst. All markup you write and most functions you call produce content values. You can create a content value by enclosing markup in square brackets. This is also how you pass content to functions.

Type of *Hello!* is
#type([*Hello!*])
Preview

Content can be added with the + operator, joined together and multiplied with integers. Wherever content is expected, you can also pass a string or none.

Representation

Content consists of elements with fields. When constructing an element with its element function, you provide these fields as arguments and when you have a content value, you can access its fields with field access syntax.

Some fields are required: These must be provided when constructing an element and as a consequence, they are always available through field access on content of that type. Required fields are marked as such in the documentation.

Most fields are optional: Like required fields, they can be passed to the element function to configure them for a single element. However, these can also be configured with set rules to apply them to all elements within a scope. Optional fields are only available with field access syntax when they are were explicitly passed to the element function, not when they result from a set rule.

Each element has a default appearance. However, you can also completely customize its appearance with a show rule. The show rule is passed the element. It can access the element's field and produce arbitrary content from it.

In the web app, you can hover over a content variable to see exactly which elements the content is composed of and what fields they have. Alternatively, you can inspect the output of the repr function.

Methods
Question mark

func method

The content's element function. This function can be used to create the element contained in this content. It can be used in set and show rules for the element. Can be compared with global functions to check whether you have a specific kind of element.

value.func(
) -> function

has method

Whether the content has the specified field.

value.has() -> boolean

field
string
RequiredPositional
Question mark

The field to look for.

at method

Access the specified field on the content. Returns the default value if the field does not exist or fails with an error if no default value was specified.

value.at() -> any

field
string
RequiredPositional
Question mark

The field to access.

default
any

A default value to return if the field does not exist.

location method

The location of the content. This is only available on content returned by query, for other content it will fail with an error. The resulting location can be used with counters, state and queries.

value.location(
) -> location