tiny.zen.buildSite
Defined in tiny.zen.
Source
Source: lib/zen/src/site/publish.zig:168
zig
pub fn buildSite(allocator: Allocator, options: BuildOptions) !BuildResult { if (options.source.len == 0) return error.InvalidSource; if (options.base.len != 0 and (options.base[0] != '/' or options.base[options.base.len - 1] == '/')) return error.InvalidBase; if (options.parent_site_base) |parent_site_base| { if (!parentSiteOwnsBase(parent_site_base, options.base)) { return error.InvalidParentSiteBase; } } if (options.output.len == 0) return error.InvalidOutput; if (!options.clean and options.before_publish != null) { return error.PublishHookRequiresClean; } if (!options.clean and options.publish_authored_routes) { return error.AuthoredRouteManifestRequiresClean; } const source_root = try realPathOwned(allocator, options.source); defer allocator.free(source_root); const planned_output_root = try plannedOutputRoot(allocator, options.output); defer allocator.free(planned_output_root); if (insideRoot(source_root, planned_output_root)) return error.OutputInsideSource; var loaded_theme = try theme.load(allocator, source_root, options.theme_files, options.theme); defer loaded_theme.deinit(allocator); var active_options = options; active_options.theme = loaded_theme.value; if (active_options.publish_authored_routes and active_options.theme.style.len != 0 and std.mem.eql(u8, active_options.theme.style_path, site_catalog.manifest_path)) { return error.AuthoredRouteManifestPathConflict; } if (!options.clean) { try std.Io.Dir.cwd().createDirPath(io, options.output); const output_root = try realPathOwned(allocator, options.output); defer allocator.free(output_root); if (insideRoot(source_root, output_root)) return error.OutputInsideSource; return try buildInto(allocator, active_options, source_root, output_root); } const staging = try stagingPath(allocator, options.output); defer allocator.free(staging); const backup = try backupPath(allocator, options.output); defer allocator.free(backup); if (pathExists(staging)) try deleteOutput(staging); try std.Io.Dir.cwd().createDirPath(io, staging); errdefer if (pathExists(staging)) deleteOutput(staging) catch {}; const output_root = try realPathOwned(allocator, staging); defer allocator.free(output_root); if (insideRoot(source_root, output_root)) return error.OutputInsideSource; const result = try buildInto(allocator, active_options, source_root, output_root); if (options.before_publish) |hook| { try hook.run(hook.context, allocator, output_root); } try swapOutput(options.output, staging, backup); return result;}Source: lib/zen/src/root.zig:342
zig
/// Publishes through staging; render and hook failures preserve prior output.pub const buildSite = site.buildSite;Also reachable as
Complete call list
11 direct calls.
lib.zen.src.site.publish.backupPath[function] — private source atlib/zen/src/site/publish.zig:583in nearest public ownerlib.zen.src.site.publishlib.zen.src.site.publish.buildInto[function] — private source atlib/zen/src/site/publish.zig:230in nearest public ownerlib.zen.src.site.publishlib.zen.src.site.publish.deleteOutput[function] — private source atlib/zen/src/site/publish.zig:796in nearest public ownerlib.zen.src.site.publishlib.zen.src.site.publish.insideRoot[function] — private source atlib/zen/src/site/publish.zig:1148in nearest public ownerlib.zen.src.site.publishtiny.zen.site.parentSiteOwnsBase[function] atlib/zen/src/site/publish.zig:755lib.zen.src.site.publish.pathExists[function] — private source atlib/zen/src/site/publish.zig:1132in nearest public ownerlib.zen.src.site.publishlib.zen.src.site.publish.plannedOutputRoot[function] — private source atlib/zen/src/site/publish.zig:603in nearest public ownerlib.zen.src.site.publishlib.zen.src.site.publish.realPathOwned[function] — private source atlib/zen/src/site/publish.zig:611in nearest public ownerlib.zen.src.site.publishlib.zen.src.site.publish.stagingPath[function] — private source atlib/zen/src/site/publish.zig:579in nearest public ownerlib.zen.src.site.publishlib.zen.src.site.publish.swapOutput[function] — private source atlib/zen/src/site/publish.zig:587in nearest public ownerlib.zen.src.site.publishlib.zen.src.theme.load[module] — private; no exact target atlib/zen/src/theme/load.zig
Audit
| Definitions | 1 |
|---|---|
| Public names | 2 |
| Members | 0 |
| Version | 26.7.0 |
| Revision | daab053ee433 |