+10
scripts/build-wisp-docs.mjs
+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
+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/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>