From 1198e0cd385737efc38dbd8ba13db802a68e0dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20d=27Herbais=20de=20Thun?= Date: Wed, 12 Apr 2023 12:47:51 +0200 Subject: [PATCH] Selector rework (#640) --- docs/src/reference/types.md | 70 +++++++++++ library/src/lib.rs | 1 + library/src/meta/bibliography.rs | 6 +- library/src/meta/counter.rs | 17 ++- library/src/meta/figure.rs | 12 +- library/src/meta/outline.rs | 5 +- library/src/meta/query.rs | 59 ++++----- library/src/meta/state.rs | 7 +- src/eval/methods.rs | 29 ++++- src/model/content.rs | 31 +++-- src/model/introspect.rs | 77 +++++++----- src/model/realize.rs | 9 +- src/model/styles.rs | 170 ++++++++++++++++++++++++-- tests/ref/meta/query-before-after.png | Bin 0 -> 180629 bytes tests/ref/meta/query.png | Bin 445229 -> 554447 bytes tests/typ/compiler/show-node.typ | 2 +- tests/typ/meta/query-before-after.typ | 69 +++++++++++ tests/typ/meta/query.typ | 6 +- 18 files changed, 454 insertions(+), 116 deletions(-) create mode 100644 tests/ref/meta/query-before-after.png create mode 100644 tests/typ/meta/query-before-after.typ diff --git a/docs/src/reference/types.md b/docs/src/reference/types.md index 7183bac4e..f5f7e6e44 100644 --- a/docs/src/reference/types.md +++ b/docs/src/reference/types.md @@ -910,3 +910,73 @@ You can access definitions from the module using >>> >>> #(-3) ``` + +# Selector +A filter for selecting elements within the document. + +You can construct a selector in the following ways: +- you can use an element function +- you can filter for an element function with + [specific fields]($type/function.where) +- you can use a [string]($type/string) or [regular expression]($func/regex) +- you can use a [`{