Framework adapters for OpenPkg - Fumadocs, Docusaurus, Mintlify, etc.
npm install @openpkg-ts/adaptersFramework adapters for OpenPkg API documentation.
Self-registering adapter pattern for extensibility.
``typescript
import { registerAdapter, getAdapter, listAdapters } from '@openpkg-ts/adapters';
// List available adapters
const adapters = listAdapters();
// Get adapter by id
const fumadocs = getAdapter('fumadocs');
await fumadocs.generate(spec, './docs/api');
`
`typescript
import { registerAdapter, type DocAdapter } from '@openpkg-ts/adapters';
const myAdapter: DocAdapter = {
id: 'my-adapter',
name: 'My Adapter',
generate: async (spec, outDir) => {
// Generate docs to outDir
},
};
registerAdapter(myAdapter);
`
`bash`Use adapter via CLI
openpkg docs openpkg.json --adapter fumadocs -o docs/api/
`bash`
npm install @openpkg-ts/adapters fumadocs-core
`ts
import { loader } from 'fumadocs-core/source';
import { openpkgSource, openpkgPlugin } from '@openpkg-ts/adapters/fumadocs';
import spec from './openpkg.json';
export const apiSource = loader({
baseUrl: '/docs/api',
source: openpkgSource({ spec }),
plugins: [openpkgPlugin()],
});
`
Self-registers on import - no manual registration needed.
`css`
@import '@openpkg-ts/adapters/fumadocs/css';
`ts`
import { SidebarKindBadge } from '@openpkg-ts/adapters/fumadocs/components';
| Option | Type | Default | Description |
|--------|------|---------|-------------|
| spec | OpenPkg | required | The OpenPkg spec |baseDir
| | string | 'api' | Base directory |mode
| | 'pages' \| 'single' | 'pages' | Navigation mode |indexPage
| | boolean | true | Generate index page |
`typescript`
import type { DocAdapter } from '@openpkg-ts/adapters';
- @openpkg-ts/adapters/docusaurus (planned)@openpkg-ts/adapters/mintlify` (planned)
-
MIT