diff options
| author | Andrew Voynov <37143421+Andrew15-5@users.noreply.github.com> | 2025-06-24 13:22:55 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-24 10:22:55 +0000 |
| commit | 87c56865606e027f552a4dbc800c6851b0d0b821 (patch) | |
| tree | 568ac4466db674e43d76672bd93ca8d40d398179 /docs/reference/groups.yml | |
| parent | 899de6d5d501c6aed04897d425dd3615e745743e (diff) | |
Add docs for `std` module (#6407)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
Diffstat (limited to 'docs/reference/groups.yml')
| -rw-r--r-- | docs/reference/groups.yml | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/docs/reference/groups.yml b/docs/reference/groups.yml index e5aa7e99..c7e3d996 100644 --- a/docs/reference/groups.yml +++ b/docs/reference/groups.yml @@ -137,6 +137,59 @@ In addition to the functions listed below, the `calc` module also defines the constants `pi`, `tau`, `e`, and `inf`. +- name: std + title: Standard library + category: foundations + path: ["std"] + details: | + A module that contains all globally accessible items. + + # Using "shadowed" definitions + The `std` module is useful whenever you overrode a name from the global + scope (this is called _shadowing_). For instance, you might have used the + name `text` for a parameter. To still access the `text` element, write + `std.text`. + + ```example + >>> #set page(margin: (left: 3em)) + #let par = [My special paragraph.] + #let special(text) = { + set std.text(style: "italic") + set std.par.line(numbering: "1") + text + } + + #special(par) + + #lorem(10) + ``` + + # Conditional access + You can also use this in combination with the [dictionary + constructor]($dictionary) to conditionally access global definitions. This + can, for instance, be useful to use new or experimental functionality when + it is available, while falling back to an alternative implementation if + used on an older Typst version. In particular, this allows us to create + [polyfills](https://en.wikipedia.org/wiki/Polyfill_(programming)). + + This can be as simple as creating an alias to prevent warning messages, for + example, conditionally using `pattern` in Typst version 0.12, but using + [`tiling`] in newer versions. Since the parameters accepted by the `tiling` + function match those of the older `pattern` function, using the `tiling` + function when available and falling back to `pattern` otherwise will unify + the usage across all versions. Note that, when creating a polyfill, + [`sys.version`]($category/foundations/sys) can also be very useful. + + ```typ + #let tiling = if "tiling" in dictionary(std) { + tiling + } else { + pattern + } + + ... + ``` + - name: sys title: System category: foundations |
