atproto utils for zig zat.dev
atproto sdk zig

fix: include devlog in site build

- copy devlog/ files to site-out/docs/devlog/
- change header link to use hash routing (#devlog/...) so SPA handles it

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

Changed files
+11 -1
scripts
site
+10
scripts/build-wisp-docs.mjs
··· 13 14 const repoRoot = path.resolve(new URL("..", import.meta.url).pathname); 15 const docsDir = path.join(repoRoot, "docs"); 16 const siteSrcDir = path.join(repoRoot, "site"); 17 const outDir = path.join(repoRoot, "site-out"); 18 const outDocsDir = path.join(outDir, "docs"); ··· 155 if (!rel.startsWith("archive/")) { 156 pages.push({ path: rel, title: normalizeTitle(titleFromMarkdown(md, rel)) }); 157 } 158 } 159 160 // Stable nav order: README homepage, then roadmap, then changelog, then the rest.
··· 13 14 const repoRoot = path.resolve(new URL("..", import.meta.url).pathname); 15 const docsDir = path.join(repoRoot, "docs"); 16 + const devlogDir = path.join(repoRoot, "devlog"); 17 const siteSrcDir = path.join(repoRoot, "site"); 18 const outDir = path.join(repoRoot, "site-out"); 19 const outDocsDir = path.join(outDir, "docs"); ··· 156 if (!rel.startsWith("archive/")) { 157 pages.push({ path: rel, title: normalizeTitle(titleFromMarkdown(md, rel)) }); 158 } 159 + } 160 + 161 + // Copy devlog files to docs/devlog/ (accessible via SPA but not in sidebar) 162 + const devlogFiles = (await exists(devlogDir)) ? await listMarkdownFiles(devlogDir) : []; 163 + for (const rel of devlogFiles) { 164 + const src = path.join(devlogDir, rel); 165 + const dst = path.join(outDocsDir, "devlog", rel); 166 + await mkdir(path.dirname(dst), { recursive: true }); 167 + await cp(src, dst); 168 } 169 170 // Stable nav order: README homepage, then roadmap, then changelog, then the rest.
+1 -1
site/index.html
··· 16 </button> 17 <a class="brand" href="./">zat.dev</a> 18 <div class="header-links"> 19 - <a class="header-link" href="./devlog/">devlog</a> 20 <a class="header-link" href="https://tangled.sh/zat.dev/zat" target="_blank" rel="noopener noreferrer">repo</a> 21 </div> 22 </header>
··· 16 </button> 17 <a class="brand" href="./">zat.dev</a> 18 <div class="header-links"> 19 + <a class="header-link" href="#devlog/001-self-publishing-docs.md">devlog</a> 20 <a class="header-link" href="https://tangled.sh/zat.dev/zat" target="_blank" rel="noopener noreferrer">repo</a> 21 </div> 22 </header>