aboutsummaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
authorRosa <rosaontheweb@proton.me>2026-05-12 13:49:45 -0400
committerRosa <rosaontheweb@proton.me>2026-05-12 13:49:45 -0400
commit1f0749100b22c17272b4d294e1db3034097b57ea (patch)
tree9f007328080aec23a685d6c9062a9192fac769cf /util
parent6143a710c142cf6704527ae32a7c90c02e83fe4a (diff)
start work on template api
Diffstat (limited to 'util')
-rw-r--r--util/generate_html.zig (renamed from util/website.zig)33
-rw-r--r--util/lighttpd.conf2
-rw-r--r--util/pages.zig16
3 files changed, 35 insertions, 16 deletions
diff --git a/util/website.zig b/util/generate_html.zig
index 837a51c..f1329ca 100644
--- a/util/website.zig
+++ b/util/generate_html.zig
@@ -1,17 +1,20 @@
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 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);
}
@@ -19,19 +22,19 @@ fn copyStaticFiles(io: std.Io, ally: std.mem.Allocator, sources: std.Io.Dir, out
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, .{});
- },
+ 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);
- },
+ .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 => {},
- }
+ 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;
+ }
+};