Access examples
tests.zig
1test "inheritance" {
2 var data: Data = .init(allocator, std.testing.io);
3 defer data.deinit();
4
5 const output = try zmpl.Templates.inheritance_child.renderWithLayout(
6 zmpl.Templates.inheritance_parent3,
7 &data,
8 struct {},
9 .{},
10 );
11 try expectEqualStrings(
12 \\<h2>Parent 1</h2>
13 \\<div class="content-1">
14 \\ <h2>Parent 2</h2>
15 \\<div class="content-2">
16 \\ <h3>Parent 3</h3>
17 \\<div class="content-3">
18 \\ <span>Content</span>
19 \\</div>
20 \\</div>
21 \\</div>
22 , output);
23}
24
25test "root init" {
26 var data: Data = .init(allocator, std.testing.io);
27 defer data.deinit();
28
29 var root = try data.root(.object);
30 var user = try data.object();
31 var auth = try data.object();
32
33 try user.put("email", data.string("user@example.com"));
34 try auth.put("token", data.string("abc123-456-def"));
35
36 try root.put("user", user);
37 try root.put("auth", auth);
38
39 const output = try zmpl.Templates.example.render(&data, .{});
40
41 try expectEqualStrings(
42 \\<!-- Zig mode for template logic -->
43 \\ <span>Zmpl is simple!</span>
44 \\
45 \\<!-- Easy data lookup syntax -->
46 \\<div>Email: user@example.com</div>
47 \\<div>Token: abc123-456-def</div>
48 \\
49 \\<!-- Partials --><span>An example partial</span>
50 \\
51 \\<!-- Partials with positional args --><a href="mailto:user@example.com?subject=Welcome to Jetzig!">user@example.com</a>
52 \\
53 \\<!-- Partials with keyword args --><a href="mailto:user@example.com?subject=Welcome to Jetzig!">user@example.com</a>
54 \\
55 \\<!-- Partials with slots --><a href="mailto:user@example.com?subject=Welcome to Jetzig!">user@example.com</a>
56 \\ <div class="slot-0"><a href="https://example.com/auth/abc123-456-def">Sign in</a></div> <div class="slot-1"><a href="https://example.com/unsubscribe/abc123-456-def">Unsubscribe</a></div>
57 \\
58 \\<div><h1>Built-in markdown support</h1>
59 \\<ul>
60 \\ <li><a href="https://www.jetzig.dev/">jetzig.dev</a></li>
61 \\</ul>
62 \\</div>
63 \\
64 , output);
65}