summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2024-05-16 15:02:55 +0200
committerLaurenz <laurmaedje@gmail.com>2024-05-17 15:34:20 +0200
commit573a2db4be3a568baf7e0dc71ac788e28a4a0820 (patch)
tree1558a0e9c37652f6814401b25ab92b41442c077b
parent1b119c33b3067be77d8e1e4ca6234d55b12acbe7 (diff)
Documentation for literals (#4149)
-rw-r--r--docs/reference/syntax.md14
-rw-r--r--docs/src/lib.rs13
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 765e7c7c..6e00f9ee 100644
--- a/docs/src/lib.rs
+++ b/docs/src/lib.rs
@@ -15,7 +15,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<Prehashed<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(),
)))));
+
Prehashed::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) {