summaryrefslogtreecommitdiff
path: root/src/library/text.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2021-08-29 15:09:54 +0200
committerLaurenz <laurmaedje@gmail.com>2021-08-29 15:09:54 +0200
commite4e79990dad90aea17ea99e54fcd60435927bb56 (patch)
tree2e893ac5e104867629c2dad38502ef3fdc426d33 /src/library/text.rs
parent411aba5b6f541f96bbdb4e23a40cf022a867dc11 (diff)
Allow body for font function once again
Diffstat (limited to 'src/library/text.rs')
-rw-r--r--src/library/text.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/library/text.rs b/src/library/text.rs
index f12794aa..2cb5ccaf 100644
--- a/src/library/text.rs
+++ b/src/library/text.rs
@@ -20,8 +20,9 @@ pub fn font(ctx: &mut EvalContext, args: &mut Arguments) -> TypResult<Value> {
let sans_serif = args.named("sans-serif")?;
let monospace = args.named("monospace")?;
let fallback = args.named("fallback")?;
+ let body = args.eat::<Template>();
- ctx.template.modify(move |state| {
+ let f = move |state: &mut State| {
let font = state.font_mut();
if let Some(size) = size {
@@ -71,9 +72,14 @@ pub fn font(ctx: &mut EvalContext, args: &mut Arguments) -> TypResult<Value> {
if let Some(fallback) = fallback {
font.fallback = fallback;
}
- });
+ };
- Ok(Value::None)
+ Ok(if let Some(body) = body {
+ Value::Template(body.modified(f))
+ } else {
+ ctx.template.modify(f);
+ Value::None
+ })
}
struct FontDef(Rc<Vec<FontFamily>>);