writing-docs

writing-docs

热门

Remotion 文档编写与修改指南。适用于新增文档页面、编辑 packages/docs 目录下的 MDX 文件或撰写文档内容时。

5.6万Star
4132Fork
更新于 2026/8/6
SKILL.md
只读
名称
writing-docs
描述

Remotion 文档编写与修改指南。适用于新增文档页面、编辑 packages/docs 目录下的 MDX 文件或撰写文档内容时。

编写 Remotion 文档

文档存放在 packages/docs/docs 目录下,文件格式为 .mdx

新增文档页面

  1. packages/docs/docs 目录下新建一个 .mdx 文件
  2. 将该文档配置添加到 packages/docs/sidebars.ts
  3. 按照下文的规范撰写内容
  4. packages/docs 目录下运行 bun render-cards.ts 生成社交媒体预览卡片

面包屑导航(crumb:如果文档页面属于某个特定的 package,请在 frontmatter 中添加 crumb: '@remotion/package-name'。这会在标题上方将 package 名称显示为面包屑。

---
image: /generated/articles-docs-my-package-my-api.png
title: '<MyComponent>'
crumb: '@remotion/my-package'
---

一页只写一个 API:每个函数或 API 都应该有自己专属的文档页面。不要把多个 API(例如 getEncodableVideoCodecs()getEncodableAudioCodecs())混在一个页面里写。

仅记录公开 API:文档只服务于公开 API。切勿提及、引用内部/私有 API 或实现细节,也不要拿它们做对比。

正文中的 API 名称:请用反引号包裹 API 名称;如果已有对应文档页,请加上链接。函数和 Hook 的名称必须带上 (),例如 useVideoConfig(),而不是 useVideoConfig 或 useVideoConfig。组件名称必须包含尖括号,例如 <Player><Audio>

各字段属性统一使用标题:在记录 API 的配置选项(options)或返回值时,每个属性都必须作为独立标题。顶层属性使用 ### 标题,options 对象内的嵌套属性使用 #### 标题。不要使用无序列表来列举单条属性。

版本标识:如果某个 API、功能、参数或行为是在特定版本中引入的,请在读者首次需要了解它的位置(页面、章节或字段标题处)添加 <AvailableFrom>。例如:# prefetch()<AvailableFrom v="4.0.0" />

兼容性表格:API 页面最好在 ## See also 之前包含一个带有 <CompatibilityTable>## Compatibility 章节。

侧边栏排序逻辑:在 packages/docs/sidebars.ts 中添加或移动文档时,请检查上下文条目并保持已有的排序逻辑。如果某个章节是按字母顺序排列的,请按字母顺序插入新条目;如果是按工作流或重要性分组的,请保持相同的分组逻辑。切勿把新加内容随便挂在末尾成为孤立项。

语言风格规范

  • 保持精炼:开发者不喜欢读长篇大论。多余的废话会导致关键信息丢失。
  • 关联术语表:Remotion 专属术语请链接至 术语表 页面。
  • 避免带有情感色彩的套话:删掉形如 "太棒了!接下来我们..." 这种充数废话——它们不会提供任何有用信息。
  • 合理分段:避免出现过长的段落,及时拆分。
  • 使用 "你"(第二人称)称呼读者:不要用 "我们"。
  • 不要甩锅给用户:用 "输入无效",而不是 "你输错了"。
  • 不要主观假设操作很简单:少用 "只需"、"简单" 这种词——初学者可能会觉得有门槛。

代码片段

基础语法高亮:

```ts
const x = 1;
```

类型安全的代码片段(首选)

使用 twoslash 结合 TypeScript 对代码片段进行校验:

```ts twoslash
import {useCurrentFrame} from 'remotion';
const frame = useCurrentFrame();
```

隐藏 import 语句

使用 // ---cut--- 隐藏前置准备代码——展示时仅显示其下方的代码内容:

```ts twoslash
import {useCurrentFrame} from 'remotion';
// ---cut---
const frame = useCurrentFrame();
```

添加标题

为所有展示示例用法的代码块加上 title 属性:

```ts twoslash title="MyComponent.tsx"
console.log('Hello');
```

特殊组件

Steps 步骤组件

<Step> 附近的格式非常敏感。请保持每行包含一个步骤,在 </Step> 后面留一个空格;当步骤写为紧凑的单行内联列表时,必须保留显式的换行符(<br/><br />)。切勿写成没有空格的 <Step>1</Step>第一步

- <Step>1</Step> 第一步
- <Step>2</Step> 第二步

Experimental Badge 实验性徽章

<ExperimentalBadge>
<p>This feature is experimental.</p>
</ExperimentalBadge>

Interactive Demos 交互式 Demo

<Demo type="rect"/>

Demo 必须在 packages/docs/components/demos/index.tsx 中实现。关于如何新增 Demo 的细节,请参见 docs-demo skill。

AvailableFrom

用于标注功能或参数是在哪个版本中引入的。全局可用,无需 import 引入。

对于页面级的版本标识,请使用带有 <AvailableFrom># h1 标题行内放置,使其直接贴在标题旁边(而不是放在标题下方)。组件名称中的尖括号需使用 &lt;&gt; 转义:

# &lt;MyComponent&gt;<AvailableFrom v="4.0.123" />
# @remotion/my-package<AvailableFrom v="4.0.123" />

对于章节标题:

## Saving to another cloud<AvailableFrom v="3.2.23" />

CompatibilityTable

用于标注组件或 API 支持哪些运行时和环境。无需 import 引入。请将其放在 ## See also 之前的 ## Compatibility 章节中。

可用的布尔属性(props):chrome, firefox, safari, player, studio, clientSideRendering, serverSideRendering。设为 true 表示支持,设为 {false} 表示不支持。

如果是前端 API,不支持的选项设为空字符串 ""nodejs="", bun="", serverlessFunctions=""
如果是前端 API,可以使用 hideServers 隐藏 Node.js/Bun/serverless 这一行。

## Compatibility

<CompatibilityTable chrome firefox safari nodejs="" bun="" serverlessFunctions="" clientSideRendering={false} serverSideRendering player studio hideServers />

可选参数

在 API 文档中记录可选参数时:

  1. 在标题末尾添加 ? —— 这表示该参数是可选的
    --> 如果是 CLI flag(以 -- 开头),不要加 ? —— CLI flag 默认都是可选的
  2. 切勿添加 _optional_ 文本 —— ? 后缀就已经足够了
  3. 在说明中包含默认值 —— 自然地在正文中提及
### onError?

Called when an error occurs. Default: errors are thrown.

切勿这样写:

### onError?

_optional_

Called when an error occurs.

组合使用可选参数与 AvailableFrom

当一个参数既是可选的,又是在特定版本中新增的时:

### onError?<AvailableFrom v="4.0.50" />

Called when an error occurs.

"Optional since" 模式

如果某个参数在特定版本变为了可选参数(此前为必填):

### codec?

Optional since <AvailableFrom v="5.0.0" inline />. Previously required.

生成预览卡片

在新增或修改页面后,生成社交媒体预览卡片:

cd packages/docs && bun render-cards.ts

精简优化现存文档

在被要求审查(audit)或精简优化文档时,重点排查以下点:

  • 特定版本引入的 API、功能、选项、参数或行为,是否遗漏了 <AvailableFrom> 标识
  • API 名称是否没有格式化为代码行内 span,或者没有加上对应文档页面的链接
  • 函数和 Hook 引用是否漏掉了 ()
  • 应该包含 ## Compatibility 章节(及 <CompatibilityTable>)的 API 页面是否遗漏了该内容
  • <Step> 的格式是否存在隐患或损坏