forked from quarto-dev/quarto-cli
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathemail-recipients-all-patterns-python.qmd
More file actions
125 lines (93 loc) · 2.44 KB
/
email-recipients-all-patterns-python.qmd
File metadata and controls
125 lines (93 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
---
title: Email Recipients - All Patterns (Python)
author: Jules Walzer-Goldfeld
format:
email:
email-version: 2
---
```{python}
#| echo: false
import yaml
from IPython.display import Markdown
def write_yaml_metadata_block(**kwargs):
"""Write YAML metadata block that will be parsed by Quarto."""
yaml_content = yaml.dump(
kwargs,
default_flow_style=False,
allow_unicode=True,
sort_keys=False
)
yaml_block = f"---\n{yaml_content}---\n"
return Markdown(yaml_block)
```
Test document demonstrating all recipient patterns with Python.
```{python}
# Email 1: Static inline recipients
```
::: {.email}
::: {.subject}
Email 1: Static Inline Recipients
:::
::: {.recipients}
`{python} static_recipients`
:::
::: {.email-text}
Text version of email with static inline recipients.
:::
First email with static inline recipients.
:::
```{python}
# Email 2: Conditional inline recipients
is_weekday = True # Fixed value for deterministic testing
if is_weekday:
conditional_recipients = ["[email protected]", "[email protected]"]
else:
conditional_recipients = ["[email protected]"]
```
::: {.email}
::: {.subject}
Email 2: Conditional Inline Recipients
:::
::: {.recipients}
`{python} conditional_recipients`
:::
::: {.email-text}
Text version of conditional recipients email.
:::
Second email with conditional inline recipients.
:::
```{python}
#| output: asis
# Email 3: Metadata attribute pattern
metadata_recipients = ["[email protected]", "[email protected]"]
write_yaml_metadata_block(metadata_recipients=metadata_recipients)
```
::: {.email recipients=metadata_recipients}
::: {.subject}
Email 3: Metadata Attribute Pattern
:::
::: {.email-text}
This email uses the metadata attribute pattern.
:::
Third email using metadata attribute pattern.
:::
```{python}
#| output: asis
# Email 4: Conditional metadata attribute pattern
is_admin = True # Fixed for testing
if is_admin:
admin_recipients = ["[email protected]", "[email protected]"]
else:
admin_recipients = ["[email protected]"]
write_yaml_metadata_block(admin_recipients=admin_recipients)
```
::: {.email recipients=admin_recipients}
::: {.subject}
Email 4: Conditional Metadata Attribute
:::
::: {.email-text}
This email uses conditional metadata attribute pattern.
:::
Fourth email using conditional metadata attribute pattern.
:::