Red Hat Developer Hub 的 5-4


Red Hat Developer Hub 1.6

使用 TechDocs 插件在一个位置读取和管理团队的技术文档。通过附加组件进一步增强并自定义 TechDocs 体验

Red Hat Customer Content Services

摘要

您的组织可以使用 Red Hat Developer Hub (RHDH)的内置 TechDocs 插件在中央位置和标准化的方式创建、查找和使用技术文档。文档文件与您的代码一起存储,并在 Docs 选项卡中呈现。使用支持的 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 的建议存储。

先决条件

流程

  • 创建一个 ObjectBucketClaim CR,其中存储了生成的 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 ObjectBucketClaim CR 会自动创建 Developer Hub ObjectBucketClaim 配置映射和 secret。配置映射和 secret 的名称与 ObjectBucketClaim CR 的名称相同。

创建 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 值中的 upstream.backstage 键中,输入 Developer Hub ObjectBucketClaim secret 的名称,作为 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。
  • 您已创建了 ObjectBucketClaim CR 来存储 TechDocs 生成的文件。

流程

  • Backstage CR 中,输入 Developer Hub ObjectBucketClaim 配置映射的名称作为 spec.application.extraEnvs.configMaps 字段的值,并输入 Developer Hub ObjectBucketClaim secret 名称作为 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,请完成以下步骤:

  1. 使用以下命令安装 npx 软件包 以运行 HEKETI-cli

    npm install -g npx
  2. 使用以下命令安装 HEKETI-cli 工具:

    npm install -g @techdocs/cli
  3. 使用以下命令安装 mkdocs 插件:

    pip install "mkdocs-techdocs-core==1.*"
  4. 使用以下命令生成 HEKETI 站点:

    npx @techdocs/cli generate --no-docker --source-dir <path_to_repo> --output-dir ./site

    其中 < path_to_repo > 是用来克隆存储库的文件路径中的位置。

2.2.3. 发布 TechDocs 网站

流程

要发布您的 HEKETI 网站,请完成以下步骤:

  1. 为您的云存储供应商设置必要的身份验证环境变量。
  2. 使用以下命令发布您的 HEKETI :

    npx @techdocs/cli publish --publisher-type <awsS3|googleGcs> --storage-name <bucket/container> --entity <namespace/kind/name> --directory ./site
  3. 在软件模板中添加 .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.createcatalog.location.create 权限,从远程存储库将文档导入到 TechDocs 中。

流程

  1. 在 Red Hat Developer Hub 实例中,点 Catalog > Self-service > Register Existing Component
  2. Select URL 框中,使用以下格式输入您要从存储库导入的 catalog-info.yaml 文件的 URL:

    https://github.com/&lt;project_name&gt; /<repo_name&gt; /blob/<branch_name&gt; /<file_directory> /catalog-info.yaml

  3. Analyze
  4. Finish

验证

  1. 在 Red Hat Developer Hub 导航菜单中,单击 Docs
  2. 验证您导入的文档是否在 Documentation 页面的表中列出。

3.2. 在 TechDocs 中找到文档

默认情况下,TechDocs 插件 文档 页面显示您的组织已导入到 Red Hat Developer Hub 实例中的所有文档。您可以使用以下方法的任意组合来查找您要查看的文档:

  • 在搜索栏中输入关键字以查看在文档中任何位置包含关键字的所有文档。
  • 根据 Owner 过滤,以查看您机构中特定用户或组所拥有的文档。
  • 根据 标签过滤,以仅查看包含特定标签的文档。
  • 自带过滤,仅查看您拥有或属于某个组的文档
  • Starred 过滤以查看您添加到热门的文档。

默认情况下,All 字段显示已导入到 TechDocs 的文档总数。如果您搜索或使用过滤器,All 字段会显示满足您应用的搜索和过滤条件的文档数量。

先决条件

  • 启用并配置的 TechDocs 插件
  • 文档导入到 TechDocs 中
  • 您有所需的角色和权限来添加和查看 TechDocs 文档

流程

  1. 在 Red Hat Developer Hub 导航菜单中,单击 Docs
  2. Documentation 页面中,使用搜索栏、过滤器或两者来查找您要查看的文档。

3.3. 查看 TechDocs 的文档

在 TechDocs 中,文档可能是一个书的一部分,其中包含与同一主题相关的其他文档。

单击 Documentation 页面上的表中的文档名称,可在本书页面中打开文档。本书的名称显示在页面的图书上。本书页面包含以下元素:

  • 文档的内容。
  • 可用于搜索文档中的关键字的搜索栏。
  • 可用于导航到本书中其他文档的导航菜单。
  • 可用于 导航到文档其他部分的内容表
  • 一个 Next 按钮,您可以使用这个按钮来导航到本书的下一个后续文档。

您可以使用书页中的元素搜索、查看和浏览本书中的文档。

