this repo has no description
1const std = @import("std");
2const zine = @import("zine");
3
4pub fn build(b: *std.Build) !void {
5 const compile_stylesheet = b.step("stylesheet", "Compile stylesheet from scss files");
6 compile_stylesheet.result_cached = false;
7 std.debug.assert(try compile_stylesheet.addDirectoryWatchInput(b.path("style")));
8
9 const compile_stylesheet_cmd_out = b.run(&.{
10 "sass",
11 "--no-source-map",
12 "--no-color",
13 "--load-path=./style",
14 "./style/index.scss",
15 });
16 const compile_stylesheet_cmd = b.addWriteFile("altagos.css", compile_stylesheet_cmd_out);
17 const install_stylesheet = b.addInstallDirectory(.{
18 .source_dir = compile_stylesheet_cmd.getDirectory(),
19 .install_dir = .prefix,
20 .install_subdir = "style",
21 });
22 install_stylesheet.step.dependOn(&compile_stylesheet_cmd.step);
23
24 const stylesheet = zine.BuildAsset{
25 .name = "altagos.css",
26 .lp = b.path("zig-out/style/altagos.css"),
27 .install_path = "altagos.css",
28 .install_always = true,
29 };
30 compile_stylesheet.dependOn(&install_stylesheet.step);
31
32 const website = zine.website(b, .{
33 .output_path = "website",
34 .build_assets = &.{stylesheet},
35 .force = true,
36 });
37 website.step.dependOn(compile_stylesheet);
38 b.getInstallStep().dependOn(&website.step);
39
40 const serve = b.step("serve", "Start the Zine dev server");
41 const run_zine = zine.serve(b, .{
42 .build_assets = &.{stylesheet},
43 });
44 run_zine.step.dependOn(&install_stylesheet.step);
45
46 if (b.args) |args| {
47 run_zine.addArgs(args);
48 }
49
50 serve.dependOn(&run_zine.step);
51}