about summary refs log tree commit diff
path: root/src/exe.zig
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2026-04-08 13:29:17 +0900
committerRobert Günzler <r@gnzler.io>2026-04-08 13:50:39 +0900
commit2200e168cfc35134aec2ccc656ad5419663a973c (patch)
tree3b85ec1e701ffad2a519fd5d9c54321be5c3eedf /src/exe.zig
parent8bca0ebd8645bf2714035ed61ac140956a83fc21 (diff)
downloadsite-2200e168cfc35134aec2ccc656ad5419663a973c.tar.gz
start refactoring to support multiple page roots
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to 'src/exe.zig')
-rw-r--r--src/exe.zig21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/exe.zig b/src/exe.zig
index 998ea3b..ad3a7aa 100644
--- a/src/exe.zig
+++ b/src/exe.zig
@@ -57,20 +57,29 @@ pub fn WaitPool(
 pub fn runPandoc(ctx: *Context) !void {
     ctx.generated.clearRetainingCapacity();
 
-    ctx.progress_start("Processing markdown files");
+    ctx.progress_start("Processing markdown files", true);
     defer ctx.progress_end();
 
-    // TODO: check if pandoc is installed and exit gracefully
+    var md = try std.ArrayList([]const u8).initCapacity(ctx.allocator(), 1);
+    defer md.deinit(ctx.allocator());
+
+    // TODO: support more than one site
+    for (ctx.sites.getLast().pages.items) |p|
+        if (p.kind == .Markdown) try md.append(ctx.allocator(), p.path);
 
+    // TODO: check if pandoc is installed and exit gracefully
     try WaitPool(
         []const u8,
         pandocWorker,
-    ).work(ctx, ctx.markdown.items, .{});
+    ).work(ctx, md.items, .{});
 
-    log.info("Processed {d} markdown files.", .{ctx.markdown.items.len});
+    log.info("Processed {d} markdown files.", .{md.items.len});
 }
 
 fn pandocWorker(ctx: *Context, page: []const u8) !void {
+    ctx.progress_start(page, true);
+    defer ctx.progress_end();
+
     const source_path = try std.fs.path.join(ctx.allocator(), &.{ Context.params.PAGE_PATH, page });
     defer ctx.allocator().free(source_path);
     const target_path = try fs.replaceExtension(ctx.allocator(), source_path, "htm");
@@ -159,7 +168,7 @@ pub fn captureStdout(ctx: *Context, argv: []const []const u8, env_map: ?*std.pro
     const label = try std.fmt.allocPrint(ctx.allocator(), "running {s}", .{command});
     defer ctx.allocator().free(label);
 
-    ctx.progress_start(label);
+    ctx.progress_start(label, true);
     defer ctx.progress_end();
 
     log.debug("running {s}", .{command});
@@ -187,7 +196,7 @@ pub fn shell(ctx: *Context, command: []const u8, env_map: ?*std.process.EnvMap)
     const label = try std.fmt.allocPrint(ctx.allocator(), "running {s}", .{command});
     defer ctx.allocator().free(label);
 
-    ctx.progress_start(label);
+    ctx.progress_start(label, true);
     defer ctx.progress_end();
 
     var p = std.process.Child.init(&.{