diff options
| -rw-r--r-- | src/callout.zig | 6 | ||||
| -rw-r--r-- | src/eval/blocks.zig | 10 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/callout.zig b/src/callout.zig index 9c5bab5..1c756d6 100644 --- a/src/callout.zig +++ b/src/callout.zig @@ -57,17 +57,17 @@ test "callout" { \\::: \\hey \\::: - , "<div class=\"callout\"><p>hey</p></div>"); + , "<div data-callout=\"default\" class=\"callout\"><h4>default</h4><p>hey</p></div>"); try doTest(parse, alloc, \\:::info \\hey \\::: - , "<div data-callout=\"info\" class=\"callout\"><p>hey</p></div>"); + , "<div data-callout=\"info\" class=\"callout\"><h4>info</h4><p>hey</p></div>"); try doTest(parse, alloc, \\::: info Title \\hey \\::: - , "<div data-callout=\"info\" class=\"callout\"><p>hey</p></div>"); + , "<div data-callout=\"info\" class=\"callout\"><h4>Title</h4><p>hey</p></div>"); // cannot test content with \n try doTestError(parse, alloc, ":::", Error.InvalidCallout); diff --git a/src/eval/blocks.zig b/src/eval/blocks.zig index 32f2de3..9f96c3d 100644 --- a/src/eval/blocks.zig +++ b/src/eval/blocks.zig @@ -133,8 +133,14 @@ pub const Callout = struct { const self: *Self = @ptrCast(@alignCast(context)); var el = try HTML.Content.init(alloc, "div"); try el.base.appendClass("callout"); - if (self.kind) |kind| try el.base.setAttribute("data-callout", kind); - el.content = try self.content.html(alloc); + const kind = self.kind orelse "default"; + try el.base.setAttribute("data-callout", kind); + const root = try HTML.Root.init(alloc); + const title = try HTML.Content.init(alloc, "h4"); + title.content = (try HTML.Literal.init(alloc, self.title orelse kind)).element(); + root.append(title.element()); + root.append(try self.content.html(alloc)); + el.content = root.element(); return el.element(); } }; |
