diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2026-04-28 21:07:12 +0200 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2026-04-28 21:07:12 +0200 |
| commit | a75d03583c0691b1830122979d44737e574f27c7 (patch) | |
| tree | 0c5431bf66cd816a5e07264f307ed8c3833b2edb /src | |
| parent | c6e771fff0515d3a8e0cbc928c103b6c86f22c0f (diff) | |
feat(): support callout's title
Diffstat (limited to 'src')
| -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(); } }; |
