第3章 TechDocs アドオン
TechDocs アドオンは、組み込みの TechDocs プラグインの機能を拡張する動的プラグインです。たとえば、アドオンを使用して、ドキュメントの問題を報告したり、テキストサイズを変更したり、TechDocs Reader ページまたは Entity ページでオーバーレイで画像を表示したりできます。
次の表は、Red Hat Developer Hub 1.5 で使用できる TechDocs アドオンを説明しています。
TechDocs アドオン | パッケージ/プラグイン | 説明 | 型 |
---|---|---|---|
|
| TechDocs ページのテキストの一部を選択し、ドキュメントが含まれているリポジトリーに対してイシューを作成します。選択したテキストがイシューテンプレートに自動的に入力されます。 | プリインストール |
|
| スライダーまたはボタンを使用してフォントサイズを拡大または縮小することで、ドキュメントページのテキストサイズをカスタマイズします。フォントサイズのデフォルト値は 100% です。この設定は変更されるたびにブラウザーのローカルストレージに保存されます。 | 外部 |
|
| ライトボックスでドキュメントページの画像を開き、1 つのページにある複数の画像に移動します。ライトボックスの画像サイズは、ドキュメントページの画像サイズと同じです。ズームアイコンをクリックすると、画像のサイズが画面に合わせて拡大されます。 | 外部 |
backstage-plugin-techdocs-module-addons-contrib
プラグインパッケージは、Red Hat がサポートするプリインストールアドオンと外部アドオンの両方を TechDocs プラグインにエクスポートします。このプラグインパッケージは、Red Hat Developer Hub にプリインストールされており、デフォルトで有効になっています。プラグインパッケージを無効にすると、パッケージによってエクスポートされるすべての TechDocs アドオンも無効になります。
3.1. TechDocs アドオンのインストールと設定
Red Hat がサポートする TechDocs アドオンは、`backstage-plugin-techdocs-module-addons-contrib` プラグインパッケージによって TechDocs プラグインにエクスポートされます。このプラグインパッケージは、Red Hat Developer Hub にプリインストールされ、デフォルトで有効になっています。<ReportIssue/>
アドオンはこのプラグインパッケージのデフォルト設定に含まれており、TechDocs プラグインですぐに使用できます。
インストールに Operator または Helm チャートを使用したかどうかに応じて、Red Hat Developer Hub の ConfigMap または Helm チャートで `backstage-plugin-techdocs-module-addons-contrib` プラグインパッケージを設定することで、サポートされている他の TechDocs アドオンをインストールできます。サポートされているアドオンの機能以外の TechDocs エクスペリエンスをカスタマイズする場合は、独自に作成したアドオンを含むサードパーティーのアドオンを TechDocs プラグインにインストールできます。
3.1.1. Operator を使用した外部 TechDocs アドオンのインストールと設定
動的プラグインを使用して、TechDocs アドオンを TechDocs プラグインにインポートできます。Red Hat Developer Hub Operator を使用して動的プラグインをインストールする場合は、ConfigMap のプラグインパッケージに TechDocs アドオンを追加できます。
ReportIssue
などのプリインストールされたアドオンは、デフォルトの backstage-plugin-techdocs-module-addons-contrib
パッケージ設定に含まれています。Red Hat がサポートする外部アドオンは、設定ファイルの techdocsAddons
セクションに手動で追加することでインストールします。
手順
- OpenShift Container Platform Web コンソールの Developer パースペクティブから、ConfigMaps > Create ConfigMap をクリックします。
- Create ConfigMap ページで、Configure via フィールドの YAML view オプションを選択します。
新しく作成した ConfigMap に、デフォルトの
backstage-plugin-techdocs-module-addons-contrib
パッケージ設定を追加します。以下に例を示します。kind: ConfigMap apiVersion: v1 metadata: name: dynamic-plugins-rhdh data: dynamic-plugins.yaml: | includes: - dynamic-plugins.default.yaml plugins: - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib disabled: false pluginConfig: dynamicPlugins: frontend: backstage.plugin-techdocs-module-addons-contrib: techdocsAddons: - importName: ReportIssue
kind: ConfigMap apiVersion: v1 metadata: name: dynamic-plugins-rhdh data: dynamic-plugins.yaml: | includes: - dynamic-plugins.default.yaml plugins: - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib disabled: false pluginConfig: dynamicPlugins: frontend: backstage.plugin-techdocs-module-addons-contrib: techdocsAddons: - importName: ReportIssue
Copy to Clipboard Copied! ConfigMap の
techdocsAddons
セクションで、指定したプラグインパッケージから追加する外部 TechDocs アドオンごとにimportName: <external_techdocs_add-on>
を追加します。以下に例を示します。kind: ConfigMap apiVersion: v1 metadata: name: dynamic-plugins-rhdh data: dynamic-plugins.yaml: | includes: - dynamic-plugins.default.yaml plugins: - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib disabled: false pluginConfig: dynamicPlugins: frontend: backstage.plugin-techdocs-module-addons-contrib: techdocsAddons: - importName: ReportIssue - importName: <external_techdocs_add-on>
kind: ConfigMap apiVersion: v1 metadata: name: dynamic-plugins-rhdh data: dynamic-plugins.yaml: | includes: - dynamic-plugins.default.yaml plugins: - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib disabled: false pluginConfig: dynamicPlugins: frontend: backstage.plugin-techdocs-module-addons-contrib: techdocsAddons: - importName: ReportIssue - importName: <external_techdocs_add-on>
Copy to Clipboard Copied! ここでは、以下のようになります。
- <external_techdocs_add-on>
-
インストールする外部 TechDocs アドオン (
TextSize
やLightBox
など) を指定します。
- Create をクリックします。
- Web コンソールのナビゲーションメニューで、Topology をクリックします。
- 使用する Red Hat Developer Hub インスタンスのオーバーフローメニューをクリックし、Edit Backstage を選択して、Red Hat Developer Hub インスタンスの YAML ビューを読み込みます。
Backstage
CR で、dynamicPluginsConfigMapName: <dynamic_plugins_configmap>
というキーと値のペアを追加します。以下に例を示します。apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage metadata: name: my-rhdh spec: application: # ... dynamicPluginsConfigMapName: _<dynamic_plugins_configmap>_ # ...
apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage metadata: name: my-rhdh spec: application: # ... dynamicPluginsConfigMapName: _<dynamic_plugins_configmap>_ # ...
Copy to Clipboard Copied! ここでは、以下のようになります。
- <dynamic_plugins_configmap>
-
Red Hat Developer Hub インスタンスの動的プラグイン ConfigMap の名前を指定します (例:
dynamic-plugins-rhdh
)。
- Save をクリックします。
- Web コンソールのナビゲーションメニューで、Topology をクリックし、Red Hat Developer Hub の Pod が起動するまで待ちます。
- Open URL アイコンをクリックして、新しい設定変更を適用した Red Hat Developer Hub プラットフォームの使用を開始します。
3.1.2. Helm チャートを使用した外部 TechDocs アドオンのインストールと設定
動的プラグインを使用して、TechDocs アドオンを TechDocs プラグインにインポートできます。Red Hat Developer Hub の Helm チャートを使用して動的プラグインをインストールする場合は、Helm チャートのプラグインパッケージに TechDocs アドオンを追加できます。
ReportIssue
などのプリインストールされたアドオンは、デフォルトの backstage-plugin-techdocs-module-addons-contrib
パッケージ設定に含まれています。Red Hat がサポートする外部アドオンは、設定ファイルの techdocsAddons
セクションに手動で追加することでインストールします。
前提条件
- TechDocs プラグインがインストールされ、有効になっている。
手順
Helm チャートを使用した動的プラグインのインストール に示されているように、Helm チャートで、動的プラグインをインストールするために必要な
global.dynamic
パラメーターを追加します。注記デフォルト設定には
dynamic-plugins.default.yaml
ファイルが含まれています。このファイルには、デフォルトで有効か無効かに関係なく、Red Hat Developer Hub にプリインストールされているすべての動的プラグイン (TechDocs アドオンを含む) が含まれています。Helm チャートで、デフォルトの
backstage-plugin-techdocs-module-addons-contrib
パッケージ設定を追加します。以下に例を示します。global: dynamic: plugins: - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib disabled: false pluginConfig: dynamicPlugins: frontend: backstage.plugin-techdocs-module-addons-contrib: techdocsAddons: - importName: ReportIssue
global: dynamic: plugins: - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib disabled: false pluginConfig: dynamicPlugins: frontend: backstage.plugin-techdocs-module-addons-contrib: techdocsAddons: - importName: ReportIssue
Copy to Clipboard Copied! Helm チャートの
techdocsAddons
セクションで、指定したプラグインパッケージから追加する外部 TechDocs アドオンごとにimportName: <external_techdocs_add-on>
を追加します。以下に例を示します。global: dynamic: plugins: - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib disabled: false pluginConfig: dynamicPlugins: frontend: backstage.plugin-techdocs-module-addons-contrib: techdocsAddons: - importName: ReportIssue - importName: <external_techdocs_add-on>
global: dynamic: plugins: - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib disabled: false pluginConfig: dynamicPlugins: frontend: backstage.plugin-techdocs-module-addons-contrib: techdocsAddons: - importName: ReportIssue - importName: <external_techdocs_add-on>
Copy to Clipboard Copied! ここでは、以下のようになります。
- <external_techdocs_add-on>
-
インストールする外部 TechDocs アドオン (
TextSize
やLightBox
など) を指定します。
3.1.3. サードパーティーの TechDocs アドオンのインストールと設定
互換性のあるサードパーティーの TechDocs アドオンを、フロントエンドの動的プラグインとして Red Hat Developer Hub インスタンスにインストールできます。
前提条件
-
サードパーティーの TechDocs アドオンのルートディレクトリーに、必要なすべてのメタデータと依存関係を含む有効な
package.json
ファイルがある。 - サードパーティーのプラグインが、OCI イメージ内の動的プラグインとしてパッケージ化されている。別のパッケージタイプは、Red Hat Developer Hub にサードパーティーのプラグインをインストールする を参照してください。
-
yarn
パッケージマネージャーがインストールされている。 - サードパーティーのプラグインが、OCI イメージ内の動的プラグインとしてパッケージ化されている。* Node.js と NPM がインストールされ、設定されています。
手順
次のコマンドを入力して、サードパーティーのアドオンをインポートするために使用するサードパーティーのプラグインをインストールします。
yarn install
yarn install
Copy to Clipboard Copied! - 使用するサードパーティーの TechDocs アドオンのソースコードを取得します。
次のコマンドを使用して、TechDocs アドオンを動的プラグインとしてエクスポートします。
npx @janus-idp/cli@latest package export-dynamic-plugin
npx @janus-idp/cli@latest package export-dynamic-plugin
Copy to Clipboard Copied! 注記@latest
タグは、最新の機能および修正と互換性のある最新バージョンの @janus-idp/cli パッケージを取得します。Red Hat Developer Hub のバージョンと互換性のあるバージョンを使用してください。サードパーティーの TechDocs アドオンを動的プラグインとしてパッケージ化するために、プラグインが保存されているルートディレクトリー (dist-dynamic ディレクトリーではない) に移動し、
--tag
オプションを指定してnpx
コマンドを実行し、イメージ名とタグを指定します。以下に例を示します。npx @janus-idp/cli@latest package package-dynamic-plugins --tag quay.io/<user_name>/<techdocs_add-on_image>:latest
npx @janus-idp/cli@latest package package-dynamic-plugins --tag quay.io/<user_name>/<techdocs_add-on_image>:latest
Copy to Clipboard Copied! 注記package-dynamic-plugins コマンドの出力に、
dynamic-plugin-config.yaml
ファイルで使用するプラグインへのファイルパスが表示されます。サードパーティーの TechDocs アドオンを Quay リポジトリーに公開するために、お使いの仮想化ツールに応じて次のいずれかのコマンドを使用して、イメージをレジストリーにプッシュします。
podman
を使用するには、次のコマンドを入力します。podman push quay.io/<user_name>/<techdocs_add-on_image>:latest
podman push quay.io/<user_name>/<techdocs_add-on_image>:latest
Copy to Clipboard Copied! docker
を使用するには、次のコマンドを入力します。docker push quay.io/<user_name>/<techdocs_add-on_image>:latest
docker push quay.io/<user_name>/<techdocs_add-on_image>:latest
Copy to Clipboard Copied!
dynamic-plugins.yaml
ファイルを開き、サードパーティーの TechDocs アドオンの設定を表示または変更します。以下に例を示します。plugins: - package: oci://quay.io/<user_name>/<techdocs_add-on_image>:latest!<techdocs_add-on_package> disabled: false pluginConfig: dynamicPlugins: frontend: <techdocs_add-on_package> techdocsAddons: - importName: <third-party_add-on_name> config: props: <techdocs_add-on_property_key>: <techdocs_add-on_property_value>
plugins: - package: oci://quay.io/<user_name>/<techdocs_add-on_image>:latest!<techdocs_add-on_package> disabled: false pluginConfig: dynamicPlugins: frontend: <techdocs_add-on_package> techdocsAddons: - importName: <third-party_add-on_name> config: props: <techdocs_add-on_property_key>: <techdocs_add-on_property_value>
Copy to Clipboard Copied! 以下は、
- <user_name>
- Quay ユーザー名または組織名を指定します。
- <techdocs_add-on_image>
-
使用するサードパーティーアドオンのイメージの名前を指定します (例:
mermaid
)。 - <techdocs_add-on_package>
-
パッケージを指定します (例:
backstage-plugin-techdocs-addon-mermaid
)。 - <third-party_add-on_name>
-
使用するサードパーティーアドオンの名前を指定します (例:
Mermaid
)。 - <techdocs_add-on_property_key>
-
サードパーティーアドオンに渡すことができるカスタムプロパティーの名前 (例:
themeVariables
) を指定します。プロパティーは各アドオンに固有です。1 つのアドオンに対して複数のプロパティーをリストできます。 - <techdocs_add-on_property_value>
-
サードパーティーアドオンのプロパティーキーの値を指定します (例:
lineColor: #000000
)。