本文へ移動

はじめに

TypeScriptの extends で継承したmemberを含むCapacitorプラグインドキュメントを生成します。Ionicの @capacitor/docgen を独立して保守しているforkです。

小さなsandboxで試す

mkdir docgen-demo
cd docgen-demo
npm init -y
npm install --save-dev @rdlabo/capacitor-docgen@0.4.1

本家 @capacitor/docgen を同じプロジェクトへ同時インストールしないでください。どちらも docgen binaryを公開します。

src/definitions.ts を作成します。

export interface SharedOptions {
  requestId?: string;
}

export interface CreateOptions extends SharedOptions {
  value: string;
}

export interface MyPlugin {
  create(options: CreateOptions): Promise<void>;
}

tsconfig.json を作成します。

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "commonjs",
    "strict": true
  },
  "files": ["src/definitions.ts"]
}

docgenが更新するplaceholderを含む README.md を作成します。

<docgen-index></docgen-index>

<docgen-api></docgen-api>

次を実行します。

npx docgen --project tsconfig.json --api MyPlugin --output-readme README.md --output-json dist/docs.json

生成された CreateOptions のドキュメントには valuerequestId の両方が含まれます。生成内容を変えるにはTypeScriptのinterfaceやJSDocを編集してください。marker外の散文はそのまま残ります。編集後は同じコマンドを再実行します。

既存プラグインでは package.json"docgen": "docgen --api MyPlugin --output-readme README.md" のようなscriptを追加できます。このsandboxでは必須ではありません。

ドキュメント