From 1f0749100b22c17272b4d294e1db3034097b57ea Mon Sep 17 00:00:00 2001 From: Rosa Date: Tue, 12 May 2026 13:49:45 -0400 Subject: start work on template api --- util/generate_html.zig | 40 ++++++++++++++++++++++++++++++++++++++++ util/lighttpd.conf | 2 +- util/pages.zig | 16 ++++++++++++++++ util/website.zig | 37 ------------------------------------- 4 files changed, 57 insertions(+), 38 deletions(-) create mode 100644 util/generate_html.zig create mode 100644 util/pages.zig delete mode 100644 util/website.zig (limited to 'util') diff --git a/util/generate_html.zig b/util/generate_html.zig new file mode 100644 index 0000000..f1329ca --- /dev/null +++ b/util/generate_html.zig @@ -0,0 +1,40 @@ +const std = @import("std"); +const pages = @import("pages.zig"); + +pub fn main(init: std.process.Init) !void { + const sources_dir = try std.Io.Dir.cwd().createDirPathOpen(init.io, "src", .{}); + defer sources_dir.close(init.io); + const out_dir = try std.Io.Dir.cwd().createDirPathOpen(init.io, "html-out", .{}); + defer out_dir.close(init.io); + + const templates_dir = try sources_dir.createDirPathOpen(init.io, "templates", .{ .open_options = .{ .iterate = true } }); + defer templates_dir.close(init.io); + + const pages_dir = try sources_dir.createDirPathOpen(init.io, "pages", .{ .open_options = .{ .iterate = true } }); + defer pages_dir.close(init.io); + + const static_dir = try sources_dir.createDirPathOpen(init.io, "static", .{ .open_options = .{ .iterate = true } }); + defer static_dir.close(init.io); + try copyStaticFiles(init.io, init.gpa, static_dir, out_dir); +} + +fn copyStaticFiles(io: std.Io, ally: std.mem.Allocator, sources: std.Io.Dir, out: std.Io.Dir) !void { + var walker = try sources.walk(ally); + defer walker.deinit(); + while (try walker.next(io)) |entry| { + switch (entry.kind) { + .file, .sym_link => { + std.debug.print("Copying static file {s}...\n", .{entry.path}); + try entry.dir.copyFile(entry.basename, out, entry.basename, io, .{}); + }, + + .directory => { + const new_out = try out.createDirPathOpen(io, entry.basename, .{ .open_options = .{ .iterate = true } }); + defer new_out.close(io); + try copyStaticFiles(io, ally, sources, out); + }, + + else => {}, + } + } +} diff --git a/util/lighttpd.conf b/util/lighttpd.conf index 6c06da6..b4f012f 100644 --- a/util/lighttpd.conf +++ b/util/lighttpd.conf @@ -1,4 +1,4 @@ index-file.names = ( "index.html" ) server.bind = "127.0.0.1" -server.document-root = var.CWD + "/src" +server.document-root = var.CWD + "/html-out" server.port = 8888 diff --git a/util/pages.zig b/util/pages.zig new file mode 100644 index 0000000..13d62a1 --- /dev/null +++ b/util/pages.zig @@ -0,0 +1,16 @@ +const std = @import("std"); + +pub const Template = struct { + file: std.Io.File, + + pub fn init(io: std.Io, dir: std.Io.Dir, sub_path: []const u8) !@This() { + const file = try dir.openFile(io, sub_path, .{}); + return .{ .file = file }; + } + + pub fn replacePlaceholder(template: *Template, key: []const u8, content: []u8) void { + _ = template; + _ = key; + _ = content; + } +}; diff --git a/util/website.zig b/util/website.zig deleted file mode 100644 index 837a51c..0000000 --- a/util/website.zig +++ /dev/null @@ -1,37 +0,0 @@ -const std = @import("std"); - -pub fn main(init: std.process.Init) !void { - const sources_dir = try std.Io.Dir.cwd().createDirPathOpen(init.io, "src", .{}); - defer sources_dir.close(init.io); - const templates_dir = try sources_dir.createDirPathOpen(init.io, "templates", .{ .open_options = .{ .iterate = true } }); - defer templates_dir.close(init.io); - const pages_dir = try sources_dir.createDirPathOpen(init.io, "pages", .{ .open_options = .{ .iterate = true } }); - defer pages_dir.close(init.io); - const out_dir = try std.Io.Dir.cwd().createDirPathOpen(init.io, "html-out", .{}); - defer out_dir.close(init.io); - const static_dir = try sources_dir.createDirPathOpen(init.io, "static", .{ .open_options = .{ .iterate = true } }); - defer static_dir.close(init.io); - - try copyStaticFiles(init.io, init.gpa, static_dir, out_dir); -} - -fn copyStaticFiles(io: std.Io, ally: std.mem.Allocator, sources: std.Io.Dir, out: std.Io.Dir) !void { - var walker = try sources.walk(ally); - defer walker.deinit(); - while (try walker.next(io)) |entry| { - switch (entry.kind) { - .file, .sym_link => { - std.debug.print("Copying static file {s}...\n", .{entry.basename}); - try entry.dir.copyFile(entry.basename, out, entry.basename, io, .{}); - }, - - .directory => { - const new_out = try out.createDirPathOpen(io, entry.basename, .{ .open_options = .{ .iterate = true } }); - defer new_out.close(io); - try copyStaticFiles(io, ally, sources, out); - }, - - else => {}, - } - } -} -- cgit v1.3.1