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 以降がインストール済みで実行中である。

手順

  1. ターミナルで、新しいプラグインを作成するリポジトリーのルートフォルダーに移動します。
  2. 新しいフロントエンドプラグインを作成するために、次のコマンドを実行します。

    yarn new

    出力例

    ? What do you want to create? plugin - A new frontend plugin
    ? Enter the ID of the plugin [required]

  3. ターミナルプロンプトで、新しいプラグインの名前を入力します。以下に例を示します。

    ? Enter the ID of the plugin [required] <new_plugin_for_techdocs_add-on>

    出力例

    Successfully created plugin

    結果

    plugins ディレクトリーに、プラグインに付けた名前と同じ名前のサブディレクトリーが自動的に生成されます。このディレクトリーには、新しいプラグインを作成するために設定する必要があるすべてのファイルが含まれています。

  4. ターミナルで、新しいプラグインのディレクトリーに移動します。以下に例を示します。

    cd plugins/<new_techdocs_add-on_directory>
  5. `@backstage/plugin-techdocs-react` パッケージを追加して、TechDocs アドオンのフロントエンドユーティリティーを取得します。以下に例を示します。

    yarn add @backstage/plugin-techdocs-react
  6. カスタム TechDocs アドオンのコンポーネントが含まれるディレクトリーで、アドオンに必要のないデフォルトのファイルまたはファイルコンポーネント (routes.ts ファイルや index.tsx ファイルおよび plugins.ts ファイルのコンポーネントなど) を削除します。
  7. 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 ファイルに作成します。
  8. index.ts ファイルで、次のコードを追加して、作成するカスタム TechDocs アドオンをエクスポートします。

    export { <new_plugin_for_techdocs_add-on>, <new_techdocs_add-on> } from './plugin';
  9. 新しい <new_techdocs_add-on>.tsx ファイルを作成し、新しい TechDocs アドオンコンポーネントのコードを追加します。
  10. 新しい 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 を指定します。
  11. plugins.ts ファイルに、新しい TechDocs アドオンコンポーネントをインポートします。
  12. TechDocs アドオンのインストールと設定 の手順に従って、新しい TechDocs アドオンをインストールし、設定します。

検証

  1. RHDH アプリケーションを再起動し、プラグインが正常にアクティブ化され、設定されていることを確認します。
  2. アプリケーションログを確認のため検証して、プラグインが期待どおりに機能していることを確認します。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る