75 lines
1.9 KiB
TypeScript
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(', ')}`,
|
|
);
|