aboutsummaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2026-05-28 16:30:26 +0200
committerNathan Reiner <nathan@nathanreiner.xyz>2026-05-28 16:30:26 +0200
commitcd32a3ca0173676ed31486b5fa4dbd8c744cdec5 (patch)
treea9d0888c7a0e425ef8006cc9aade5889b78c074c /src/main.zig
parente749e2ccf97e6e7a2d1c124c4e5bed688e4c06f2 (diff)
implement frontend framework
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/main.zig b/src/main.zig
index df0c061..f17214c 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -5,10 +5,33 @@
const std = @import("std");
const http = @import("http");
+const html = @import("html");
+const z = @import("z");
+
+const badge = @import("web/badge/root.zig");
+
+const document: html.Element = .native(.html, .{}, .children(&.{
+ .native(.head, .{}, .children(&.{
+ .native(.title, .{}, .content("Memora")),
+ .native(.meta, .{
+ .name = "viewport",
+ .content = "width=device-width, initial-scale=1.0",
+ }, .void),
+ z.env(&.{
+ badge.component,
+ }),
+ })),
+ .native(.body, .{}, .children(&.{
+ z.html.load(@embedFile("web/index.html")),
+ z.component(.badge, .{}, .children(&.{
+ .native(.span, .{ .slot = "content" }, .content("Hello Z (direct)!")),
+ })),
+ })),
+}));
pub fn main(init: std.process.Init) !void {
var server: http.Server = try .init(init.gpa, try .parseLiteral("127.0.0.1:8080"));
- try server.serve();
+ try server.serve(comptime document.toDocument());
}
test {