diff options
| author | Laurenz <laurmaedje@gmail.com> | 2024-05-16 15:02:55 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-16 13:02:55 +0000 |
| commit | aad68ea48972787ca540295c4ee740aec6a72a0b (patch) | |
| tree | 715d4bb55a9e2bb47e7882d26e0a0c254a0842f3 | |
| parent | 7c4a199918cd4d9ce6af931a01b09ef7a29fc2c6 (diff) | |
Documentation for literals (#4149)
| -rw-r--r-- | docs/reference/syntax.md | 14 | ||||
| -rw-r--r-- | docs/src/lib.rs | 13 |
2 files changed, 25 insertions, 2 deletions
diff --git a/docs/reference/syntax.md b/docs/reference/syntax.md index 2cdccc59..0446f058 100644 --- a/docs/reference/syntax.md +++ b/docs/reference/syntax.md @@ -89,8 +89,20 @@ a table listing all syntax that is available in code mode: | Name | Example | See | | ------------------------ | ----------------------------- | ---------------------------------- | +| None | `{none}` | [`none`] | +| Auto | `{auto}` | [`auto`] | +| Boolean | `{false, true}` | [`bool`] | +| Integer | `{10, 0xff}` | [`int`] | +| Floating-point number | `{3.14, 1e5}` | [`float`] | +| Length | `{2pt, 3mm, 1em, ..}` | [`length`] | +| Angle | `{90deg, 1rad}` | [`angle`] | +| Fraction | `{2fr}` | [`fraction`] | +| Ratio | `{50%}` | [`ratio`] | +| String | `{"hello"}` | [`str`] | +| Label | `{<intro>}` | [`label`] | +| Math | `[$x^2$]` | [Math]($category/math) | +| Raw text | ``[`print(1)`]`` | [`raw`] | | Variable access | `{x}` | [Scripting]($scripting/#blocks) | -| Any literal | `{1pt, "hey"}` | [Scripting]($scripting/#expressions) | | Code block | `{{ let x = 1; x + 2 }}` | [Scripting]($scripting/#blocks) | | Content block | `{[*Hello*]}` | [Scripting]($scripting/#blocks) | | Parenthesized expression | `{(1 + 2)}` | [Scripting]($scripting/#blocks) | diff --git a/docs/src/lib.rs b/docs/src/lib.rs index 66242cbb..ab8e2d51 100644 --- a/docs/src/lib.rs +++ b/docs/src/lib.rs @@ -14,7 +14,9 @@ use once_cell::sync::Lazy; use serde::Deserialize; use serde_yaml as yaml; use typst::diag::{bail, StrResult}; +use typst::foundations::AutoValue; use typst::foundations::Bytes; +use typst::foundations::NoneValue; use typst::foundations::{ CastInfo, Category, Func, Module, ParamInfo, Repr, Scope, Smart, Type, Value, FOUNDATIONS, @@ -56,12 +58,21 @@ static GROUPS: Lazy<Vec<GroupData>> = Lazy::new(|| { static LIBRARY: Lazy<LazyHash<Library>> = Lazy::new(|| { let mut lib = Library::default(); + let scope = lib.global.scope_mut(); + + // Add those types, so that they show up in the docs. + scope.category(FOUNDATIONS); + scope.define_type::<NoneValue>(); + scope.define_type::<AutoValue>(); + + // Adjust the default look. lib.styles .set(PageElem::set_width(Smart::Custom(Abs::pt(240.0).into()))); lib.styles.set(PageElem::set_height(Smart::Auto)); lib.styles.set(PageElem::set_margin(Margin::splat(Some(Smart::Custom( Abs::pt(15.0).into(), ))))); + LazyHash::new(lib) }); @@ -240,7 +251,7 @@ fn category_page(resolver: &dyn Resolver, category: Category) -> PageModel { shorthands = Some(ShorthandsModel { markup, math }); } - // Add functions. + // Add values and types. let scope = module.scope(); for (name, value) in scope.iter() { if scope.get_category(name) != Some(category) { |
