From aad68ea48972787ca540295c4ee740aec6a72a0b Mon Sep 17 00:00:00 2001 From: Laurenz Date: Thu, 16 May 2024 15:02:55 +0200 Subject: [PATCH] Documentation for literals (#4149) --- docs/reference/syntax.md | 14 +++++++++++++- 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 2cdccc592..0446f0588 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 | `{}` | [`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 66242cbbe..ab8e2d517 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> = Lazy::new(|| { static LIBRARY: Lazy> = 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::(); + scope.define_type::(); + + // 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) {