diff --git a/devlog/index.md b/devlog/index.md deleted file mode 100644 index f1ebd7a..0000000 --- a/devlog/index.md +++ /dev/null @@ -1,14 +0,0 @@ -# devlog - -- [copying the boring parts](/devlog/012) -- [building a pds](/devlog/011) -- [the network is input](/devlog/010) -- [back to threads](/devlog/009) -- [the io migration](/devlog/008) -- [up and to the right](/devlog/007) -- [building a relay in zig](/devlog/006) -- [three-way trust chain verification](/devlog/005) -- [the sig-verify saga](/devlog/004) -- [verifying the trust chain](/devlog/003) -- [consuming the firehose, then benchmarking it](/devlog/002) -- [zat publishes its own docs to ATProto](/devlog/001) diff --git a/scripts/build-site.mjs b/scripts/build-site.mjs index c3a8166..530a360 100644 --- a/scripts/build-site.mjs +++ b/scripts/build-site.mjs @@ -170,8 +170,6 @@ async function main() { } for (const rel of devlogFiles) { - if (rel === "index.md") continue; - const src = path.join(devlogDir, rel); const dst = path.join(outDocsDir, "devlog", rel); await mkdir(path.dirname(dst), { recursive: true }); diff --git a/scripts/publish-docs.zig b/scripts/publish-docs.zig index 93f1a6e..c7b5d63 100644 --- a/scripts/publish-docs.zig +++ b/scripts/publish-docs.zig @@ -28,8 +28,6 @@ const devlog = [_]DocEntry{ .{ .path = "/devlog/012", .file = "devlog/012-mst-bench-notes.md" }, }; -const devlog_index = DocEntry{ .path = "/devlog/index", .file = "devlog/index.md" }; - pub fn main() !void { // use page_allocator for CLI tool - OS reclaims on exit const allocator = std.heap.page_allocator; @@ -93,7 +91,6 @@ pub fn main() !void { try devlog_uri_buf.print(allocator, "at://{s}/site.standard.publication/{s}", .{ session.did, devlog_tid.str() }); const devlog_uri = devlog_uri_buf.items; - try publishEntry(&client, allocator, session.did, devlog_index, devlog_uri, 100, &now); try publishEntries(&client, allocator, session.did, &devlog, devlog_uri, 101, &now); std.debug.print("done\n", .{}); @@ -209,40 +206,28 @@ fn publishEntries( now: *const [20]u8, ) !void { for (entries, 0..) |entry, i| { - try publishEntry(client, allocator, did, entry, site_uri, @intCast(clock_id_base + i), now); + const content = std.Io.Dir.readFileAlloc(.cwd(), std.Options.debug_io, entry.file, allocator, .limited(1024 * 1024)) catch |err| { + std.debug.print("warning: could not read {s}: {}\n", .{ entry.file, err }); + continue; + }; + defer allocator.free(content); + + const title = extractTitle(content) orelse entry.file; + const tid = zat.Tid.fromTimestamp(1704067200000000, @intCast(clock_id_base + i)); + + const record = Document{ + .site = site_uri, + .title = title, + .path = entry.path, + .textContent = content, + .publishedAt = now, + }; + + try putRecord(client, allocator, did, "site.standard.document", tid.str(), record); + std.debug.print("published: {s} -> at://{s}/site.standard.document/{s}\n", .{ entry.file, did, tid.str() }); } } -fn publishEntry( - client: *zat.XrpcClient, - allocator: Allocator, - did: []const u8, - entry: DocEntry, - site_uri: []const u8, - clock_id: usize, - now: *const [20]u8, -) !void { - const content = std.Io.Dir.readFileAlloc(.cwd(), std.Options.debug_io, entry.file, allocator, .limited(1024 * 1024)) catch |err| { - std.debug.print("warning: could not read {s}: {}\n", .{ entry.file, err }); - return; - }; - defer allocator.free(content); - - const title = extractTitle(content) orelse entry.file; - const tid = zat.Tid.fromTimestamp(1704067200000000, @intCast(clock_id)); - - const record = Document{ - .site = site_uri, - .title = title, - .path = entry.path, - .textContent = content, - .publishedAt = now, - }; - - try putRecord(client, allocator, did, "site.standard.document", tid.str(), record); - std.debug.print("published: {s} -> at://{s}/site.standard.document/{s}\n", .{ entry.file, did, tid.str() }); -} - fn timestamp() [20]u8 { const ns = std.Io.Timestamp.now(std.Options.debug_io, .real).nanoseconds; const secs: u64 = @intCast(@divFloor(ns, std.time.ns_per_s));