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: 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 | 57 +++++------- library/src/meta/state.rs | 7 +- src/eval/methods.rs | 29 +++++- src/model/content.rs | 31 +++++-- src/model/introspect.rs | 75 +++++++++------ 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, 452 insertions(+), 114 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 7183bac4..f5f7e6e4 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 [`{