先决条件

  • 启用并配置的 TechDocs 插件
  • 文档导入到 TechDocs 中
  • 您有所需的角色和权限来添加和查看 TechDocs 文档
  • 可选:安装并配置 TechDocs 附加组件

流程

  1. 在 Red Hat Developer Hub 导航菜单中,单击 Docs
  2. Documentation 表中,点击您要查看的文档的名称。
  3. 在本书页面中,您可以执行以下操作之一:

    • 使用安装扩展默认 TechDocs 插件功能的附加组件。
    • 使用搜索栏查找文档中的关键字。
    • 使用以下任一方法浏览本书中的文档:

      • 使用表的内容 浏览文档的任何部分。
      • 使用导航菜单导航到本书中的任何文档。
      • 单击 Next 以导航到本书中的下一个后续文档。

其他资源

3.4. 编辑 TechDocs 中的文档

您可以从文档书页直接编辑 TechDocs 插件中的文档。您所在机构中的任何授权用户可以编辑文档,无论他们是文档的所有者。

流程

  1. 在 Red Hat Developer Hub 导航菜单中,单击 Docs
  2. Documentation 表中,点击您要编辑的文档的名称。
  3. 在文档中,点 Edit this page 图标打开远程存储库中的文档。
  4. 在远程存储库中,根据需要编辑文档。
  5. 使用存储库供应商 UI 和常规团队流程来提交和合并您的更改。

第 4 章 wagon 附加组件

Problem add-ons 是扩展内置 TechDocs 插件功能的动态插件。例如,您可以使用附加组件报告文档问题、更改文本大小或在 TechDocs Reader 页面或 Entity 页面中查看覆盖中的镜像。

下表描述了 Red Hat Developer Hub 1.6 可用的 TechDocs 附加组件:

Expand
表 4.1. Red Hat Developer Hub 中可用的 problem Add-ons
wagon 附加组件package/Plugin描述类型

<ReportIssue />

backstage-plugin-techdocs-module-addons-contrib

在 TechDocs 页面中选择一部分文本,并针对包含文档的存储库打开问题。issue 模板自动填充所选文本。

预安装

<TextSize />

backstage-plugin-techdocs-module-addons-contrib

通过使用滑块或按钮增加或减少字体大小,在文档页面上自定义文本大小。字体大小为 100%,此设置会在浏览器的本地存储被改变时保存在浏览器的本地存储中。

外部

<LightBox />

backstage-plugin-techdocs-module-addons-contrib

在文档页面的 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 插件上安装第三方附加组件,包括您自己创建的附加组件。

您可以使用动态插件将 TechDocs 附加组件导入到 TechDocs 插件中。如果使用 Red Hat Developer Hub Operator 安装动态插件,您可以在 ConfigMap 中的 plugin 软件包中添加 TechDocs 附加组件。

预安装附加组件(如 ReportIssue )包含在默认的 backstage-plugin-5-4-module-addons-contrib 软件包中 配置中。红帽支持的外部附加组件通过将它们添加到配置文件的 HEKETI Addons 部分来安装。

流程

  1. 从 OpenShift Container Platform Web 控制台中的 Developer 视角,点 ConfigMaps > Create ConfigMap
  2. Create ConfigMap 页面中,在 Configure via 字段中选择 YAML view 选项。
  3. 在新创建的 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
  4. 在 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 附加组件,如 TextSizeLightBox
  5. Create
  6. 在 Web 控制台导航菜单中,单击 Topology
  7. 点您要使用的 Red Hat Developer Hub 实例的溢出菜单,然后选择 Edit Backstage 以加载 Red Hat Developer Hub 实例的 YAML 视图。
  8. Backstage CR 中,添加 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
  9. 点击 Save
  10. 在 Web 控制台导航菜单中,点 Topology 并等待 Red Hat Developer Hub pod 启动。
  11. Open URL 图标以使用 Red Hat Developer Hub 平台以及新的配置更改。

您可以使用动态插件将 TechDocs 附加组件导入到 TechDocs 插件中。如果使用 Red Hat Developer Hub Helm Chart 安装动态插件,您可以在 Helm chart 的 plugin 软件包中添加 TechDocs 附加组件。

预安装附加组件(如 ReportIssue )包含在默认的 backstage-plugin-5-4-module-addons-contrib 软件包中 配置中。红帽支持的外部附加组件通过将它们添加到配置文件的 HEKETI Addons 部分来安装。

先决条件

  • TechDocs 插件已安装并启用。

流程

  1. 在 Helm Chart 中,添加安装动态插件所需的 global.dynamic 参数,如使用 Helm Chart 安装动态插件 所示

    注意

    默认配置包含 dynamic-plugins.default.yaml 文件,其中包含所有动态插件,包括 TechDocs 附加组件,这些插件已在 Red Hat Developer Hub 中预安装,无论是默认启用还是禁用。

  2. 在 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
  3. 在 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 附加组件,如 TextSizeLightBox

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 中的动态插件。

