Red Hat Developer Hub 的 5-4
使用 TechDocs 插件在一个位置读取和管理团队的技术文档。通过附加组件进一步增强并自定义 TechDocs 体验
摘要
第 1 章 关于 TechDocs 复制链接链接已复制到粘贴板!
Red Hat Developer Hub 实例会预安装并启用 TechDocs 插件。您的组织可以使用 TechDocs 插件在中央位置并以标准化的方式创建、查找和管理文档。您还可以使用内置 TechDocs 功能和附加组件来增强您的技术文档体验。例如:
- 文档类代码方法
- 在 Markdown 文件中编写存储在项目存储库中的技术文档以及您的代码。
- 文档站点生成
- 使用 MkDocs 为您的在 Developer Hub 中呈现的文档创建一个功能全面、基于 Markdown 的静态 HTML 站点。
- 文档站点元数据和集成
- 请参阅有关文档站点的额外元数据以及静态文档,如最后一次更新的日期、站点所有者、顶级贡献者、打开 GitHub 问题、Slack 支持频道和 Stack Overflow Enterprise 标签。
- 内置导航和搜索
- 在文档内快速轻松地找到您所需的信息。
- 附加组件
- 将您的文档的功能更强,与支持的 TechDocs 附加组件交互。默认情况下,预装并启用一些附加组件。要扩展默认功能,您可以在 Red Hat Developer Hub 实例中动态加载外部和第三方附加组件。如果要进一步自定义 TechDocs 体验,您可以创建满足您的机构特定文档需求的附加组件。
第 2 章 wagon 配置 复制链接链接已复制到粘贴板!
TechDocs 插件是预安装并在 Developer Hub 实例上启用的。您可以通过配置 Red Hat Developer Hub Helm chart 或 Red Hat Developer Hub Operator ConfigMap 来禁用或启用 TechDocs 插件并更改其他参数。
Red Hat Developer Hub 包括一个内置的 TechDocs 构建器,它从您的代码库中生成静态 HTML 文档。但是,本地构建器的默认基本设置不适用于生产环境。
您可以将 CI/CD 管道与具有专用作业的存储库搭配使用,为 TechDocs 生成文档。生成的静态文件存储在 OpenShift Data Foundation 中,或存储在您选择的云存储解决方案中,并发布到静态 HTML 文档站点。
将 OpenShift Data Foundation 配置为存储 TechDocs 生成的文件后,您可以配置 TechDocs 插件,以使用 OpenShift Data Foundation 进行云存储。
2.1. 为 TechDocs 文件配置存储 复制链接链接已复制到粘贴板!
TechDocs 发布程序将生成的文件存储在本地存储或云存储中,如 OpenShift Data Foundation、Google GCS、AWS S3 或 Azure Blob Storage。
2.1.1. 使用 OpenShift Data Foundation 进行文件存储 复制链接链接已复制到粘贴板!
您可以配置 OpenShift Data Foundation 以存储 TechDocs 生成的文件,而不依赖于其他云存储解决方案。
OpenShift Data Foundation 提供了一个 ObjectBucketClaim 自定义资源(CR),您可以使用它来请求 S3 兼容存储桶后端。您必须安装 OpenShift Data Foundation Operator 来使用此功能。
+
对于 air-gapped 环境,使用 OpenShift Data Foundation 是 TechDocs 的建议存储。
先决条件
- OpenShift Container Platform 管理员已在 Red Hat OpenShift Container Platform 中安装了 OpenShift Data Foundation Operator。如需更多信息,请参阅 OpenShift Container Platform - 安装 Red Hat OpenShift Data Foundation Operator。
-
OpenShift Container Platform 管理员已创建了 OpenShift Data Foundation 集群并配置了
StorageSystem模式。如需更多信息,请参阅 OpenShift Container Platform - 创建 OpenShift Data Foundation 集群。
流程
创建一个
ObjectBucketClaimCR,其中存储了生成的 TechDocs 文件。例如:apiVersion: objectbucket.io/v1alpha1 kind: ObjectBucketClaim metadata: name: <rhdh_bucket_claim_name> spec: generateBucketName: <rhdh_bucket_claim_name> storageClassName: openshift-storage.noobaa.io注意创建 Developer Hub
ObjectBucketClaimCR 会自动创建 Developer HubObjectBucketClaim配置映射和 secret。配置映射和 secret 的名称与ObjectBucketClaimCR 的名称相同。
创建 ObjectBucketClaim CR 后,您可以使用配置映射和 secret 中存储的信息,使 Developer Hub 容器可以作为环境变量访问这些信息。根据用来安装 Developer Hub 的方法,您可以将访问信息添加到 Red Hat Developer Hub Helm Chart 或 Operator 配置中。
2.1.2. 使用 Helm Chart 使对象存储可供容器访问 复制链接链接已复制到粘贴板!
创建 ObjectBucketClaim 自定义资源(CR)会自动生成 Developer Hub ObjectBucketClaim 配置映射和 secret。配置映射和 secret 包含 ObjectBucket 访问信息。在 Helm Chart 配置中添加访问信息可使 Developer Hub 容器访问它,方法是将以下环境变量添加到容器中:
-
BUCKET_NAME -
BUCKET_HOST -
BUCKET_PORT -
BUCKET_REGION -
BUCKET_SUBREGION -
AWS_ACCESS_KEY_ID -
AWS_SECRET_ACCESS_KEY
然后,在 TechDocs 插件配置中使用这些变量。
先决条件
- 已使用 Helm Chart 在 OpenShift Container Platform 上安装 Red Hat Developer Hub。
-
您已创建了
ObjectBucketClaimCR 来存储 TechDocs 生成的文件。如需更多信息,请参阅使用 OpenShift Data Foundation 进行文件存储
流程
在 Helm Chart 值中的
upstream.backstage键中,输入 Developer HubObjectBucketClaimsecret 的名称,作为extraEnvVarsSecrets字段的值和extraEnvVarsCM字段。例如:upstream: backstage: extraEnvVarsSecrets: - <rhdh_bucket_claim_name> extraEnvVarsCM: - <rhdh_bucket_claim_name>
2.1.2.1. Helm Chart 的 TechDocs 插件配置示例 复制链接链接已复制到粘贴板!
以下示例显示了 TechDocs 插件的 Developer Hub Helm Chart 配置:
global:
dynamic:
includes:
- 'dynamic-plugins.default.yaml'
plugins:
- disabled: false
package: ./dynamic-plugins/dist/backstage-plugin-techdocs-backend-dynamic
pluginConfig:
techdocs:
builder: external
generator:
runIn: local
publisher:
awsS3:
bucketName: '${BUCKET_NAME}'
credentials:
accessKeyId: '${AWS_ACCESS_KEY_ID}'
secretAccessKey: '${AWS_SECRET_ACCESS_KEY}'
endpoint: 'https://${BUCKET_HOST}'
region: '${BUCKET_REGION}'
s3ForcePathStyle: true
type: awsS3
2.1.3. 使用 Operator 使容器可以访问对象存储 复制链接链接已复制到粘贴板!
创建 ObjectBucketClaim 自定义资源(CR)会自动生成 Developer Hub ObjectBucketClaim 配置映射和 secret。配置映射和 secret 包含 ObjectBucket 访问信息。在 Operator 配置中添加访问信息可使 Developer Hub 容器访问它,方法是将以下环境变量添加到容器中:
-
BUCKET_NAME -
BUCKET_HOST -
BUCKET_PORT -
BUCKET_REGION -
BUCKET_SUBREGION -
AWS_ACCESS_KEY_ID -
AWS_SECRET_ACCESS_KEY
然后,在 TechDocs 插件配置中使用这些变量。
先决条件
- 已使用 Operator 在 OpenShift Container Platform 上安装 Red Hat Developer Hub。
-
您已创建了
ObjectBucketClaimCR 来存储 TechDocs 生成的文件。
流程
在
BackstageCR 中,输入 Developer HubObjectBucketClaim配置映射的名称作为spec.application.extraEnvs.configMaps字段的值,并输入 Developer HubObjectBucketClaimsecret 名称作为spec.application.extraEnvs.secrets字段的值。例如:apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage metadata: name: <name> spec: application: extraEnvs: configMaps: - name: <rhdh_bucket_claim_name> secrets: - name: <rhdh_bucket_claim_name>
2.1.3.1. Operator 的 TechDocs 插件配置示例 复制链接链接已复制到粘贴板!
以下示例显示了 TechDocs 插件的 Red Hat Developer Hub Operator 配置映射配置:
kind: ConfigMap
apiVersion: v1
metadata:
name: dynamic-plugins-rhdh
data:
dynamic-plugins.yaml: |
includes:
- dynamic-plugins.default.yaml
plugins:
- disabled: false
package: ./dynamic-plugins/dist/backstage-plugin-techdocs-backend-dynamic
pluginConfig:
techdocs:
builder: external
generator:
runIn: local
publisher:
awsS3:
bucketName: '${BUCKET_NAME}'
credentials:
accessKeyId: '${AWS_ACCESS_KEY_ID}'
secretAccessKey: '${AWS_SECRET_ACCESS_KEY}'
endpoint: 'https://${BUCKET_HOST}'
region: '${BUCKET_REGION}'
s3ForcePathStyle: true
type: awsS3
2.2. 配置 CI/CD 以生成和发布 TechDocs 站点 复制链接链接已复制到粘贴板!
xmlrpc 从云存储桶(如 OpenShift Data Foundation)读取静态生成的文档文件。文档站点在与包含文档文件的存储库关联的 CI/CD 工作流上生成。您可以使用 HEKETI -cli CLI 工具在 CI 上生成文档 并发布到云存储。
您可以使用以下示例为 TechDocs 出版物创建一个脚本:
# Prepare
REPOSITORY_URL='https://github.com/org/repo'
git clone $REPOSITORY_URL
cd repo
# Install @techdocs/cli, mkdocs and mkdocs plugins
npm install -g @techdocs/cli
pip install "mkdocs-techdocs-core==1.*"
# Generate
techdocs-cli generate --no-docker
# Publish
techdocs-cli publish --publisher-type awsS3 --storage-name <bucket/container> --entity <Namespace/Kind/Name>
当用户在包含文档文件的存储库中进行更改时,TechDocs 工作流会启动 CI。您只能将工作流配置为仅在 docs/ 目录或 mkdocs.yml 中的文件改变时启动。
2.2.1. 为 CI 准备存储库 复制链接链接已复制到粘贴板!
CI 的第一步是将文档源存储库克隆到工作目录中。
流程
要在工作目录中克隆您的文档源存储库,请输入以下命令:
git clone <https://path/to/docs-repository/>
2.2.2. 生成 TechDocs 网站 复制链接链接已复制到粘贴板!
流程
要将 CI/CD 配置为生成 HEKETI,请完成以下步骤:
使用以下命令安装
npx软件包以运行 HEKETI-cli:npm install -g npx使用以下命令安装
HEKETI-cli工具:npm install -g @techdocs/cli使用以下命令安装
mkdocs插件:pip install "mkdocs-techdocs-core==1.*"使用以下命令生成 HEKETI 站点:
npx @techdocs/cli generate --no-docker --source-dir <path_to_repo> --output-dir ./site其中 <
path_to_repo> 是用来克隆存储库的文件路径中的位置。
2.2.3. 发布 TechDocs 网站 复制链接链接已复制到粘贴板!
流程
要发布您的 HEKETI 网站,请完成以下步骤:
- 为您的云存储供应商设置必要的身份验证环境变量。
使用以下命令发布您的 HEKETI :
npx @techdocs/cli publish --publisher-type <awsS3|googleGcs> --storage-name <bucket/container> --entity <namespace/kind/name> --directory ./site在软件模板中添加
.github/workflows/wagon.yml文件。例如:name: Publish TechDocs Site on: push: branches: [main] # You can even set it to run only when TechDocs related files are updated. # paths: # - "docs/**" # - "mkdocs.yml" jobs: publish-techdocs-site: runs-on: ubuntu-latest # The following secrets are required in your CI environment for publishing files to AWS S3. # e.g. You can use GitHub Organization secrets to set them for all existing and new repositories. env: TECHDOCS_S3_BUCKET_NAME: ${{ secrets.TECHDOCS_S3_BUCKET_NAME }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: ${{ secrets.AWS_REGION }} ENTITY_NAMESPACE: 'default' ENTITY_KIND: 'Component' ENTITY_NAME: 'my-doc-entity' # In a Software template, Scaffolder will replace {{cookiecutter.component_id | jsonify}} # with the correct entity name. This is same as metadata.name in the entity's catalog-info.yaml # ENTITY_NAME: '{{ cookiecutter.component_id | jsonify }}' steps: - name: Checkout code uses: actions/checkout@v3 - uses: actions/setup-node@v3 - uses: actions/setup-python@v4 with: python-version: '3.9' - name: Install techdocs-cli run: sudo npm install -g @techdocs/cli - name: Install mkdocs and mkdocs plugins run: python -m pip install mkdocs-techdocs-core==1.* - name: Generate docs site run: techdocs-cli generate --no-docker --verbose - name: Publish docs site run: techdocs-cli publish --publisher-type awsS3 --storage-name $TECHDOCS_S3_BUCKET_NAME --entity $ENTITY_NAMESPACE/$ENTITY_KIND/$ENTITY_NAME
第 3 章 使用 TechDocs 复制链接链接已复制到粘贴板!
TechDocs 插件默认在 Red Hat Developer Hub 实例上安装并启用。在管理员配置 TechDocs 插件后,授权开发人员可使用 TechDocs 插件添加、查看或管理文档。
3.1. 在 TechDocs 中添加文档 复制链接链接已复制到粘贴板!
在管理员配置 TechDocs 插件后,开发人员可以从远程存储库导入它来向 TechDocs 添加文档。任何授权用户或组都可以访问导入到 TechDocs 插件中的文档。
3.1.1. 从远程存储库将文档导入到 TechDocs 复制链接链接已复制到粘贴板!
团队可以将其文档文件存储在存储其代码文件的同一个远程存储库中。您可以从包含团队使用的文档文件的远程存储库将文档导入到您的 TechDocs 插件中。
先决条件
- 您的组织包含存储在远程存储库中的文档文件。
-
在存储库的根目录中有一个
mkdocs.yaml文件。 -
您有
catalog.entity.create和catalog.location.create权限,从远程存储库将文档导入到 TechDocs 中。
流程
- 在 Red Hat Developer Hub 实例中,点 Catalog > Self-service > Register Existing Component。
在 Select URL 框中,使用以下格式输入您要从存储库导入的
catalog-info.yaml文件的 URL:https://github.com/<project_name> /<repo_name> /blob/<branch_name> /<file_directory> /catalog-info.yaml- 点 Analyze
- 点 Finish
验证
- 在 Red Hat Developer Hub 导航菜单中,单击 Docs。
- 验证您导入的文档是否在 Documentation 页面的表中列出。
3.2. 在 TechDocs 中找到文档 复制链接链接已复制到粘贴板!
默认情况下,TechDocs 插件 文档 页面显示您的组织已导入到 Red Hat Developer Hub 实例中的所有文档。您可以使用以下方法的任意组合来查找您要查看的文档:
- 在搜索栏中输入关键字以查看在文档中任何位置包含关键字的所有文档。
- 根据 Owner 过滤,以查看您机构中特定用户或组所拥有的文档。
- 根据 标签过滤,以仅查看包含特定标签的文档。
- 按 自带过滤,仅查看您拥有或属于某个组的文档
- 按 Starred 过滤以查看您添加到热门的文档。
默认情况下,All 字段显示已导入到 TechDocs 的文档总数。如果您搜索或使用过滤器,All 字段会显示满足您应用的搜索和过滤条件的文档数量。
先决条件
- 启用并配置的 TechDocs 插件
- 文档导入到 TechDocs 中
- 您有所需的角色和权限来添加和查看 TechDocs 文档
流程
- 在 Red Hat Developer Hub 导航菜单中,单击 Docs。
- 在 Documentation 页面中,使用搜索栏、过滤器或两者来查找您要查看的文档。
3.3. 查看 TechDocs 的文档 复制链接链接已复制到粘贴板!
在 TechDocs 中,文档可能是一个书的一部分,其中包含与同一主题相关的其他文档。
单击 Documentation 页面上的表中的文档名称,可在本书页面中打开文档。本书的名称显示在页面的图书上。本书页面包含以下元素:
- 文档的内容。
- 可用于搜索文档中的关键字的搜索栏。
- 可用于导航到本书中其他文档的导航菜单。
- 可用于 导航到文档其他部分的内容表。
- 一个 Next 按钮,您可以使用这个按钮来导航到本书的下一个后续文档。
您可以使用书页中的元素搜索、查看和浏览本书中的文档。
先决条件
- 启用并配置的 TechDocs 插件
- 文档导入到 TechDocs 中
- 您有所需的角色和权限来添加和查看 TechDocs 文档
- 可选:安装并配置 TechDocs 附加组件
流程
- 在 Red Hat Developer Hub 导航菜单中,单击 Docs。
- 在 Documentation 表中,点击您要查看的文档的名称。
在本书页面中,您可以执行以下操作之一:
- 使用安装扩展默认 TechDocs 插件功能的附加组件。
- 使用搜索栏查找文档中的关键字。
使用以下任一方法浏览本书中的文档:
- 使用表的内容 浏览文档的任何部分。
- 使用导航菜单导航到本书中的任何文档。
- 单击 Next 以导航到本书中的下一个后续文档。
其他资源
3.4. 编辑 TechDocs 中的文档 复制链接链接已复制到粘贴板!
您可以从文档书页直接编辑 TechDocs 插件中的文档。您所在机构中的任何授权用户可以编辑文档,无论他们是文档的所有者。
流程
- 在 Red Hat Developer Hub 导航菜单中,单击 Docs。
- 在 Documentation 表中,点击您要编辑的文档的名称。
- 在文档中,点 Edit this page 图标打开远程存储库中的文档。
- 在远程存储库中,根据需要编辑文档。
- 使用存储库供应商 UI 和常规团队流程来提交和合并您的更改。
第 4 章 wagon 附加组件 复制链接链接已复制到粘贴板!
Problem add-ons 是扩展内置 TechDocs 插件功能的动态插件。例如,您可以使用附加组件报告文档问题、更改文本大小或在 TechDocs Reader 页面或 Entity 页面中查看覆盖中的镜像。
下表描述了 Red Hat Developer Hub 1.6 可用的 TechDocs 附加组件:
| wagon 附加组件 | package/Plugin | 描述 | 类型 |
|---|---|---|---|
|
|
| 在 TechDocs 页面中选择一部分文本,并针对包含文档的存储库打开问题。issue 模板自动填充所选文本。 | 预安装 |
|
|
| 通过使用滑块或按钮增加或减少字体大小,在文档页面上自定义文本大小。字体大小为 100%,此设置会在浏览器的本地存储被改变时保存在浏览器的本地存储中。 | 外部 |
|
|
| 在文档页面的 light-box 中打开镜像,以导航到单个页面上的多个镜像。light-box 镜像的镜像大小与文档页面中的镜像大小相同。点缩放图标会增加镜像大小以适应屏幕。 | 外部 |
backstage-plugin-wagon-module-addons-contrib 插件软件包会将红帽提供的预安装和外部附加组件导出到 TechDocs 插件。此插件软件包在 Red Hat Developer Hub 上预安装,并默认启用。如果禁用了插件软件包,则软件包导出的所有 TechDocs 附加组件也会被禁用。
4.1. 安装和配置 TechDocs 附加组件 复制链接链接已复制到粘贴板!
红帽支持的"backstage-plugin-5-4-module-addons-module-addons-contrib"插件软件包(在 Red Hat Developer Hub 上预安装并默认启用)后,红帽支持的附加组件会被导出到 TechDocs 插件中。& lt;Report Isue /> 附加组件是此插件软件包的默认配置的一部分,可在 TechDocs 插件中使用。
您可以通过配置 Red Hat Developer Hub ConfigMap 或 Helm chart 中的'backstage-plugin-wagon-module-addons-contrib' 插件软件包来安装其他支持的 TechDocs 附加组件,具体取决于您使用的 Operator 或 Helm Chart 进行安装。如果要在支持的附加组件之外自定义 TechDocs 体验,您可以在 TechDocs 插件上安装第三方附加组件,包括您自己创建的附加组件。
4.1.1. 使用 Operator 安装和配置外部 TechDocs 附加组件 复制链接链接已复制到粘贴板!
您可以使用动态插件将 TechDocs 附加组件导入到 TechDocs 插件中。如果使用 Red Hat Developer Hub Operator 安装动态插件,您可以在 ConfigMap 中的 plugin 软件包中添加 TechDocs 附加组件。
预安装附加组件(如 ReportIssue )包含在默认的 backstage-plugin-5-4-module-addons-contrib 软件包中 配置中。红帽支持的外部附加组件通过将它们添加到配置文件的 HEKETI Addons 部分来安装。
流程
- 从 OpenShift Container Platform Web 控制台中的 Developer 视角,点 ConfigMaps > Create ConfigMap。
- 在 Create ConfigMap 页面中,在 Configure via 字段中选择 YAML view 选项。
在新创建的 ConfigMap 中,添加默认的
backstage-plugin- swig-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在 ConfigMap
的 HEKETIAddons部分中,为您要从指定插件软件包添加的每个外部 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>其中:
- <external_techdocs_add-on>
-
指定要安装的外部 TechDocs 附加组件,如
TextSize或LightBox。
- 点 Create。
- 在 Web 控制台导航菜单中,单击 Topology。
- 点您要使用的 Red Hat Developer Hub 实例的溢出菜单,然后选择 Edit Backstage 以加载 Red Hat Developer Hub 实例的 YAML 视图。
在
BackstageCR 中,添加dynamicPluginsConfigMapName: & lt;dynamic_plugins_configmap> 键值对。例如:apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage metadata: name: my-rhdh spec: application: # ... dynamicPluginsConfigMapName: _<dynamic_plugins_configmap>_ # ...其中:
- <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 平台以及新的配置更改。
4.1.2. 使用 Helm Chart 安装和配置外部 TechDocs 附加组件 复制链接链接已复制到粘贴板!
您可以使用动态插件将 TechDocs 附加组件导入到 TechDocs 插件中。如果使用 Red Hat Developer Hub Helm Chart 安装动态插件,您可以在 Helm chart 的 plugin 软件包中添加 TechDocs 附加组件。
预安装附加组件(如 ReportIssue )包含在默认的 backstage-plugin-5-4-module-addons-contrib 软件包中 配置中。红帽支持的外部附加组件通过将它们添加到配置文件的 HEKETI Addons 部分来安装。
先决条件
- TechDocs 插件已安装并启用。
流程
在 Helm Chart 中,添加安装动态插件所需的
global.dynamic参数,如使用 Helm Chart 安装动态插件 所示注意默认配置包含
dynamic-plugins.default.yaml文件,其中包含所有动态插件,包括 TechDocs 附加组件,这些插件已在 Red Hat Developer Hub 中预安装,无论是默认启用还是禁用。在 Helm Chart 中,添加默认的
backstage-plugin-5-4-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在 Helm Chart 的 HEKETI
Addons部分中,为您要从指定插件软件包添加的每个外部 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>其中:
- <external_techdocs_add-on>
-
指定要安装的外部 TechDocs 附加组件,如
TextSize或LightBox。
4.1.3. 安装和配置第三方 TechDocs 附加组件 复制链接链接已复制到粘贴板!
您可以作为前端动态插件在 Red Hat Developer Hub 实例上安装兼容的第三方 TechDocs 附加组件。
先决条件
-
第三方 TechDocs 附加组件在其根目录中有一个有效的
package.json文件,其中包含所有必需的元数据和依赖项。 - 第三方插件打包在 OCI 镜像中作为动态插件。有关替代软件包类型,请参阅在 Red Hat Developer Hub 中安装第三方插件。
-
已安装
yarn软件包管理器。 - 第三方插件被打包为 OCI 镜像 configured and configured Node.js 和 NPM 中的动态插件。
流程
输入以下命令安装您要用来导入第三方附加组件的第三方插件:
yarn install- 获取您要使用的第三方 TechDocs 附加组件的源代码。
使用以下命令将 TechDocs 附加组件导出为动态插件:
npx @janus-idp/cli@latest package export-dynamic-plugin注意@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注意package-dynamic-plugins 命令的输出提供了插件的文件路径,以便在
dynamic-plugin-config.yaml文件中使用。要将第三方 TechDocs 附加组件发布到 Quay 存储库,请使用以下其中一个命令将镜像推送到 registry,具体取决于您的虚拟化工具:
要使用
podman,请输入以下命令:podman push quay.io/<user_name>/<techdocs_add-on_image>:latest要使用
docker,请输入以下命令:docker push quay.io/<user_name>/<techdocs_add-on_image>:latest
打开您的
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>其中
- <user_name>
- 指定您的 Quay 用户名或机构名称。
- <techdocs_add-on_image>
-
指定要使用的第三方附加组件的镜像名称,例如
mermaid。 - <techdocs_add-on_package>
-
指定,例如
backstage-plugin-5-4-addon-mermaid。 - <third-party_add-on_name>
-
指定您要使用的第三方附加组件的名称,例如
Mermaid。 - <techdocs_add-on_property_key>
-
指定可传递给第三方附加组件的自定义属性名称,例如,me
Variables。属性特定于每个附加组件。您可以列出附加组件的多个属性。 - <techdocs_add-on_property_value>
-
指定第三方附加组件的 property 键的值,例如
lineColor: #000000。
4.2. 删除 TechDocs 附加组件 复制链接链接已复制到粘贴板!
管理员可以根据用于安装该附加组件的方法,使用 Operator 或 Helm Chart 从 Red Hat Developer Hub 实例中删除已安装的 TechDocs 附加组件。如果使用 Operator 安装附加组件,请将其从 ConfigMap 中删除。如果您使用 Helm Chart 安装附加组件,请将其从 Helm Chart 中删除。
如果要禁用插件,而不是从 Red Hat Developer Hub 实例中删除插件,您可以禁用用于导入 TechDocs 附加组件的插件。由于 禁用 的状态在插件级别上控制,因此禁用插件会禁用指定插件软件包中的所有 TechDocs 附加组件。
4.2.1. 从 ConfigMap 中删除外部 TechDocs 附加组件 复制链接链接已复制到粘贴板!
如果您不再使用从使用 Operator 在 Red Hat Developer Hub 实例上安装的特定插件导入的 TechDocs 附加组件的功能,您可以临时禁用它或从 ConfigMap 中永久删除。禁用 的状态在插件级别上控制,因此禁用插件会禁用禁用插件软件包中的所有 TechDocs 附加组件。
流程
- 从 OpenShift Container Platform Web 控制台中的 Developer 视角,点 ConfigMaps。
- 在 ConfigMap 页面中,点击包含您要删除的 TechDocs 附加组件的 ConfigMap。
- 在 Configure via 字段中选择 YAML view 选项。
在 ConfigMap 的
plugins部分,根据您要禁用还是删除 TechDocs 附加组件来执行以下操作之一:要临时禁用特定插件软件包中的所有 TechDocs 附加组件,请将
disabled字段的值更改为true。例如: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: true pluginConfig: dynamicPlugins: frontend: backstage.plugin-techdocs-module-addons-contrib: techdocsAddons: - importName: ReportIssue - importName: <external_techdocs_add-on>其中:
- <external_techdocs_add-on>
-
指定您要删除的外部 TechDocs 附加组件,如
TextSize。
要从 Red Hat Developer Hub 实例中删除一个或多个 TechDocs 附加组件,请删除
您要从 ConfigMap 的 HEKETI附加组件。例如:Addons 部分中删除 importName: <external_techdocs_add-on>的每个外部 TechDocskind: 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>其中:
- <external_techdocs_add-on>
-
指定您要删除的外部 TechDocs 附加组件,如
TextSize。
- 点击 Save。
- 在 Web 控制台导航菜单中,点 Topology 并等待 Red Hat Developer Hub pod 启动。
- 点 Open URL 图标以使用 Red Hat Developer Hub 平台以及新的配置更改。
4.2.2. 从 Helm Chart 中删除外部 TechDocs 附加组件 复制链接链接已复制到粘贴板!
如果您不再使用从带有 Helm Chart 安装的 Red Hat Developer Hub 实例上安装的特定插件导入的 TechDocs 附加组件的功能,您可以临时禁用它或从 Helm Chart 中删除。禁用 的状态在插件级别上控制,因此禁用插件会禁用禁用插件软件包中的所有 TechDocs 附加组件。
流程
在 Helm Chart 的
plugins部分,根据您要禁用还是删除 TechDocs 附加组件来执行以下操作之一:要临时禁用特定插件软件包中的所有 TechDocs 附加组件,请将
disabled字段的值更改为true。例如:global: dynamic: plugins: - package: ./dynamic-plugins/dist/backstage-plugin-techdocs-module-addons-contrib disabled: true pluginConfig: dynamicPlugins: frontend: backstage.plugin-techdocs-module-addons-contrib: techdocsAddons: - importName: ReportIssue - importName: <external_techdocs_add-on>其中:
- <external_techdocs_add-on>
-
指定您要删除的外部 TechDocs 附加组件,如
TextSize。
要从 Red Hat Developer Hub 实例中删除一个或多个 TechDocs 附加组件,请删除
您要从 Helm Chart 的 HEKETI附加组件。例如:Addons 部分中删除 importName: <external_techdocs_add-on>的每个外部 TechDocsglobal: 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>其中:
- <external_techdocs_add-on>
-
指定您要删除的外部 TechDocs 附加组件,如
TextSize。
4.3. 使用 TechDocs 附加组件 复制链接链接已复制到粘贴板!
在管理员在 Red Hat Developer Hub 实例中安装 TechDocs 附加组件后,您可以使用它来扩展 TechDocs 插件的功能,并增强您的文档体验。
4.3.1. 使用 ReportIssue TechDocs 附加组件 复制链接链接已复制到粘贴板!
如果您在机构的 TechDocs 文档中发现错误,您可以使用 ReportIssue 附加组件直接打开新的 GitHub 或 GitLab 问题。Report Isue 自动导入您在仓库中突出显示的文档中的文本。
先决条件
-
在 TechDocs 插件中安装并启用
ReportIssue附加组件。 - 您有在报告文档问题的存储库中创建问题的权限。
流程
- 在您的 TechDocs 文档中,突出显示您要报告问题的文本。
-
单击
ReportIssue框中的文本,如 Open new GitHub issue。 在存储库中的新问题页面中,使用模板来创建您要报告的问题。
注意默认问题标题为 Documentation feedback: < ;highlighted_text& gt;,其中 < ;highlighted_text > 是您在 TechDocs 文档中突出显示的文本。
在问题描述中,<highlighted_text > 是 The highlighted text 字段的默认值。
验证
- 您创建的问题会在仓库中的 issues 页面中列出。
4.3.2. 使用 TextSize TechDocs 附加组件 复制链接链接已复制到粘贴板!
您可以使用 TextSize 附加组件来更改 TechDocs Reader 页面或 Entity 页面中的文本大小。
先决条件
-
TextSize附加组件已在 TechDocs 插件中安装并启用。
流程
- 在 TechDocs 标头中,点 Settings 图标。
使用滑块调整文档文本的大小。
注意- 默认文本大小为 100%
- 最小化文本大小为 90%
- 最大文本大小为 150%
4.3.3. 使用 LightBox TechDocs 附加组件 复制链接链接已复制到粘贴板!
如果您的 TechDocs 文档包含一个镜像,您可以使用 LightBox 附加组件在 lightbox 或 overlay 窗口中查看镜像的放大版本。您还可以缩放来更改 lightbox 镜像的大小。如果单个文档页面包含多个镜像,您可以在 lightbox 中的镜像之间进行导航。
先决条件
-
LightBox附加组件已在 TechDocs 插件中安装并启用。
流程
- 在您的 TechDocs 文档中,点您要在 lightbox 中查看的镜像。
在 lightbox 中,您可以执行以下操作:
- 点镜像或滚动以缩放或缩放。
- 点箭头在镜像间导航。
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-wagon-react' 软件包以获取 TechDocs 附加组件的 frontend 工具。例如:
yarn add @backstage/plugin-techdocs-react-
在包含自定义 TechDocs 附加组件组件的目录中,删除附加组件不需要的所有默认文件或文件组件,如
index.tsx和plugins.ts文件的routes.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>
- 指定将 TechDocs 附加组件导入到 Red Hat Developer Hub 实例的新插件。
- <new_techdocs_add-on>
- 指定您要创建的自定义 TechDocs 附加组件。
- <new_techdocs_addon_props> (Optional)
-
指定新 TechDocs 附加组件的
props,如 <new_wagon_add-on>.tsx文件(如果适用)。 - <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_wagon_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> (Optional)
-
指定新 TechDocs 附加组件的
props,如 <new_wagon_add-on>.tsx文件(如果适用)。
-
在
plugins.ts文件中,导入新的 TechDocs 附加组件组件。 - 按照安装和配置 TechDocs 附加组件中的步骤 安装和配置新的 TechDocs 附加组件
验证
- 重启 RHDH 应用程序,并验证插件是否已成功激活和配置。
- 验证应用程序日志以确认,并确保插件按预期工作。