clawdie-ai/scripts/generate-llms-files.ts
Operator & Codex b67d04a0d4 Add llms.txt export for public docs
---
Build: pass | Tests: pass — 2382 passed (708 files)
2026-05-11 00:49:01 +02:00

75 lines
1.9 KiB
TypeScript

import path from 'path';
import { writeLlmsArtifacts } from '../src/docs-llms.js';
interface Args {
sourceDir: string;
outputDir: string;
siteBaseUrl: string;
docignorePath: string;
}
function parseArgs(argv: string[]): Args {
let sourceDir = path.join(process.cwd(), 'docs', 'public');
let outputDir = path.join(
process.cwd(),
'bootstrap',
'cms',
'clawdie-docs',
'public',
);
let siteBaseUrl = 'https://docs.clawdie.si';
let docignorePath = path.join(sourceDir, '.docignore');
for (let i = 0; i < argv.length; i += 1) {
const arg = argv[i];
if (arg === '--source-dir') {
sourceDir = path.resolve(argv[i + 1] || sourceDir);
i += 1;
continue;
}
if (arg === '--output-dir') {
outputDir = path.resolve(argv[i + 1] || outputDir);
i += 1;
continue;
}
if (arg === '--site-base-url') {
siteBaseUrl = (argv[i + 1] || siteBaseUrl).trim();
i += 1;
continue;
}
if (arg === '--docignore') {
docignorePath = path.resolve(argv[i + 1] || docignorePath);
i += 1;
continue;
}
if (arg === '--help') {
console.log(
[
'Usage: npx tsx scripts/generate-llms-files.ts [options]',
'',
'Options:',
' --source-dir DIR Source markdown root (default: docs/public)',
' --output-dir DIR Output directory for llms artifacts',
' --site-base-url URL Site base URL for generated links',
' --docignore FILE Optional docignore filter file',
].join('\n'),
);
process.exit(0);
}
throw new Error(`Unknown argument: ${arg}`);
}
return {
sourceDir,
outputDir,
siteBaseUrl,
docignorePath,
};
}
const args = parseArgs(process.argv.slice(2));
const result = writeLlmsArtifacts(args);
console.log(
`Generated llms artifacts for ${result.pageCount} pages: ${result.files.join(', ')}`,
);