From 8ed1eff7b5b76b72eef8e67ee9120e5d24925aa7 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Wed, 14 Feb 2024 09:45:25 +0100 Subject: [PATCH] Fix text show-set regression (#3410) --- crates/typst/src/realize/process.rs | 6 +++- tests/ref/compiler/show-set-text.png | Bin 0 -> 8734 bytes tests/typ/compiler/show-set-text.typ | 41 +++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 tests/ref/compiler/show-set-text.png create mode 100644 tests/typ/compiler/show-set-text.typ diff --git a/crates/typst/src/realize/process.rs b/crates/typst/src/realize/process.rs index 73d5cc4fc..a5acd8fcd 100644 --- a/crates/typst/src/realize/process.rs +++ b/crates/typst/src/realize/process.rs @@ -129,7 +129,11 @@ fn verdict<'a>( continue; } - if let Transformation::Style(transform) = &recipe.transform { + // Special handling for show-set rules. Exception: Regex show rules, + // those need to be handled like normal transformations. + if let (Transformation::Style(transform), false) = + (&recipe.transform, matches!(&recipe.selector, Some(Selector::Regex(_)))) + { // If this is a show-set for an unprepared element, we need to apply // it. if !prepared { diff --git a/tests/ref/compiler/show-set-text.png b/tests/ref/compiler/show-set-text.png new file mode 100644 index 0000000000000000000000000000000000000000..27803e8a41ff79f3d9306c154a4b2025958f6baf GIT binary patch literal 8734 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