cutline
v0.0.3
Published
Generate Markdown API reference snippets from a TypeScript entry module.
Downloads
503
Readme
Cutline
Generate Markdown API reference snippets from a TypeScript entry module.
cutline reads the public surface exported from an entry module (default
src/index.ts) and turns each exported symbol into Markdown that a docs site
can transclude with pymdownx snippets
(--8<-- "generated/api/Name.md"), so the signatures shown in the docs are
always the ones in source. Two flavours are emitted per symbol:
Name.md— a parsed datasheet block (lead prose + a member list with each member's kind, name, type, and docs) as raw HTML.Name.bare.md— the bare declaration in a fenced code block, for an at-a-glance "shape" inline in the guides.
Usage
cutline [options]| Option | Default | Description |
| --- | --- | --- |
| --tsconfig <path> | tsconfig.json | tsconfig to load |
| --entry <path> | src/index.ts | entry module whose exports define the public surface |
| --out <dir> | generated/api | output directory |
| --fence <lang> | ts | bare code fence language |
| --bare / --no-bare | --bare | also emit a fenced .bare.md shape copy |
| --unwrap-links / --no-unwrap-links | --unwrap-links | unwrap {@link X} references into plain X |
| --clean / --no-clean | --clean | clear the output directory first |
Library
The pipeline is split so it can be exercised without touching disk:
import { ApiDocGenerator } from "cutline";
const generator = new ApiDocGenerator({ entryFile: "src/public.ts" });
const symbols = generator.describe(sourceFile); // ApiSymbol[]
const snippet = generator.render(symbols[0]); // Snippet
generator.run(); // read tsconfig, render all, write filesDevelopment
pnpm install
pnpm test
pnpm run start -- --entry src/index.ts --out generated/api