32 lines
1.6 KiB
TypeScript
32 lines
1.6 KiB
TypeScript
/**
|
|
* Generate docs/index.md (the V2 site's landing page) from the repository README.
|
|
*
|
|
* The docs site lands on the README — the same model as the V1 site — so the README
|
|
* stays the single source of truth and the landing page can never drift from it.
|
|
* Links that only resolve on GitHub are rewritten for the site:
|
|
* - `docs/<page>.md` -> `./<page>.md` (index.md sits next to the guide pages)
|
|
* - other repo paths -> the GitHub blob URL
|
|
*/
|
|
import { readFileSync, writeFileSync } from 'node:fs';
|
|
import { dirname, join } from 'node:path';
|
|
import { fileURLToPath } from 'node:url';
|
|
|
|
const repoRoot = join(dirname(fileURLToPath(import.meta.url)), '..');
|
|
const GITHUB = 'https://github.com/modelcontextprotocol/typescript-sdk/blob/main';
|
|
|
|
let markdown = readFileSync(join(repoRoot, 'README.md'), 'utf8');
|
|
|
|
markdown = markdown
|
|
// The README's "API docs" link points at the old typedoc site; on the landing it is the
|
|
// in-site API Reference section.
|
|
.replaceAll('](https://modelcontextprotocol.github.io/typescript-sdk/)', '](./api/index.md)')
|
|
.replaceAll('](docs/', '](./')
|
|
.replaceAll('](packages/', `](${GITHUB}/packages/`)
|
|
.replaceAll('](examples/', `](${GITHUB}/examples/`)
|
|
.replaceAll('](LICENSE)', `](${GITHUB}/LICENSE)`)
|
|
.replaceAll('](CONTRIBUTING.md)', `](${GITHUB}/CONTRIBUTING.md)`)
|
|
.replaceAll('](SECURITY.md)', `](${GITHUB}/SECURITY.md)`)
|
|
.replaceAll('](CODE_OF_CONDUCT.md)', `](${GITHUB}/CODE_OF_CONDUCT.md)`);
|
|
|
|
writeFileSync(join(repoRoot, 'docs', 'index.md'), markdown);
|
|
console.log('docs/index.md generated from README.md');
|