const File = @import("File.zig"); const Component = @import("Component.zig"); const z_component_code: File.Script = .minify("z-component.js"); pub const Meta = struct { name: []const u8, content: []const u8, pub fn to_html_string(comptime self: @This()) []const u8 { return ""; } }; title: []const u8, meta: []const Meta, pub const empty: @This() = .{ .title = "", .meta = &.{}, }; pub fn default(comptime title: []const u8) @This() { return .{ .title = title, .meta = &.{ .{ .name = "viewport", .content = "width=device-width, initial-scale=1.0", }, }, }; } pub fn to_html_string( comptime self: @This(), comptime components: []const Component, comptime styles: []const File.Style, ) []const u8 { var content: []const u8 = "" ++ z_component_code.to_html_string(); content = content ++ "" ++ self.title ++ ""; inline for (components) |component| { content = content ++ comptime component.to_html_string(); } inline for (styles) |style| { content = content ++ comptime style.to_html_string(); } inline for (self.meta) |meta| { content = content ++ comptime meta.to_html_string(); } content = content ++ ""; return content; }