From e2b149e46b71d821d01b47b1e8cdeb7920281260 Mon Sep 17 00:00:00 2001 From: ruben-cytonic Date: Mon, 16 Mar 2026 12:54:12 +0000 Subject: [PATCH] fix: sitemap/llms-txt recursive crawling, Next.js contentDir fallback & OG image - Exclude public/, dist/, .next/, .nuxt/ etc from sitemap and llms-txt crawlers - Next.js contentDir no longer falls back to project root - Added OG social sharing image for aeojs.org Amp-Thread-ID: https://ampcode.com/threads/T-019ce8b2-11cf-7124-bb47-e6d2cfebdc7a Co-authored-by: Amp --- src/core/llms-txt.ts | 3 ++- src/core/sitemap.ts | 3 ++- src/plugins/next.ts | 9 ++++++--- website/public/og.png | Bin 0 -> 42741 bytes 4 files changed, 10 insertions(+), 5 deletions(-) create mode 100644 website/public/og.png diff --git a/src/core/llms-txt.ts b/src/core/llms-txt.ts index 7b6fbe4..71aa300 100644 --- a/src/core/llms-txt.ts +++ b/src/core/llms-txt.ts @@ -13,7 +13,8 @@ function collectMarkdownFiles(dir: string, base: string = dir): MarkdownFile[] { const fullPath = join(dir, entry); const stat = statSync(fullPath); - if (stat.isDirectory() && !entry.startsWith('.') && entry !== 'node_modules') { + const SKIP_DIRS = new Set(['node_modules', 'public', 'dist', '.next', '.nuxt', '.output', '.open-next', 'coverage', '__tests__', '__mocks__']); + if (stat.isDirectory() && !entry.startsWith('.') && !SKIP_DIRS.has(entry)) { files.push(...collectMarkdownFiles(fullPath, base)); } else if (stat.isFile() && (extname(entry) === '.md' || extname(entry) === '.mdx')) { const content = readFileSync(fullPath, 'utf-8'); diff --git a/src/core/sitemap.ts b/src/core/sitemap.ts index 1d867a2..f85474e 100644 --- a/src/core/sitemap.ts +++ b/src/core/sitemap.ts @@ -12,7 +12,8 @@ function collectUrls(dir: string, config: ResolvedAeoConfig, base: string = dir) const fullPath = join(dir, entry); const stat = statSync(fullPath); - if (stat.isDirectory() && !entry.startsWith('.') && entry !== 'node_modules') { + const SKIP_DIRS = new Set(['node_modules', 'public', 'dist', '.next', '.nuxt', '.output', '.open-next', 'coverage', '__tests__', '__mocks__']); + if (stat.isDirectory() && !entry.startsWith('.') && !SKIP_DIRS.has(entry)) { urls.push(...collectUrls(fullPath, config, base)); } else if (stat.isFile() && (extname(entry) === '.md' || extname(entry) === '.mdx' || extname(entry) === '.html')) { const relativePath = relative(base, fullPath); diff --git a/src/plugins/next.ts b/src/plugins/next.ts index f003b2a..3a20604 100644 --- a/src/plugins/next.ts +++ b/src/plugins/next.ts @@ -99,9 +99,11 @@ export function withAeo(nextConfig: NextAeoConfig = {}): Record { } } - // Resolve contentDir: prefer user-specified, then src/, then project root + // Resolve contentDir: prefer user-specified, then known content dirs, then src/ + // Never fall back to project root — it causes recursive crawling of public/, .next/, etc. const contentDir = aeoOptions.contentDir - || (existsSync(join(projectRoot, 'src')) ? join(projectRoot, 'src') : projectRoot); + || [join(projectRoot, 'content'), join(projectRoot, 'docs'), join(projectRoot, 'src')].find(d => existsSync(d)) + || join(projectRoot, 'content'); const resolvedConfig = resolveConfig({ ...aeoOptions, @@ -247,7 +249,8 @@ export async function postBuild(config: AeoConfig = {}): Promise { } const contentDir = config.contentDir - || (existsSync(join(projectRoot, 'src')) ? join(projectRoot, 'src') : projectRoot); + || [join(projectRoot, 'content'), join(projectRoot, 'docs'), join(projectRoot, 'src')].find(d => existsSync(d)) + || join(projectRoot, 'content'); const resolvedConfig = resolveConfig({ ...config, diff --git a/website/public/og.png b/website/public/og.png new file mode 100644 index 0000000000000000000000000000000000000000..fc450c6d9d8e352528da62f012b87332b25bec77 GIT binary patch literal 42741 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