diff options
Diffstat (limited to 'src/library/text.rs')
| -rw-r--r-- | src/library/text.rs | 12 |
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>>); |
