diff options
Diffstat (limited to 'src/library/insert.rs')
| -rw-r--r-- | src/library/insert.rs | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/src/library/insert.rs b/src/library/insert.rs index 58e8a11c..eff54e91 100644 --- a/src/library/insert.rs +++ b/src/library/insert.rs @@ -15,23 +15,23 @@ pub fn image(ctx: &mut EvalContext, args: &mut Args) -> Value { let width = args.get(ctx, "width"); let height = args.get(ctx, "height"); - if let Some(path) = path { - let loaded = ctx.env.resources.load(path.v, ImageResource::parse); - if let Some((res, img)) = loaded { - let dimensions = img.buf.dimensions(); - ctx.push(NodeImage { - res, - dimensions, - width, - height, - align: ctx.state.align, - }); - } else { - ctx.diag(error!(path.span, "failed to load image")); + Value::template(move |ctx| { + if let Some(path) = &path { + let loaded = ctx.env.resources.load(&path.v, ImageResource::parse); + if let Some((res, img)) = loaded { + let dimensions = img.buf.dimensions(); + ctx.push(NodeImage { + res, + dimensions, + width, + height, + align: ctx.state.align, + }); + } else { + ctx.diag(error!(path.span, "failed to load image")); + } } - } - - Value::None + }) } /// An image node. |
