Skip to content

Commit 60b9612

Browse files
committed
Add email content example in vignette
1 parent e17992c commit 60b9612

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed

vignettes/dynamic-metadata.qmd

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,96 @@ Generated at: {{< meta generated_at >}}
9393
This content would be hidden when debug mode is enabled.
9494
:::
9595

96+
## Advanced Use Case: Email Variant Testing
97+
98+
One powerful application of dynamic metadata is variant emails using Quarto's email format. This example shows how to randomly select an email variant and conditionally display different content based on that selection:
99+
100+
````markdown
101+
---
102+
title: test conditional emails
103+
format: email
104+
email-preview: true
105+
---
106+
107+
Pick variant
108+
109+
```{r}
110+
variant <- sample(1:3, 1)
111+
```
112+
113+
```{r}
114+
#| echo: false
115+
#| output: asis
116+
quarto::write_yaml_metadata_block(.list = setNames(list(TRUE), sprintf("is_email_variant_%d", variant)))
117+
```
118+
119+
::: {.email}
120+
121+
This email was sent from Quarto! With conditional output for condition `r variant`
122+
123+
::: {.content-visible when-meta="is_email_variant_1"}
124+
125+
email body 1
126+
127+
```{r}
128+
head(mtcars)
129+
```
130+
131+
::: {.subject}
132+
subject 1
133+
:::
134+
135+
:::
136+
137+
::: {.content-visible when-meta="is_email_variant_2"}
138+
139+
email body 2
140+
141+
```{r}
142+
head(palmerpenguins::penguins)
143+
```
144+
145+
::: {.subject}
146+
subject 2
147+
:::
148+
149+
:::
150+
151+
::: {.content-visible when-meta="is_email_variant_3"}
152+
153+
email body 3
154+
155+
```{r}
156+
praise::praise()
157+
```
158+
159+
::: {.subject}
160+
subject 3
161+
:::
162+
163+
:::
164+
165+
::: {.email-scheduled}
166+
TRUE
167+
:::
168+
169+
:::
170+
171+
## Logging
172+
173+
Case: `r variant`
174+
175+
Report run: `r Sys.time()`
176+
````
177+
178+
This example demonstrates several advanced concepts:
179+
180+
1. **Random variant selection**: Using `sample()` to randomly choose one of three email variants
181+
2. **Dynamic metadata generation**: Creating boolean metadata flags for each variant using `sprintf()` and `setNames()`
182+
3. **Conditional email content**: Each variant shows different content (different datasets, subjects) based on the selected metadata flag
183+
4. **Email-specific features**: Using Quarto's email format with `.subject` divs and `.email-scheduled` metadata
184+
5. **Logging and tracking**: Recording which variant was selected for analysis purposes
185+
96186
## Technical Details
97187

98188
The `write_yaml_metadata_block()` function generates a YAML metadata block that can be inserted into the document body. It accepts named arguments or a list, which are converted to YAML format. The **yaml** R package is used for YAML serialization: <https://github.com/vubiostat/r-yaml>

0 commit comments

Comments
 (0)