From 1d43b4e6d7df7b832c4d2214ba0b99973ff09cd0 Mon Sep 17 00:00:00 2001 From: Jay V Date: Fri, 7 Nov 2025 18:35:08 -0500 Subject: ignore: docs: add automated sitemap generation for main app and docs routes --- packages/console/app/script/generate-sitemap.ts | 101 ++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100755 packages/console/app/script/generate-sitemap.ts (limited to 'packages/console/app/script') diff --git a/packages/console/app/script/generate-sitemap.ts b/packages/console/app/script/generate-sitemap.ts new file mode 100755 index 000000000..2b003ae20 --- /dev/null +++ b/packages/console/app/script/generate-sitemap.ts @@ -0,0 +1,101 @@ +#!/usr/bin/env bun +import { readdir } from "fs/promises" +import { join } from "path" +import { config } from "../src/config.ts" + +const BASE_URL = config.baseUrl +const PUBLIC_DIR = join(import.meta.dir, "../public") +const ROUTES_DIR = join(import.meta.dir, "../src/routes") +const DOCS_DIR = join(import.meta.dir, "../../../web/src/content/docs") + +interface SitemapEntry { + url: string + priority: number + changefreq: string +} + +async function getMainRoutes(): Promise { + const routes: SitemapEntry[] = [] + + // Add main static routes + const staticRoutes = [ + { path: "/", priority: 1.0, changefreq: "daily" }, + { path: "/enterprise", priority: 0.8, changefreq: "weekly" }, + { path: "/brand", priority: 0.6, changefreq: "monthly" }, + { path: "/zen", priority: 0.8, changefreq: "weekly" }, + ] + + for (const route of staticRoutes) { + routes.push({ + url: `${BASE_URL}${route.path}`, + priority: route.priority, + changefreq: route.changefreq, + }) + } + + return routes +} + +async function getDocsRoutes(): Promise { + const routes: SitemapEntry[] = [] + + try { + const files = await readdir(DOCS_DIR) + + for (const file of files) { + if (!file.endsWith(".mdx")) continue + + const slug = file.replace(".mdx", "") + const path = slug === "index" ? "/docs/" : `/docs/${slug}` + + routes.push({ + url: `${BASE_URL}${path}`, + priority: slug === "index" ? 0.9 : 0.7, + changefreq: "weekly", + }) + } + } catch (error) { + console.error("Error reading docs directory:", error) + } + + return routes +} + +function generateSitemapXML(entries: SitemapEntry[]): string { + const urls = entries + .map( + (entry) => ` + ${entry.url} + ${entry.changefreq} + ${entry.priority} + ` + ) + .join("\n") + + return ` + +${urls} +` +} + +async function main() { + console.log("Generating sitemap...") + + const mainRoutes = await getMainRoutes() + const docsRoutes = await getDocsRoutes() + + const allRoutes = [...mainRoutes, ...docsRoutes] + + console.log(`Found ${mainRoutes.length} main routes`) + console.log(`Found ${docsRoutes.length} docs routes`) + console.log(`Total: ${allRoutes.length} routes`) + + const xml = generateSitemapXML(allRoutes) + + const outputPath = join(PUBLIC_DIR, "sitemap.xml") + await Bun.write(outputPath, xml) + + console.log(`✓ Sitemap generated at ${outputPath}`) +} + +main() -- cgit v1.2.3 From 01705fd467f8a8711b0a4b2da4856172d555e1b5 Mon Sep 17 00:00:00 2001 From: Jay V Date: Fri, 7 Nov 2025 19:55:25 -0500 Subject: ignore: docs: fix type errors in sitemap generation script --- packages/console/app/script/generate-sitemap.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'packages/console/app/script') diff --git a/packages/console/app/script/generate-sitemap.ts b/packages/console/app/script/generate-sitemap.ts index 2b003ae20..8b947d648 100755 --- a/packages/console/app/script/generate-sitemap.ts +++ b/packages/console/app/script/generate-sitemap.ts @@ -1,12 +1,14 @@ #!/usr/bin/env bun -import { readdir } from "fs/promises" -import { join } from "path" -import { config } from "../src/config.ts" +import { readdir, writeFile } from "fs/promises" +import { join, dirname } from "path" +import { fileURLToPath } from "url" +import { config } from "../src/config.js" +const __dirname = dirname(fileURLToPath(import.meta.url)) const BASE_URL = config.baseUrl -const PUBLIC_DIR = join(import.meta.dir, "../public") -const ROUTES_DIR = join(import.meta.dir, "../src/routes") -const DOCS_DIR = join(import.meta.dir, "../../../web/src/content/docs") +const PUBLIC_DIR = join(__dirname, "../public") +const ROUTES_DIR = join(__dirname, "../src/routes") +const DOCS_DIR = join(__dirname, "../../../web/src/content/docs") interface SitemapEntry { url: string @@ -93,7 +95,7 @@ async function main() { const xml = generateSitemapXML(allRoutes) const outputPath = join(PUBLIC_DIR, "sitemap.xml") - await Bun.write(outputPath, xml) + await writeFile(outputPath, xml, "utf-8") console.log(`✓ Sitemap generated at ${outputPath}`) } -- cgit v1.2.3 From dcaa90808e35eb597bce56469d9438df8f062254 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Sat, 8 Nov 2025 00:59:52 +0000 Subject: chore: format code --- packages/console/app/script/generate-sitemap.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'packages/console/app/script') diff --git a/packages/console/app/script/generate-sitemap.ts b/packages/console/app/script/generate-sitemap.ts index 8b947d648..6cbffcb85 100755 --- a/packages/console/app/script/generate-sitemap.ts +++ b/packages/console/app/script/generate-sitemap.ts @@ -43,13 +43,13 @@ async function getDocsRoutes(): Promise { try { const files = await readdir(DOCS_DIR) - + for (const file of files) { if (!file.endsWith(".mdx")) continue - + const slug = file.replace(".mdx", "") const path = slug === "index" ? "/docs/" : `/docs/${slug}` - + routes.push({ url: `${BASE_URL}${path}`, priority: slug === "index" ? 0.9 : 0.7, @@ -70,7 +70,7 @@ function generateSitemapXML(entries: SitemapEntry[]): string { ${entry.url} ${entry.changefreq} ${entry.priority} - ` + `, ) .join("\n") @@ -85,18 +85,18 @@ async function main() { const mainRoutes = await getMainRoutes() const docsRoutes = await getDocsRoutes() - + const allRoutes = [...mainRoutes, ...docsRoutes] - + console.log(`Found ${mainRoutes.length} main routes`) console.log(`Found ${docsRoutes.length} docs routes`) console.log(`Total: ${allRoutes.length} routes`) const xml = generateSitemapXML(allRoutes) - + const outputPath = join(PUBLIC_DIR, "sitemap.xml") await writeFile(outputPath, xml, "utf-8") - + console.log(`✓ Sitemap generated at ${outputPath}`) } -- cgit v1.2.3