aboutsummaryrefslogtreecommitdiff
path: root/src/link.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/link.zig')
-rw-r--r--src/link.zig15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/link.zig b/src/link.zig
index 50e89f5..3333e76 100644
--- a/src/link.zig
+++ b/src/link.zig
@@ -81,13 +81,8 @@ pub fn parseImage(alloc: Allocator, l: *Lexer) ImageError!Element {
}
const p = try paragraph.parse(alloc, l);
errdefer p.deinit(alloc);
- el.source = p;
const p_el: *Element.paragraph.Block = @ptrCast(@alignCast(p.ptr));
- defer p_el.deinit(alloc);
- const in = try Element.Empty.init(alloc);
- errdefer in.deinit(alloc);
- in.content = try p_el.content.clone(alloc);
- el.source = in.element();
+ el.source = (try p_el.toEmpty(alloc)).element();
return el.element();
}
@@ -110,4 +105,12 @@ test "parse image" {
try doTest(parseImage, alloc, "![](src)", "<figure><img src=\"src\"></figure>");
try doTest(parseImage, alloc, "![alt](src)", "<figure><img src=\"src\" alt=\"alt\"></figure>");
+
+ try doTest(parseImage, alloc,
+ \\![bar](foo)
+ \\caption
+ \\on multiple lines!
+ \\
+ \\not in
+ , "<figure><img src=\"foo\" alt=\"bar\"><figcaption>caption on multiple lines!</figcaption></figure>");
}