流程

  1. 输入以下命令安装您要用来导入第三方附加组件的第三方插件:

    yarn install
  2. 获取您要使用的第三方 TechDocs 附加组件的源代码。
  3. 使用以下命令将 TechDocs 附加组件导出为动态插件:

    npx @janus-idp/cli@latest package export-dynamic-plugin
    注意

    @latest 标签拉取 @janus-idp/cli 软件包的最新版本,该软件包与最新的功能和修复程序兼容。使用与 Red Hat Developer Hub 版本兼容的版本。

  4. 要将第三方 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 文件中使用。

  5. 要将第三方 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
  6. 打开您的 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 附加组件。

流程

  1. 从 OpenShift Container Platform Web 控制台中的 Developer 视角,点 ConfigMaps
  2. ConfigMap 页面中,点击包含您要删除的 TechDocs 附加组件的 ConfigMap。
  3. Configure via 字段中选择 YAML view 选项。
  4. 在 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> 的每个外部 TechDocs 附加组件。例如:

      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
  5. 点击 Save
  6. 在 Web 控制台导航菜单中,点 Topology 并等待 Red Hat Developer Hub pod 启动。
  7. 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> 的每个外部 TechDocs 附加组件。例如:

      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

4.3. 使用 TechDocs 附加组件

在管理员在 Red Hat Developer Hub 实例中安装 TechDocs 附加组件后,您可以使用它来扩展 TechDocs 插件的功能,并增强您的文档体验。

4.3.1. 使用 ReportIssue TechDocs 附加组件

如果您在机构的 TechDocs 文档中发现错误,您可以使用 ReportIssue 附加组件直接打开新的 GitHub 或 GitLab 问题。Report Isue 自动导入您在仓库中突出显示的文档中的文本。

先决条件

  • 在 TechDocs 插件中安装并启用 ReportIssue 附加组件。
  • 您有在报告文档问题的存储库中创建问题的权限。

流程

  1. 在您的 TechDocs 文档中,突出显示您要报告问题的文本。
  2. 单击 ReportIssue 框中的文本,如 Open new GitHub issue
  3. 在存储库中的新问题页面中,使用模板来创建您要报告的问题。

    注意

    默认问题标题为 Documentation feedback: &lt ;highlighted_text& gt;,其中 &lt ;highlighted_text > 是您在 TechDocs 文档中突出显示的文本。

    在问题描述中,<highlighted_text > 是 The highlighted text 字段的默认值。

验证

  • 您创建的问题会在仓库中的 issues 页面中列出。

4.3.2. 使用 TextSize TechDocs 附加组件

您可以使用 TextSize 附加组件来更改 TechDocs Reader 页面或 Entity 页面中的文本大小。

先决条件

  • TextSize 附加组件已在 TechDocs 插件中安装并启用。

流程

  1. 在 TechDocs 标头中,点 Settings 图标。
  2. 使用滑块调整文档文本的大小。

    注意
    • 默认文本大小为 100%
    • 最小化文本大小为 90%
    • 最大文本大小为 150%

4.3.3. 使用 LightBox TechDocs 附加组件

如果您的 TechDocs 文档包含一个镜像,您可以使用 LightBox 附加组件在 lightbox 或 overlay 窗口中查看镜像的放大版本。您还可以缩放来更改 lightbox 镜像的大小。如果单个文档页面包含多个镜像,您可以在 lightbox 中的镜像之间进行导航。

先决条件

  • LightBox 附加组件已在 TechDocs 插件中安装并启用。

流程

  1. 在您的 TechDocs 文档中,点您要在 lightbox 中查看的镜像。
  2. 在 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 或更高版本。

流程

  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-wagon-react' 软件包以获取 TechDocs 附加组件的 frontend 工具。例如:

    yarn add @backstage/plugin-techdocs-react
  6. 在包含自定义 TechDocs 附加组件组件的目录中,删除附加组件不需要的所有默认文件或文件组件,如 index.tsxplugins.ts 文件的 routes.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>
    指定将 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 文件中创建此组件。
  8. index.ts 文件中,通过添加以下代码导出您要创建的自定义 TechDocs 附加组件:

    export { <new_plugin_for_techdocs_add-on>, <new_techdocs_add-on> } from './plugin';
  9. 创建一个新的 &lt ;new_wagon_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> (Optional)
    指定新 TechDocs 附加组件的 props,如 < new_wagon_add-on>.tsx 文件(如果适用)。
  11. plugins.ts 文件中,导入新的 TechDocs 附加组件组件。
  12. 按照安装和配置 TechDocs 附加组件中的步骤 安装和配置新的 TechDocs 附加组件

验证

  1. 重启 RHDH 应用程序,并验证插件是否已成功激活和配置。
  2. 验证应用程序日志以确认,并确保插件按预期工作。

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部