Skip to content

Commit ee5d04e

Browse files
feat(build): copy source .md files to dist for agent markdown negotiation
1 parent 9df7666 commit ee5d04e

1 file changed

Lines changed: 25 additions & 2 deletions

File tree

docs/.vitepress/config.mts

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { defineConfig, type HeadConfig } from "vitepress";
22
import { tabsMarkdownPlugin } from "vitepress-plugin-tabs";
33
import { withMermaid } from "vitepress-plugin-mermaid";
4-
import { readFileSync } from "node:fs";
5-
import { resolve } from "node:path";
4+
import { readFileSync, readdirSync, statSync, mkdirSync, copyFileSync } from "node:fs";
5+
import { resolve, join, relative, dirname } from "node:path";
66

77
function loadEnvVar(key: string): string | undefined {
88
// process.env takes precedence (CI/hosting platforms set vars here)
@@ -75,6 +75,29 @@ export default withMermaid(
7575
],
7676
},
7777
},
78+
buildEnd(siteConfig) {
79+
// Copy source .md files into dist/ for Accept: text/markdown negotiation.
80+
const srcDir = siteConfig.srcDir;
81+
const outDir = siteConfig.outDir;
82+
83+
function walk(dir: string): void {
84+
for (const entry of readdirSync(dir)) {
85+
if (entry === ".vitepress" || entry === "public" || entry === "node_modules") continue;
86+
const abs = join(dir, entry);
87+
const stat = statSync(abs);
88+
if (stat.isDirectory()) {
89+
walk(abs);
90+
} else if (stat.isFile() && abs.endsWith(".md")) {
91+
const rel = relative(srcDir, abs);
92+
const dest = join(outDir, rel);
93+
mkdirSync(dirname(dest), { recursive: true });
94+
copyFileSync(abs, dest);
95+
}
96+
}
97+
}
98+
99+
walk(srcDir);
100+
},
78101
title: "Plane developer documentation",
79102
description:
80103
"Self-host Plane, integrate with our API, configure webhooks, and extend your project management platform. Complete guides for developers building on Plane.",

0 commit comments

Comments
 (0)