- перенесены каноны и VitePress-конфиги в projects/<slug> - добавлены корневой и проектные build.ts для сборки артефактов - добавлены shared-библиотеки сборки в projects/_shared/lib - обновлены CI, Dockerfile, package.json, gitignore и README - удалена сборка frontend-агента
52 lines
1.9 KiB
TypeScript
52 lines
1.9 KiB
TypeScript
import fs from 'node:fs';
|
||
import path from 'node:path';
|
||
|
||
import { docs } from '../../../src/config/docs.config';
|
||
|
||
const siteTitle = 'Документация';
|
||
const siteDescription = 'Единое пространство для идей, черновиков и первых версий документаций, которые ещё формируются и постепенно становятся самостоятельными материалами.';
|
||
|
||
function formatMarkdownLink(label: string, href: string, description: string) {
|
||
return `- [${label}](${href}): ${description}`;
|
||
}
|
||
|
||
function findDocLink(doc: (typeof docs)[number], label: string) {
|
||
return doc.links.find((link) => link.label === label);
|
||
}
|
||
|
||
export function generateRootLlms(rootDir = process.cwd()) {
|
||
const publicDir = path.join(rootDir, 'public');
|
||
const llmsPath = path.join(publicDir, 'llms.txt');
|
||
const content = [
|
||
`# ${siteTitle}`,
|
||
'',
|
||
`> ${siteDescription}`,
|
||
'',
|
||
'Этот файл является корневой картой документаций. Для работы с конкретным направлением используйте его собственный `llms.txt`.',
|
||
'',
|
||
'## Documentation',
|
||
'',
|
||
...docs
|
||
.map((doc) => {
|
||
const link = findDocLink(doc, 'llms.txt');
|
||
return link ? formatMarkdownLink(doc.title, link.href, doc.description) : undefined;
|
||
})
|
||
.filter(Boolean),
|
||
'',
|
||
'## Optional',
|
||
'',
|
||
...docs
|
||
.map((doc) => {
|
||
const link = findDocLink(doc, 'llms-full.txt');
|
||
return link ? formatMarkdownLink(`${doc.title} full`, link.href, `Полный bundle документации: ${doc.label.toLowerCase()}.`) : undefined;
|
||
})
|
||
.filter(Boolean),
|
||
'',
|
||
].join('\n');
|
||
|
||
fs.mkdirSync(publicDir, { recursive: true });
|
||
fs.writeFileSync(llmsPath, content, 'utf8');
|
||
|
||
console.log(`Сгенерирован ${path.relative(rootDir, llmsPath)}`);
|
||
}
|