# @cparra/apexdocs 中文文档

规范地址：https://npmcn.com/package/%40cparra/apexdocs/

版本：3\.24\.2
npm 元数据更新时间：2026-07-28T12:12:58.051Z
中文译文更新时间：2026-11-10T21:23:08.327Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cparra/apexdocs
原文对照：https://npmcn.com/package/%40cparra/apexdocs/?lang=original
项目主页：https://github.com/cesarParra/apexdocs#readme
源码仓库：https://github.com/cesarParra/apexdocs

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：328 kB，8 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.12\.0
- 运行依赖：10 个
- 首次发布：2020-02-22T19:36:56.837Z
- 最新版本发布：2026-07-28T12:12:57.751Z
- 近 30 天下载量：40768（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：241（近 12 个月 63 个）

## 中文简介

具有CLI能力的图书馆,为销售力量顶级课程生成文件.

## 安装

```sh
npm install @cparra/apexdocs
```

也可以使用：`pnpm add @cparra/apexdocs`、`yarn add @cparra/apexdocs`、`bun add @cparra/apexdocs`

## README

# 顶级Docs

**CLI和节点库为Appex课程生成文档.**

[![CI](https://github.com/cesarParra/apexdocs/actions/workflows/ci.yaml/badge.svg)](https://github.com/cesarParra/apexdocs/actions/workflows/ci.yaml) [![License](https://img.shields.io/github/license/cesarParra/apexdocs)](https://github.com/cesarParra/apexdocs/blob/master/LICENSE) [![npm](https://img.shields.io/npm/dm/@cparra/apexdocs)](https://www.npmjs.com/package/@cparra/apexdocs)

Apex Docs是销售力类Apex类的不透视文档生成器. 它可以以Markdown格式输出文档,允许您使用您选择的静态站点生成器 创建一个适合您需要的文档网站,在任何静态网络托管服务中托管.

## 目录

-   [实例](https://npmcn.com/package/%40cparra/apexdocs/#readme--examples)
-   [\* 特性](https://npmcn.com/package/%40cparra/apexdocs/#readme--features)
-   [\* 安装](https://npmcn.com/package/%40cparra/apexdocs/#readme--installation)
-   [QQ 快速启动](https://npmcn.com/package/%40cparra/apexdocs/#readme--quick-start)
    -   [国 际](https://npmcn.com/package/%40cparra/apexdocs/#readme-cli)
        -   [标记](https://npmcn.com/package/%40cparra/apexdocs/#readme-markdown)
        -   [打开Api](https://npmcn.com/package/%40cparra/apexdocs/#readme-openapi)
        -   [更改日志](https://npmcn.com/package/%40cparra/apexdocs/#readme-changelog)
-   [可用的命令](https://npmcn.com/package/%40cparra/apexdocs/#readme-%EF%B8%8F-available-commands)
    -   [标记](https://npmcn.com/package/%40cparra/apexdocs/#readme-markdown-1)
    -   [打开Api](https://npmcn.com/package/%40cparra/apexdocs/#readme-openapi-1)
    -   [更改日志](https://npmcn.com/package/%40cparra/apexdocs/#readme-changelog-1)
-   [定义配置文件](https://npmcn.com/package/%40cparra/apexdocs/#readme--defining-a-configuration-file)
-   [翻译](https://npmcn.com/package/%40cparra/apexdocs/#readme--translation)
-   [QQ 导入到您的项目](https://npmcn.com/package/%40cparra/apexdocs/#readme-%EF%B8%8E-importing-to-your-project)
-   [文档指南](https://npmcn.com/package/%40cparra/apexdocs/#readme--documentation-guide)
-   [生成 OpenApi REST 定义](https://npmcn.com/package/%40cparra/apexdocs/#readme--generating-openapi-rest-definitions)

## 实例

ApexDocs生成Markdown文件,这些文件可以被集成到任何静态站点生成引擎中, (例如:Jekyll,Vitepress,Hugo,Docoraurus等) 来创建一个适合您需要的文档站点.

这使得你能够灵活地利用你喜欢的 SSG 引擎创建美丽的网站 通常提供广泛的主题,暗模式支持,以及框外的其他特性.

![Vitepress Light](https://npmcn.com/package/%40cparra/apexdocs/imgs/vitepress-light.png) ![Vitepress Dark](https://npmcn.com/package/%40cparra/apexdocs/imgs/vitepress-dark.png)

_这些是使用Vitepress生成的文件站点的例子. 去那边 `examples/vitepress` 要查看代码的文件夹._

额外的灵活性还使您能够将输出文档与您现有的文档站点整合, 允许您匹配您现有网站的外观和感觉.

![Integration](https://npmcn.com/package/%40cparra/apexdocs/imgs/integration.png)

OpenApi REST定义可以使用ReDoc,Swagger UI等工具或其他任何OpenApi查看器进行可视化.

![OpenApi](https://npmcn.com/package/%40cparra/apexdocs/imgs/redocly.png)

此重播包含几个其他实例 `examples` 目录,显示如何整合 拥有不同的工具.

-   [实例](https://npmcn.com/package/%40cparra/apexdocs/examples)

### \# 在野外 # # In the wird #

以下是使用 Apex Docs 的一些现场项目:

-   [轨迹顶端食道](https://github.com/trailheadapps/apex-recipes)
-   [销售力量顶端商业](https://developer.salesforce.com/docs/commerce/salesforce-commerce/references/comm-apex-reference/cart-reference.html)
-   [表达式( API)](https://cesarparra.github.io/expression/)
-   [Nimble AMS 文档](https://nimbleuser.github.io/nams-api-docs/#/api-reference/)

## \* 特性

-   生成 Salesforce 代码( Apex, 触发器, 自定义对象, LWCs) 的文档作为 Markdown 文件
-   生成基于 OpenApi 的 REST 规格 `@RestResource` 类
-   基于您的 Salesforce Apex 类两个版本的差异生成更改日志
-   支持在一个类别内分组相关代码的块
-   支持忽略文件和成员不被记录
-   命名空间支持
-   配置文件支持
-   不同语言和自定义术语的翻译支助
-   单行顶端文件块
-   自定义标签支持
-   还有更多!

## \* 安装

```bash
npm i -g @cparra/apexdocs
```

## QQ 快速启动

### 国 际

#### 标记

运行以下命令为您的 Global SalesForce Apex 类和自定义对象生成标记下的文件 :

```bash
apexdocs markdown -s force-app

# Use sfdx-project.json as the source of directories
apexdocs markdown --useSfdxProjectJson

# Specify multiple source directories
apexdocs markdown --sourceDir force-app force-lwc force-utils
```

#### 打开Api

运行以下命令以生成您的 Alesforce Apex 类的 OpenApi REST 规格 附加说明 `@RestResource`数字 :

```bash
apexdocs openapi -s force-app
```

#### 更改日志

运行以下命令以生成您 Salesforce Apex 类的更改日志 :

```bash
apexdocs changelog --previousVersionDir force-app-previous --currentVersionDir force-app
```

## 可用的命令

### 标记

`markdown`

#### 旗帜

| 旗帜 | 别名 | 说明 | 默认 | 需求 |
| --- | --- | --- | --- | --- |
| `--sourceDir` | `-s` | 源文件所在的目录或目录. | 不详 | \* 联合国 |
| `--useSfdxProjectJson` | 不详 | 读取源目录 `sfdx-project.json` 包裹董事。 无法使用 `--sourceDir`。 。 。 . | `false` | \* 联合国 |
| `--sfdxProjectPath` | 不详 | 包含目录的路径 `sfdx-project.json` (默认为当前目录). 仅用于 `--useSfdxProjectJson`。 。 。 . | `process.cwd()` | 没有 |
| `--targetDir` | `-t` | 将生成文件放置的目录 . | `docs` | 没有 |
| `--scope` | `-p` | 文档范围列表. 数值应该用一个空间分隔,例如 -- -- 范围全球公共命名空间. | `[global]` | 没有 |
| `--customObjectVisibility` | `-v` | 用于记录自定义对象的控制。 数值应以空格分隔. | `[public]` | 没有 |
| `--defaultGroupName` | 不详 | 未指定组时使用的默认组名 . | `Miscellaneous` | 没有 |
| `--namespace` | 不详 | 包名空间,如果有的话。 如果提供,它将被添加到生成的文件中. | 不详 | 没有 |
| `--sortAlphabetically` | 不详 | 排序“参考指南”中按字母顺序显示的文件,以及按字母顺序排列的类、界面或enum成员。 假的,成员会以与代码相同的顺序显示. | `false` | 没有 |
| `--includeMetadata` | 不详 | 是否包含文件的 meta.xml 信息 : 是否活动和 API 版本 | `false` | 没有 |
| `--linkingStrategy` | 不详 | 连接到其他类时所使用的策略. 可能值为 `relative`, (中文(简体) ), `no-link`,以及 `none` | `relative` | 没有 |
| `--customObjectsGroupName` | 不详 | 《参考指南》中自定义对象的分类名称 | `Custom Objects` | 没有 |
| `--triggersGroupName` | 不详 | 将在参考指南中将触发点分类的名称 | `Triggers` | 没有 |
| `--experimentalLwcSupport` | 不详 | 是否记录 LWC 文件 . | `false` | 没有 |
| `--lwcGroupName` | 不详 | 将闪电网络组件归为参考指南的名称 | `Lightning Web Components` | 没有 |
| `--includeFieldSecurityMetadata` | 不详 | 是否在生成的文件中包含字段的遵守类别和安全分类 . | `false` | 没有 |
| `--includeInlineHelpTextMetadata` | 不详 | 是否在生成文件中包含字段的内置帮助文本 . | `false` | 没有 |
| `--parallelReflection` | 不详 | 通过工人线条平行地进行CPU-重力反射. | `true` | 没有 |
| `--parallelReflectionMaxWorkers` | 不详 | 用于平行反射的最大工人线程数。 默认为基于 CPU 计数的合理值. | 不详 | 没有 |
| `--debug` | 不详 | 启用调试日志 。 打印文件逐一分析进度和成功/失败. | `false` | 没有 |

> **说明:** 这个 `*` 在所需栏内注明 **一个** 必须指定源目录选项:
> 
> -   `--sourceDir` (单一目录或目录数组)
> -   `--useSfdxProjectJson` (从sfdx-project.json读取)
> 
> 这些选项是相互排斥的 — 您不能同时使用多个选项 .

##### 联系战略

连接策略决定了 Apex Docs 将如何链接到文档中的其他类 。 譬如说, 如果我有课 `A` 连接到类 `B` (例如通过 `{@link B}` 标记,该 `@see` 标签, 以它为参数,从方法返回等,连接策略将决定链接到类的方式 `B` 实值 创建.

这些是可能值 `linkingStrategy` 旗帜 :

-   `relative`

创建类文件的相对链接 . 因此,如果两个类都在同一目录中,链接将创建为 `[B](B.md)`。 。 。 . 如果类在不同的目录中,链接将创建为 `[B](../path/to/B.md)`

-   `no-link`

完全不创建链接 。 类名将以纯文本显示 .

-   `none`

不应用任何一种逻辑。 相反,链接将由文件路径决定 从文档站点的根起, 或通过您返回的任意路径 `transformReference` 钩子 为文件.

#### 样本使用

```bash
apexdocs markdown -s force-app -t docs -p global public namespaceaccessible -n MyNamespace
```

* * *

### 打开Api

`openapi`

#### 旗帜

| 旗帜 | 别名 | 说明 | 默认 | 需求 |
| --- | --- | --- | --- | --- |
| `--sourceDir` | `-s` | 源文件所在的目录 . | 不详 | 对 |
| `--targetDir` | `-t` | 将生成文件放置的目录 . | `docs` | 没有 |
| `--fileName` | 不详 | OpenApi 文件的名称 . | `openapi.json` | 没有 |
| `--namespace` | 不详 | 包名空间,如果有的话。 这将被添加到 API 文件服务器 URL 中 . | 不详 | 没有 |
| `--title` | 不详 | OpenApi 文件的标题 . | `Apex REST API` | 没有 |
| `--apiVersion` | 不详 | API的版本. | `1.0.0` | 没有 |
| `--parallelReflection` | 不详 | 通过工人线条平行地进行CPU-重力反射. | `true` | 没有 |
| `--parallelReflectionMaxWorkers` | 不详 | 用于平行反射的最大工人线程数。 默认为合理值. | 不详 | 没有 |
| `--debug` | 不详 | 启用调试日志 。 打印文件逐一分析进度和成功/失败. | `false` | 没有 |

#### 样本使用

```bash
apexdocs openapi -s force-app -t docs -n MyNamespace --title "My Custom OpenApi Title"
```

### 更改日志

`changelog`

#### 旗帜

| 旗帜 | 别名 | 说明 | 默认 | 需求 |
| --- | --- | --- | --- | --- |
| `--previousVersionDir` | `-p` | 上个版本源代码的目录位置. | 不详 | 对 |
| `--currentVersionDir` | `-t` | 当前版本源代码的目录位置. | 不详 | 对 |
| `--targetDir` | `-t` | 生成更改日志文件的目录位置 . | `./docs/` | 没有 |
| `--fileName` | 不详 | 要生成的更改日志文件的名称 . | `changelog` | 没有 |
| `--scope` | 不详 | 生成更改日志时尊重的范围列表 . | \['全球'\] | 没有 |
| `--customObjectVisibility` | `-v` | 用于记录自定义对象的控制。 数值应以空格分隔. | \['公开'\] | 没有 |
| `--skipIfNoChanges` | 不详 | 如果没有更改, 是否跳过生成更改日志 . | `true` | 没有 |
| `--parallelReflection` | 不详 | 通过工人线条平行地进行CPU-重力反射. | `true` | 没有 |
| `--parallelReflectionMaxWorkers` | 不详 | 用于平行反射的最大工人线程数。 默认为合理值. | 不详 | 没有 |
| `--debug` | 不详 | 启用调试日志 。 打印文件逐一分析进度和成功/失败. | `false` | 没有 |

#### 样本使用

```bash
apexdocs changelog -p force-app-previous -t force-app
```

* * *

## 定义配置文件

也可以使用配置文件来定义生成文档时将使用的参数.

配置文件是将生成的文档与您的静态站点生成器集成的主要方式 选项和构建进程,以及配置任何自定义行为和生成文件的输出.

### 概览

顶级文档使用 [宇宙图](https://www.npmjs.com/package/cosmiconfig) 装入配置文件,这意味着 支持下列格式(加上由宇宙图支持的其他任何格式):

-   A 类 `package.json` 财产,例如:. `{ "apexdocs": { "sourceDir": "src", "targetDir": "docs" } }`
-   A 类 `.apexdocsrc` 文件, 以 YAML 或 JSON 编写, 可选的扩展名 : `.yaml/.yml/.json/.js`
-   一个 `apexdocs.config.js` (或 `.mjs`)文件导出对象
-   A 类 `apexdocs.config.ts` 导出对象的文件

**配置文件应放置在您的工程的根目录中 .**

**请注意,当使用配置文件时,您仍可通过通过 CLI(英语:CLI).**

### 配置文件

在定义配置文件时,建议使用ES模块语法. 配置文件应当 `default` 以您想要使用的参数导出对象 :

```javascript
export default {
  sourceDir: 'force-app',
  targetDir: 'docs',
  scope: ['global', 'public'],
  ...
}
```

配置文件中的每个属性都是可选的,如果不提供,则通过 将使用 CLI,或者使用默认值.

### 配置智能

使用 `defineMarkdownConfig` (或 `defineOpenApiConfig` openApi 文档) 帮助者将提供 Typescript 功率 Intellisense 用于配置文件选项。 这应该与Javascript和Typescript文件同时工作.

```typescript
import { defineMarkdownConfig } from "@cparra/apexdocs";

export default defineMarkdownConfig({
  sourceDir: 'force-app',
  targetDir: 'docs',
  scope: ['global', 'public'],
  translations: {
    sections: {
      methods: 'Methods',
      properties: 'Properties',
    },
  },
  ...
});
```

### 生成不同类型的文档

您可能想要使用单个命令生成不同类型的文档 。 例如,如果你正在释放 您可能想要生成更新的文档 Markdown 文件 同时生成一个更改日志,列出所有新内容.

您可以通过提供一个配置文件来导出一个按键的配置对象 您想要生成的文档.

```typescript
import { defineMarkdownConfig, defineChangelogConfig } from '@cparra/apexdocs';

export default {
  markdown: defineMarkdownConfig({
    sourceDir: 'force-app',
    targetDir: 'docs',
    scope: ['global', 'public'],
    ...
  }),
  changelog: defineChangelogConfig({
    previousVersionDir: 'force-app-previous',
    currentVersionDir: 'force-app',
    targetDir: 'docs',
    scope: ['global', 'public'],
  })
};
```

那你只需要运行顶层 `apexdocs` 命令,并生成两类文档.

注意, 如果您想要生成一种类型的文档, 您仍然可以运行单个命令 提供子命令,例如 `apexdocs markdown` 或者说 `apexdocs changelog`。 。 。 .

### LWC 文件限制

LWC 文档仅在提供 `--experimentalLwcSupport` 标记或设置 `experimentalLwcSupport` 属性改为 `true` 在配置文件中.

ApexDocs 支持为闪电网络组件生成文档, 但请 了解以下限制:

-   仅标为 `isExposed=true` 在组件的 meta.xml 文件中,将记录.
-   目前JSDoc的任何评论都被忽视,文档完全基于组件的元数据.
-   Changelog生成不包括对LWCs的修改.

### 将文件从文档中排除

本表所列模式 `.forceignore` 文件将被排除在文档之外.

此外,您还可以通过向 Glob 模式列表来排除一个或多个文件被记录 页:1 `exclude` 属性在配置文件中.

```typescript
import { defineMarkdownConfig } from "@cparra/apexdocs";

export default defineMarkdownConfig({
  sourceDir: 'force-app',
  targetDir: 'docs',
  scope: ['global', 'public'],
  exclude: ['**/MyClass.cls', '**/MyOtherClass.cls'],
  ...
});
```

你也可以利用 `exclude` 属性可以间接修改诸如您所做的自定义元数据记录之类的东西 不需要包含在自定义元数据类型对象文档中.

```typescript
//...
exclude: ['**/*.md-meta.xml']
//...
```

### 不包括文档中的标记

注:只为Markdown文档工作.

您可以使用 `excludeTags` 配置文件中的属性, 允许您通过要从文档中排除的标签列表.

```typescript
import { defineMarkdownConfig } from "@cparra/apexdocs";

export default defineMarkdownConfig({
  sourceDir: 'force-app',
  targetDir: 'docs',
  scope: ['global', 'public'],
  excludeTags: ['internal', 'ignore'],
  ...
});
```

### 配置钩

定义 a `.js` 或者说 `.ts` 配置文件, 您的对象导出也可以使用 在文件生成过程的不同阶段将称为不同的钩子.

所有钩子都可以是同声函数,允许您进行同步操作,比如调用外部API.

Markdown和Changlog操作都有钩子(但OpenApi没有).

#### 标记下钩

##### **转换参考指南**

允许更改参考指南的前题和内容, 或者如果创建了参考指南页面 应该跳过.

**类型**

```typescript
type TransformReferenceGuide = (referenceGuide: ReferenceGuidePageData) => Partial<ReferenceGuidePageData> | Skip | Promise<Partial<ReferenceGuidePageData> | Skip>;
```

示例: 更新前题

```typescript
export default {
  transformReferenceGuide: (referenceGuide) => {
    return {
      // The frontmatter can either be an object, of the frontmatter string itself
      frontmatter: { example: 'example' }
    };
  }
};
```

示例: 跳过参考指南

```typescript
// The skip function is imported from the package
import { defineMarkdownConfig, skip } from "@cparra/apexdocs";

export default defineMarkdownConfig({
  transformReferenceGuide: (referenceGuide) => {
    return skip();
  }
});
```

##### **转换 Docs**

这个钩子的主要目的是让你可以跳过特定页面的生成, 通过返回过滤过的数组 `DocPageData` 对象.

如果您想要修改文件的内容或前题,请使用 `transformDocPage` 钩取之.

**类型**

```typescript
type TransformDocs = (docs: DocPageData[]) => DocPageData[] | Promise<DocPageData[]>
```

示例

```typescript
export default {
  transformDocs: (docs) => {
    return docs.filter(doc => doc.name !== 'MyClass');
  }
};
```

##### **转换文件页**

允许更改文件页面的前题和内容 .

**类型**

```typescript
type TransformDocPage = (
  doc: DocPageData,
) => Partial<ConfigurableDocPageData> | Promise<Partial<ConfigurableDocPageData>>
```

示例

```typescript
export default {
  transformDocPage: (doc) => {
    return {
      frontmatter: { example: 'example' }
    };
  }
};
```

##### **转换参考**

允许更改文件写到哪里以及文件如何相互连接 .

**类型**

```typescript
type TransformReference = (
  reference: DocPageReference,
) => Partial<ConfigurableDocPageReference> | Promise<ConfigurableDocPageReference>;
```

示例

```typescript
export default {
  // Notice how we are setting the linking strategy to none, so that nothing is done
  // to the links by the tool when it tries to link to other classes
  linkingStrategy: 'none',
  transformReference: (reference) => {
    return {
      // Link to the class in Github instead to its doc page.
      referencePath: `https://github.com/MyOrg/MyRepo/blob/main/src/classes/${reference.name}.cls`
    };
  }
};
```

##### **宏**

允许定义可用于文档的自定义宏.

Macros是可重复使用的可注入文档的文本片段, 允许您定义可跨多个文件使用的普通文本.

通常使用的案例是注入版权或许可证信息,而无 必须在多个类别中复制同一文本,污染您 源代码.

在文档中可以使用 `{{macro_name}}` 语法. 在配置文件中,您可以将宏行为定义为密钥值对,其中密钥为名称 宏,而值是返回文本以代替宏的函数.

**类型**

```typescript
type MacroSourceMetadata = {
  type: 'apex' | 'customobject' | 'customfield' | 'custommetadata' | 'trigger' | 'lwc';
  name: string;
  filePath: string;
};

type MacroFunction = (metadata: MacroSourceMetadata) => string;
```

注意到 `metadata` 对象包含关于宏所要覆盖的文件来源的信息 注射过 这样可以选择 返回基于文件来源的不同文本.

示例:发出版权通知

```typescript
//...
macros: {
  copyright: () => {
    return `@copyright Copyright (c) ${new Date().getFullYear()} My Name`;
  }
}
//...
```

然后在源代码中,你可以像这样使用宏:

```apex
/**
 * {{copyright}}
 * @description This is a class
 */
public class MyClass {
    //...
}
```

##### **模板**

允许为生成Markdown文档提供自定义模板,并赋予您对输出格式的控制. 您可以定义每种类型元数据的模板 由 `markdown` 命令(类、界面、enum、触发、LWC、自定义对象和参考指南) .

关于创建自定义模板的详细信息,包括实例、可用的助手和配置 选项, 请参考 [维基文档](https://github.com/cesarParra/apexdocs/wiki/5.-Custom-Templates)。还可以 在 `examples/markdown-custom-templates` 目录.

#### 变换日志钩

##### **变换换LogPage**

允许更改更改日志页面的前题和内容 .

**类型**

```typescript
type TransformChangeLogPage = (
  changelog: ChangeLogPageData,
) => Partial<ChangeLogPageData> | Promise<Partial<ChangeLogPageData>>

// Supporting types

type ChangeLogPageData = {
  source: SourceChangelog;
  frontmatter: string | Record<string, any>;
  content: string;
  outputDocPath: string;
};

type SourceChangelog = {
  fileChanges: FileChange[];
};

type FileChange = {
  name: string;
  fileType: 'apex' | 'customobject';
  changeType: 'added' | 'removed' | 'changed';
  changes?: {
    addedMethods?: string[];
    removedMethods?: string[];
    addedFields?: string[];
    removedFields?: string[];
    addedProperties?: string[];
    removedProperties?: string[];
    addedCustomFields?: string[];
    removedCustomFields?: string[];
    addedSubtypes?: string[];
    removedSubtypes?: string[];
    addedEnumValues?: string[];
    removedEnumValues?: string[];
  };
};
```

示例

```typescript
export default {
  transformChangeLogPage: (changelog) => {
    return {
      frontmatter: { example: 'example' }
    };
  }
};
```

## 翻译

ApexDocs支持翻译,以自定义生成文档中使用的语言和名词. 此功能允许您:

-   **将文件翻译成不同语文** (西班牙语,法语等)
-   **使用自定义商务术语** (如"商业操作"而不是"方法")
-   **部分推翻特定术语** 剩下的用英语

### 如何运作

翻译系统使用:

-   **默认英文翻译** 纳入系统
-   **用户提供的覆盖** 可以是部分或完整的

### 配置

添加一个 `translations` 属性到您的 ApexDocs 配置( JS 或 TS 文件)并传递 适当的翻译对象,取决于您使用的生成器:

```javascript
import { defineMarkdownConfig } from '@cparra/apexdocs';

export default defineMarkdownConfig({
  sourceDir: 'src',
  targetDir: 'docs',
  scope: ['public', 'global'],
  translations: {
    sections: {
      methods: 'Métodos',
      properties: 'Propiedades',
      fields: 'Campos',
    },
  },
});
```

### 类型脚本支持

对于 TypeScript 工程, 导入翻译类型, 以便更好的自动完成和类型安全 :

```typescript
import { defineMarkdownConfig } from '@cparra/apexdocs';
import type { UserTranslations } from '@cparra/apexdocs';

const markdownTranslations: UserTranslations['markdown'] = {
  sections: {
    methods: 'Functions',
  },
  // ...other translation keys as needed
};

export default defineMarkdownConfig({
  sourceDir: 'src',
  targetDir: 'docs',
  scope: ['public', 'global'],
  translations: markdownTranslations,
});
```

### 页:1

-   只有 **减值** 财务报告和审定财务报表 **更改日志** 发电机支持翻译
-   所有翻译都是可选的 - 任何未指定的都使用英语默认

完整的例子见 [翻译示例](https://npmcn.com/package/%40cparra/apexdocs/examples/translation/) 在此仓库中.

## QQ 导入到您的项目

### 反思

如果你对顶级解析能力感兴趣,你可以使用 独立 [顶级反射库](https://www.npmjs.com/package/@cparra/apex-reflection) 用于生成文档文件.

### 处理

如果您希望直接从 Javascript/ Typescript 使用 Apex Docs 的处理能力 您可以不使用 CLI , 而导入 `process` 函数.

```typescript
import { process } from '@cparra/apexdocs';

process({
  sourceDir: 'force-app',
  targetDir: 'docs',
  scope: ['global', 'public'],
  ...
});
```

### QQ 字迹

如果使用Typescript,顶级Docs会提供所有必要类型的定义.

## 文档指南

见 [维基百科](https://github.com/cesarParra/apexdocs/wiki/2.-%F0%9F%93%96-Documenting-Apex-code) 一个深入的指南 如何记录您的顶级密码 来获取顶级Docs.

## 生成 OpenApi REST 定义

Apex Docs 还可以为您的销售力量类生成 OpenApi REST 定义 `@RestResource`。 。 。 .

见 [维基百科](https://github.com/cesarParra/apexdocs/wiki/3.-%F0%9F%93%84-Generating-OpenApi-REST-Definitions) 更多信息.

## 常见问题

### @cparra/apexdocs 是什么？

具有CLI能力的图书馆,为销售力量顶级课程生成文件\.

### 如何安装 @cparra/apexdocs？

在项目目录运行 npm install @cparra/apexdocs，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 apexdocs，可以用 npx apexdocs 直接运行。

### @cparra/apexdocs 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @cparra/apexdocs 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @cparra/apexdocs 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=22\.12\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @cparra/apexdocs 可以商用吗？

@cparra/apexdocs 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @cparra/apexdocs 的下载量有多少？

根据 npm 官方下载统计，@cparra/apexdocs 在 2026/10/11 – 2026/11/09 这 30 天内被下载 40,768 次，日均约 1,359 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @cparra/apexdocs 还在维护吗？

最新版本 3\.24\.2 发布于 2026/07/28（3 个月前）；至今共发布 241 个版本，其中过去 12 个月发布了 63 个；首次发布于 2020/02/23。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

