4.4. TechDocs アドオンの作成
既存の TechDocs アドオンの機能では満たされないドキュメントのニーズが組織にある場合、開発者は TechDocs プラグイン用の新しいアドオンを作成できます。
TechDocs アドオンは、フロントエンドプラグインからインポートされる React コンポーネントです。TechDocs アドオンのエクスポートに使用できる既存のプラグインがない場合は、backstage-cli を使用して、カスタマイズ可能なデフォルトのフロントエンドプラグイン構造を生成することで、新しいプラグインを作成できます。
TechDocs アドオンを TechDocs プラグインにインポートするために使用できる新しいプラグインのフォルダー構造は、次の例のようになります。
<new_plugin_for_techdocs_add-on>/
dev/
index.ts
src/
components/
<new_techdocs_add-on_component>/
<new_techdocs_add-on_component>.test.tsx
<new_techdocs_add-on_component>.tsx
index.ts
<new_techdocs_add-on_fetch-component>/
<new_techdocs_add-on_fetch-component>.test.tsx
<new_techdocs_add-on_fetch-component>.tsx
index.ts
index.ts
plugin.test.ts
plugin.ts
routes.ts
setupTests.ts
.eslintrc.js
package.json
README.md
前提条件
-
yarnパッケージマネージャーがインストールされている。 - Docker v3.2.0 以降または Podman v3.2.0 以降がインストール済みで実行中である。
手順
- ターミナルで、新しいプラグインを作成するリポジトリーのルートフォルダーに移動します。
新しいフロントエンドプラグインを作成するために、次のコマンドを実行します。
yarn new出力例
? What do you want to create? plugin - A new frontend plugin ? Enter the ID of the plugin [required]ターミナルプロンプトで、新しいプラグインの名前を入力します。以下に例を示します。
? Enter the ID of the plugin [required] <new_plugin_for_techdocs_add-on>出力例
Successfully created plugin結果
pluginsディレクトリーに、プラグインに付けた名前と同じ名前のサブディレクトリーが自動的に生成されます。このディレクトリーには、新しいプラグインを作成するために設定する必要があるすべてのファイルが含まれています。ターミナルで、新しいプラグインのディレクトリーに移動します。以下に例を示します。
cd plugins/<new_techdocs_add-on_directory>`@backstage/plugin-techdocs-react` パッケージを追加して、TechDocs アドオンのフロントエンドユーティリティーを取得します。以下に例を示します。
yarn add @backstage/plugin-techdocs-react-
カスタム TechDocs アドオンのコンポーネントが含まれるディレクトリーで、アドオンに必要のないデフォルトのファイルまたはファイルコンポーネント (
routes.tsファイルやindex.tsxファイルおよびplugins.tsファイルのコンポーネントなど) を削除します。 plugins.tsファイルに次のコードを追加します。import { createPlugin } from '@backstage/core-plugin-api'; import { createTechDocsAddonExtension } from '@backstage/plugin-techdocs-react'; export const <new_plugin_for_techdocs_add-on> = createPlugin({ id: '<new_techdocs_add-on>', }); /* * * @public */ export const <new_techdocs_add-on> = <new_plugin_for_techdocs_add-on>.provide( createTechDocsAddonExtension<_<new_techdocs_addon_props>_>({ name: '<new_techdocs_add-on>', location: TechDocsAddonLocations.Content, component: <new_techdocs_add-on_component>, }), );以下は、
- <new_plugin_for_techdocs_add-on>
- Red Hat Developer Hub インスタンスに TechDocs アドオンをインポートするために使用する新しいプラグインを指定します。
- <new_techdocs_add-on>
- 作成するカスタム TechDocs アドオンを指定します。
- <new_techdocs_addon_props> (任意)
-
該当する場合は、
<new_techdocs_add-on>.tsxファイルで指定されているように、新しい TechDocs アドオンのpropsを指定します。 - <new_techdocs_add-on_component>
-
作成するカスタム TechDocs アドオンの React コンポーネントを指定します。このコンポーネントは、後のステップで
.tsxファイルに作成します。
index.tsファイルで、次のコードを追加して、作成するカスタム TechDocs アドオンをエクスポートします。export { <new_plugin_for_techdocs_add-on>, <new_techdocs_add-on> } from './plugin';-
新しい
<new_techdocs_add-on>.tsxファイルを作成し、新しい TechDocs アドオンコンポーネントのコードを追加します。 新しい
index.tsxファイルを作成し、次のコードを追加して新しい TechDocs アドオンコンポーネントをエクスポートします。export { <new_techdocs_add-on>, type <new_techdocs_addon_props>} from './<new_techdocs_add-on_directory>'以下は、
- <new_techdocs_addon_props> (任意)
-
該当する場合は、
<new_techdocs_add-on>.tsxファイルで指定されているように、新しい TechDocs アドオンのpropsを指定します。
-
plugins.tsファイルに、新しい TechDocs アドオンコンポーネントをインポートします。 - TechDocs アドオンのインストールと設定 の手順に従って、新しい TechDocs アドオンをインストールし、設定します。
検証
- RHDH アプリケーションを再起動し、プラグインが正常にアクティブ化され、設定されていることを確認します。
- アプリケーションログを確認のため検証して、プラグインが期待どおりに機能していることを確認します。