` 代替以修复 html2canvas 问题
+- `editor`: 移除 `role="button"` 以修复 html2canvas 问题
+
+### 11月21日 #16.8
+
+Shadcn 同步:
+
+- `input`: 添加 `text-base md:text-sm`
+- `textarea`: 添加 `text-base md:text-sm`
+- `editor`(`ai`, `aiChat` 变体): 添加 `text-base md:text-sm`
+
+### 11月14日 #16.7
+
+- `toolbar`: 添加 `ToolbarSplitButton`, `ToolbarSplitButtonPrimary`, `ToolbarSplitButtonSecondary`
+- `media-toolbar-button`: 使用 `ToolbarSplitButton`
+
+### 11月13日 #16.6
+
+- `resizable`: 在只读模式下隐藏 `ResizeHandle`
+
+### 11月8日 #16.5
+
+- 将以下内容添加到你的 tailwind 配置中:
+```ts
+// plugins
+require("tailwind-scrollbar-hide")
+
+// theme.extend.screens
+screens: {
+ /**
+ * Matches devices where the primary pointing device is capable of
+ * hovering conveniently. Usage: main-hover:group-hover:bg-red-500 See:
+ * https://developer.mozilla.org/en-US/docs/Web/CSS/@media/hover
+ *
+ * On iOS devices, buttons inside a .group element that contains
+ * descendent elements with `group-hover:` CSS rules require two taps to
+ * click. As a workaround, we disable these rules on devices that cannot
+ * conveniently hover using `main-hover:`.
+ */
+ 'main-hover': {
+ raw: '(hover: hover)',
+ },
+},
+```
+- `editor`:
+ - `EditorContainer`: 移除 `ref`,改用 `useEditorContainerRef`
+ - 添加 `caret-primary selection:bg-brand/25`
+ - 在 `EditorContainer` 中添加 `id={editor.uid}`,这样你就可以移除 `scroll_container` 或任何已定义的 id
+- `draggable`:
+ - 修复一个**严重的**移动端用户体验问题:由于组悬停样式,聚焦编辑器需要点击两次。通过 `main-hover:group-hover:opacity-100` 修复
+ - 对于 xs 媒体查询,仅在选中时显示
+- `table-element`: 修复宽度
+- `table-row-element`, `table-cell-element`: 支持行选择
+- 为 `date-element`, `mention-element` 添加 `draggable` 属性
+- 为 `link-toolbar-button`, `link-floating-toolbar`, `ai-menu` 输入框添加 `data-plate-focus` 属性
+- `cursor-overlay`:
+ - 支持折叠选择
+ - 移除 `DragOverCursorPlugin`, `SelectionOverlayPlugin`,改用 `@udecode/plate-selection`
+- `ghost-text`: 在 xs 媒体查询下隐藏,添加 `pointer-events-none`
+- `floating-toolbar`: 添加 `overflow-x-auto scrollbar-hide` 以允许水平滚动(移动端)
+- `fixed-toolbar`: 添加 `scrollbar-hide`
+- `emoji-picker-content`: 添加 emoji 字体
+- `column-element`: 默认添加 `w-full`
+- 新增钩子:`use-is-touch-device`
+- `block-context-menu`: 在触摸设备上禁用
+- `ai-toolbar-button`: 添加 `onMouseDown`
+- `ai-menu-items`: 添加未定义检查
+- `block-selection-plugins`: 添加
+```ts
+inject: {
+ excludeBelowPlugins: ['tr'],
+ excludePlugins: ['table', 'code_line', 'column_group', 'column'],
+},
+```
+- 添加 `floating-toolbar-plugin`, `fixed-toolbar-plugin`
+- 其他: `hr-element`, `plate-element`, `transforms`
+
+### 11月7日 #16.4
+
+- `block-context-menu`: 点击上下文菜单时防止取消选择
+- `block-selection`: 在 onCloseAutoFocus 中添加 `editor.getApi(BlockSelectionPlugin).blockSelection.focus()`。
+
+### 11月6日 #16.3
+
+- `editor`: 添加 `overflow-x-hidden` 以防止水平滚动
+- `table-element`: 添加 `overflow-x-auto` 以允许水平滚动
+
+### 11月5日 #16.2
+
+- 修复颜色选择器清除按钮的样式
+- 使用 CSS 过渡替换 toggle-element 按钮
+
+### 11月1日 #16.1
+
+- `editor`: 样式 + `
`
+
+## 2024年10月 #15
+
+### 10月31日 #15.6
+
+- 添加 `lib/transforms.ts`。包含常用操作的实用转换。
+- 移除 `Icons` 文件依赖。所有图标现在从 `lucide-react` 导入。
+- 修复并修改了 emoji 和颜色选择器中的一些样式。
+- 分组样式:
+ - `dropdown-menu`
+ - `context-menu`
+ - `inline-combobox`
+- 向 `slash-input-element` 添加组和项目
+- 间距和尺寸更新:
+ - `ai-menu-items`
+ - `align-dropdown-menu`
+ - `block-context-menu`
+ - `button`
+ - `code-block-combobox`
+ - `color-dropdown-menu-items`
+ - `color-picker`
+ - `column-group-element`
+ - `command`
+ - `comment-more-dropdown`
+ - `context-menu`
+ - `dropdown-menu`
+ - `emoji-dropdown-menu`
+ - `emoji-input-element`
+ - `image-preview`
+ - `inline-combobox`
+ - `input`
+ - `insert-dropdown-menu`
+ - `line-height-dropdown-menu`
+ - `link-floating-toolbar`
+ - `media-popover`
+ - `mention-input-element`
+ - `mode-dropdown-menu`
+ - `more-dropdown-menu`
+ - `popover`
+ - `slash-input-element`
+ - `table-dropdown-menu`
+ - `table-element`
+ - `toggle-element`
+ - `toggle-toolbar-button`
+
+### 10月26日 #15.5
+
+- 将 `indent-todo-marker-component` 重命名为 `indent-todo-marker`。
+
+### 10月25日 #15.4
+
+- `slash-input-element`:添加 AI 命令 & 添加 `focusEditor` 选项
+
+### 10月24日 #15.3
+
+- 添加 `ai-menu`、`ai-menu-items`、`ai-toolbar-button`、`ai-chat-editor`、`block-context-menu`、`context-menu`、`ghost-text`、`toc-element`
+- `command`:添加 `InputCommand`
+- `toolbar` 新样式
+- `editor` demo 变体
+- `heading-element`:移除 `isFirstBlock` 属性
+- 其他:`fixed-toolbar`、`fixed-toolbar-buttons`、`floating-toolbar`、`floating-toolbar-buttons`、`mode-dropdown-menu`、`turn-into-dropdown-menu`、`button`、`cursor-overlay`、`excalidraw-element`、`inline-combobox`、`slash-input-element`
+
+### 10月14日 #15.3
+
+- 新的 CLI:`shadcx`。查看 [CLI](/docs/components/cli) 和 [components.json](/docs/components/components-json)。
+
+### 10月10日 #15.3
+
+- `dropdown-menu`(`DropdownMenuContent`):在 `onCloseAutoFocus` 上阻止默认行为
+- `floating-toolbar`(`FloatingToolbar`):移除 portal,点击外部隐藏,浮动链接打开时隐藏
+- `turn-into-dropdown-menu`(`TurnIntoDropdownMenu`):添加缩进列表项
+- `table-dropdown-menu`(`TableDropdownMenu`):在 `insertTable` 中选择
+
+### 10月4日 #15.2
+
+- 功能 `emoji-picker`:调整 UI emoji 选择器
+
+### 10月1日 #15.1
+
+- 新的 `block-selection` 组件用于视觉选择反馈
+- 新的 `plate-element` 组件用于使用 `BlockSelection` 渲染 plate 元素
+- 更新 `paragraph-element` 和所有块元素以使用 `plate-element`
+- `draggable`:
+ - 重构以使用新的钩子:`useDraggableGutter` 和 `useDropLine`
+ - 移除 `classNames` 属性,改用单一的 `className`
+ - 添加 `DraggableProvider` 包装器
+ - 引入 `Gutter` 和 `DropLine` 作为独立组件
+- `with-draggables`:
+ - 更新以使用新的 className 格式用于可拖动属性
+- 修复 `mention-element`:防止在 MacOS 上 IME 输入中断
+
+以下组件使用 `--highlight` 颜色:
+
+- `comment-leaf`
+- `highlight-leaf`
+
+以下组件使用 `--brand` 颜色:
+
+- `block-selection`
+- `draggable`
+
+## 2024年9月 #14
+
+### 9月29日 #14.3
+
+- 修复 `heading-element`:如果标题是第一个块,则不应有顶部边距
+
+### 9月13日 #14.2
+
+- 修复 `code-block-combobox`:基于标签或值进行过滤
+
+### 9月10日 #14.1
+
+- 修复 `floating-toolbar`:在只读模式下显示工具栏
+
+## 2024年8月 #13
+
+### 8月27日 #13.3
+
+- 迁移到 Plate 37
+
+### 8月26日 #13.2
+
+- 功能 `emoji-picker`:适配 shadcn 主题和样式
+
+### 8月12日 #13.1
+
+- 为准备 Excalidraw 改进,将 mermaid 添加到支持的语言列表中。
+
+## 2024年7月 #12
+
+### 7月14日 #12.2
+
+- 修复 `cursor`:如果光标数据未定义,显示选择矩形/插入符号。
+
+### 7月12日 #12.1
+
+- `fixed-toolbar`:`top-0`
+
+## 2024年6月 #11
+
+### 6月23日 #11.3
+
+- 重大变更:将支持的 prismjs 语言列表移至 `code-block-combobox`
+
+### 6月13日 #11.2
+
+- 修复 `caption`:当元素 `caption` 属性改变时更新 UI
+
+### 6月6日 #11.1
+
+- 用 `inline-combobox` 替换 `combobox`
+- 移除 `mention-combobox`、`emoji-combobox` 和 `slash-combobox`
+- 添加 `emoji-input-element`
+- 更新 `mention-input-element` 和 `slash-input-element` 以使用新的 combobox
+- 功能 `draggable`:添加 data-key 属性以便在拖放操作完成后添加选择
+- 重大变更:通过使用 `CaptionButton` 或传递媒体元素的 ID 通过 `captionActions.showCaptionId` 打开标题
+- 向 `floating-toolbar` 添加 `portalElement` 属性
+
+## 2024年5月 #10
+
+### 5月30日 #10.2
+
+- 修复 `draggable`:添加 portal 以修复裁剪,button type 以停止表单提交
+- 修复 `editor`:增加 x 内边距以改善拖动手柄可见性
+
+### 5月24日 #10.1
+
+- 修复 `site-header`:将 zIndex 更改为 60
+- 修复 `fixed-toolbar`:将 zIndex 更改为 60
+
+## 2024年4月 #9
+
+### 4月30日 #9.3
+
+- 修复 `indent-todo-marker-component`:点击复选框移除焦点
+
+### 4月17日 #9.2
+
+- 添加 `column-element`、`column-group-element`
+
+### 4月6日 #9.1
+
+- 修复 `combobox`:撤销操作导致编辑器崩溃
+
+## 2024年2月 #8
+
+### 2月6日 #8.2
+
+- 修复 `list-element`:变体样式丢失
+
+### 2月5日 #8.1
+
+- 修复 `mention-element`:点击提及 combobox 滚动条时移除提及输入
+ ([#2919](https://github.com/udecode/plate/issues/2919))
+
+## 2024年1月 #7
+
+### 1月31日 #7.5
+
+- 添加 `toggle-element`
+- 添加 `toggle-toolbar-button`
+
+### 1月11日 #7.4
+
+- 在 `components.json` 中添加对自定义 ui 目录的支持
+- 添加对 `plate-components.json` 的支持,以避免与 shadcn 的 `components.json` 冲突
+
+### 1月9日 #7.3
+
+- `toolbar`
+ - `Toolbar`:用 `items-center` 替换 `items-stretch`
+ - 使用 `toolbarButtonVariants` 替代 `toggleVariants`
+ - 修复 `value` 属性类型错误
+ - 现在使用 `withTooltip`,所以用 `aria-checked` 替换 `[data-state=on]` 以避免冲突
+- `toggle`:因未使用而移除
+- `tooltip`:添加 `withTooltip`,被 `ToolbarButton` 使用
+
+### 1月8日 #7.2
+
+- `table-element` - TableProvider 现在必须在 TableElement 上方渲染
+
+```tsx
+// Before
+export const TableElement = withRef
(
+ ({ className, children, ...props }, ref) => {
+ // ...
+ }
+);
+
+// After
+export const TableElement = withHOC(
+ TableProvider,
+ withRef(({ className, children, ...props }, ref) => {
+ // ...
+ })
+);
+```
+
+### January 2 #7.1
+
+- `dropdown-menu` - 修复:在 `DropdownMenuContent` 中不排除 `className`
+
+## December 2023 #6
+
+### December 27 #6.3
+
+- 从依赖中移除 `clsx`:`class-variance-utility` 已经将其导出为 `cx`
+- 新依赖:`@udecode/cn`
+- 移除 `@/lib/utils.ts` 并使用 `@udecode/cn` 代替。将所有从 `@/lib/utils` 导入的代码替换为 `@udecode/cn`
+- 从 `@udecode/cn` 导入 `withProps` 而不是 `@udecode/plate-common`
+
+ `
+- 所有使用 `forwardRef` 的组件现在使用 `withRef`。`withProps`、`withCn` 和 `withVariants` 也被使用以减少样板代码。
+- 将 `withCn` 添加到 ESLint `settings.tailwindcss.callees` 和 `classAttributes` 在 IDE 设置中
+
+```tsx
+// before
+const Avatar = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, ...props }, ref) => (
+
+));
+Avatar.displayName = AvatarPrimitive.Root.displayName;
+
+export { Avatar };
+
+// after
+export const Avatar = withCn(
+ AvatarPrimitive.Root,
+ 'relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full'
+);
+```
+
+### 12月25日 #6.2
+
+- [dialog](https://github.com/udecode/plate/pull/2824/files#diff-5f7205cdd85718b7f26cef1e746ad67d69c83703135a7e3ad1a9a09ca69c38c8)
+- Plate 28,包括一些优化:[changes](https://github.com/udecode/plate/pull/2816/files#diff-726cd463a614f1a49228e05a2eb7ea9bc95f2e574423eb4264c6cb95eb0ac792)
+ - `combobox`
+ - `insert-dropdown-menu`
+ - `media-popover`
+ - `mode-dropdown-menu`
+ - `more-dropdown-menu`
+ - `table-dropdown-menu`
+ - `table-element`
+ - `turn-into-dropdown-menu`
+
+### 12月10日 #6.1
+
+- `image-element`:用 `withHOC(ResizableProvide, ...)` 包装组件
+- `media-embed-element`:用 `withHOC(ResizableProvide, ...)` 包装组件
+
+## 2023年11月 #5
+
+### 11月28日 #5.1
+
+- `table-element`
+ - [feat](https://github.com/udecode/plate/pull/2733/files#diff-c5f0c4861d1d4f4e3551cebd8bc75888f5ab60a21a41d5da07487a6c9c79d483): 合并支持 (plate 26)
+- `table-cell-element`
+ - [feat](https://github.com/udecode/plate/pull/2733/files#diff-b474b48d3e947c67296867abe2421b7dad66a8327a4e09f43402825393e3aa26): 合并支持 (plate 26)
+- `comments-popover`
+ - `comment-more-dropdown`
+ - [fix](https://github.com/udecode/plate/commit/cb6838962f105e30b4d6a56db2e5bda01a118b43): 编辑和删除评论
+ - `comment-value`
+ - [fix](https://github.com/udecode/plate/commit/cb6838962f105e30b4d6a56db2e5bda01a118b43#diff-9234422f7416eb31a4f9aca1d2070bf26dae1dcf92579ee4145702123b4347e2): 移除 `useCommentValue` (plate 25 中已弃用)
+- `toolbar`
+ - [fix](https://github.com/udecode/plate/pull/2742/files): 按下状态
+
+## 2023年9月 #4
+
+### 9月18日 #4.4
+
+- `editor`: 新组件 🎉 查看 [Editor](https://platejs.org/docs/components/editor)
+- `fixed-toolbar-buttons`, `floating-toolbar-buttons`, `mode-dropdown-menu`:
+ - plate 24: 将 `usePlateReadOnly` 重命名为 `useEditorReadOnly`
+- `code-block-element`: `code-block-element.css` 中的更改
+
+### 9月15日 #4.3
+
+- `table-element`
+ - 修复:在表中输入应保持浮动工具栏打开
+- `floating-toolbar`:
+ - 修复:导入
+- `comment-leaf`, `link-element`
+ - 功能:使用主要颜色
+- 块选择:
+ - 向 `body` 添加此类:`'[&_.slate-selected]:!bg-primary/20 [&_.slate-selection-area]:border [&_.slate-selection-area]:border-primary [&_.slate-selection-area]:bg-primary/10'`
+
+### 9月12日 #4.2
+
+- `button`:添加 `whitespace-nowrap`
+- `popover`:打印时隐藏
+- `caption`:打印时隐藏占位符
+- `highlight-leaf`:高亮颜色现在基于主要颜色
+
+### 9月2日 #4.1
+
+- `link-floating-toolbar`
+ - [修复](https://github.com/udecode/plate/pull/2593/files#diff-bd61ef4cfdcfe9401df0307a461ac13dce507b178d8e9a7ed693cb36453e9202):props 类型
+- `media-embed-element`
+ - [修复](https://github.com/udecode/plate/pull/2593/files#diff-13ddd3e18dbdc399e507d7bb512e0f592fba062a36bca14d66d39069773617bdR54):使用 `align` 选项
+- `caption`
+ - 修复:`style` 属性
+
+## 2023年8月 #3
+
+### 8月19日 #3.4
+
+- `floating-toolbar` - [更改](https://github.com/udecode/plate/pull/2585/files#diff-c3329bdae6493e8868acb88f985b2929109dae7a04d756359346f0c614913766):
+ - 功能:支持 `ref`
+ - 重构:使用 `useFloatingToolbarState`,控制 `floatingOptions` 默认值
+ - 修复:添加 `fallbackPlacements` 以保持浮动在视口内
+ - 破坏性更改:移除以下 props:`portalElement`、`floatingOptions`、`ignoreReadOnly`、`hideToolbar`
+ - 功能:`state` prop
+- `link-floating-toolbar` - [更改](https://github.com/udecode/plate/pull/2585/files#diff-bd61ef4cfdcfe9401df0307a461ac13dce507b178d8e9a7ed693cb36453e9202):
+ - 重构:控制 `floatingOptions` 默认值
+ - 修复:添加 `fallbackPlacements` 以保持浮动在视口内
+
+### 8月9日 #3.3
+
+- `mention-element` - [功能](https://github.com/udecode/plate/pull/2564/files#diff-b008c662509a2be20fae922f91462771d69105ba04e5731184427e37dc86b236):支持粗体、斜体、下划线
+
+### 8月3日 #3.2
+
+- `table-cell-element` - [功能](https://github.com/udecode/plate/pull/2557/files#diff-b474b48d3e947c67296867abe2421b7dad66a8327a4e09f43402825393e3aa26):支持表格单元格背景样式
+
+### 8月2日 #3.1
+
+- `image-element`:[重构](https://github.com/udecode/plate/pull/2555/files#diff-932738209da6d341356f451777ebf380ae116fd70bf73124a786ede5ca7eb77e):使用 `mediaResizeHandleVariants`
+- `media-embed-element`:[重构](https://github.com/udecode/plate/pull/2555/files#diff-13ddd3e18dbdc399e507d7bb512e0f592fba062a36bca14d66d39069773617bd):使用 `mediaResizeHandleVariants`
+- `resizable` - [更改](https://github.com/udecode/plate/pull/2555/files#diff-514a5137146b81612a86bf85717ed3185ec745889f6aa5beeddf9dc8f03acae7):
+ - 重构
+ - 功能:`mediaResizeHandleVariants`
+- `table-cell-element`:
+ - [修复](https://github.com/udecode/plate/pull/2555/files#diff-b474b48d3e947c67296867abe2421b7dad66a8327a4e09f43402825393e3aa26):可调整大小
+ - [修复](https://github.com/udecode/plate/pull/2550/files#diff-b474b48d3e947c67296867abe2421b7dad66a8327a4e09f43402825393e3aa26):Firefox 中的表格选择
+
+## 2023年7月 #2
+
+### 7月27日 #2.2
+
+- `caption` - 新组件
+- `image-element`:
+ - 重构:状态
+ - 新注册依赖:`caption`、`resizable`
+- `media-embed-element` 现在完全无头:
+ - 新依赖:`react-lite-youtube-embed`、`react-tweet` 以减小包大小
+ - 新注册依赖:`caption`、`resizable`
+- `media-popover` - 修复:弹出框关闭
+- `resizable` - 新组件
+- `table-element` - 修复:弹出框关闭
+
+### 7月17日 #2.1
+
+- `comments-popover` - 修复:新评论时弹出框不打开
+- `comment-toolbar-button` - 功能:当 `myUserId` 为 null 时隐藏
+- `excalidraw-element` - 修复:拼写错误
+
+### 发布 #1
+
+Plate 无头组件现已可用:
+
+- [手动安装](https://platejs.org/docs/components/installation/manual)
+- [主题](https://platejs.org/docs/components/theming)
+- [CLI](https://platejs.org/docs/components/cli)
diff --git a/apps/www/content/docs/cn/components/cli.mdx b/apps/www/content/docs/cn/components/cli.mdx
new file mode 100644
index 0000000000..853aa5db37
--- /dev/null
+++ b/apps/www/content/docs/cn/components/cli.mdx
@@ -0,0 +1,146 @@
+---
+title: CLI
+description: 使用 CLI 将 Plate UI 组件添加到你的项目中。
+---
+
+## init
+
+使用 `init` 命令为新的 Plate UI 项目初始化配置和依赖。
+
+The `init` command installs dependencies, configures `tailwind.config.js`, and CSS variables for the project.
+
+```bash
+npx shadcx@latest init plate
+```
+
+你将被问到一些问题来配置 `components.json`:
+
+```txt showLineNumbers
+Which color would you like to use as base color? › Slate
+Do you want to use CSS variables for colors? › yes
+```
+
+### Options
+
+```txt
+Usage: shadcx init [options] [registry]
+
+initialize your project and install dependencies
+
+Options:
+ -d, --defaults use default values i.e slate and css variables. (default: false)
+ -f, --force force overwrite of existing components.json. (default: false)
+ -y, --yes skip confirmation prompt. (default: false)
+ -c, --cwd the working directory. defaults to the current directory.
+ -a, --all add all available components. (default: false)
+ -n, --name registry name. (default: plate)
+ -s, --silent mute output (default: false)
+ --src-dir use the src directory when creating a new project (default: false)
+ --pm package manager to use (npm, pnpm, yarn, bun)
+ -h, --help display help for command
+```
+
+## add
+
+使用 `add` 命令将 Plate UI 组件和依赖添加到你的项目中。
+
+```bash
+# 使用前缀语法
+npx shadcx@latest add plate/editor plate/toolbar
+
+# 或混合使用(从第一个前缀找到的注册表)
+npx shadcx@latest add plate/editor toolbar
+
+# 使用 registry 选项
+npx shadcx@latest add editor toolbar -r plate
+```
+
+你会看到一个组件列表供你选择:
+
+```txt
+Which components would you like to add? › Space to select. A to toggle all.
+Enter to submit.
+
+◯ align-dropdown-menu
+◯ avatar
+◯ blockquote-element
+◯ button
+◯ checkbox
+◯ code-leaf
+◯ code-line-element
+◯ code-syntax-leaf
+◯ combobox
+```
+
+### Options
+
+```txt
+Usage: shadcx add [options] [components...]
+
+add a component to your project
+
+Arguments:
+ components the components to add.
+
+Options:
+ -y, --yes skip confirmation prompt. (default: false)
+ -o, --overwrite overwrite existing files. (default: false)
+ -c, --cwd the working directory. defaults to the current directory.
+ -p, --path the path to add the component to.
+ -a, --all add all available components (default: false)
+ -s, --silent mute output (default: false)
+ --src-dir use the src directory when creating a new project (default: false)
+ -r, --registry registry name or url
+ -l, --list list all available registries (default: false)
+ -h, --help display help for command
+```
+
+## Monorepo
+
+在 monorepo 中,你可以使用 `-c` 或 `--cwd` 选项指定你的工作区路径。
+
+```bash
+npx shadcx@latest init plate -c ./apps/www
+```
+
+或者
+
+```bash
+npx shadcx@latest add plate/editor -c ./apps/www
+```
+
+## Example components.json
+
+以下是一个为 [shadcn/ui](https://ui.shadcn.com/) 和 Plate UI 配置的 `components.json` 文件示例:
+
+```json
+{
+ "$schema": "https://ui.shadcn.com/schema.json",
+ "style": "default",
+ "rsc": true,
+ "tsx": true,
+ "tailwind": {
+ "baseColor": "slate",
+ "config": "tailwind.config.ts",
+ "css": "src/app/globals.css",
+ "cssVariables": true,
+ "prefix": ""
+ },
+ "aliases": {
+ "components": "@/components",
+ "hooks": "@/hooks",
+ "lib": "@/lib",
+ "ui": "@/components/ui",
+ "utils": "@/lib/utils"
+ },
+ "iconLibrary": "lucide",
+ "registries": {
+ "plate": {
+ "aliases": {
+ "ui": "@/components/plate-ui"
+ },
+ "url": "https://platejs.org/r"
+ }
+ }
+}
+```
diff --git a/apps/www/content/docs/cn/components/components-json.mdx b/apps/www/content/docs/cn/components/components-json.mdx
new file mode 100644
index 0000000000..af43d45288
--- /dev/null
+++ b/apps/www/content/docs/cn/components/components-json.mdx
@@ -0,0 +1,214 @@
+---
+title: components.json
+description: 项目配置。
+---
+
+`components.json` 文件包含了项目的配置。
+
+我们使用它来了解你的项目是如何设置的,以及如何为你的项目生成定制化的组件。
+
+
+ 注意:`components.json` 文件是可选的,**仅在你使用 CLI** 向项目添加组件时才需要。如果你使用复制粘贴的方式,则不需要此文件。
+
+
+你可以通过运行以下命令在项目中创建 `components.json` 文件:
+
+```bash
+npx shadcx@latest init plate
+```
+
+更多信息,请参阅 [CLI 部分](/docs/components/cli)。
+
+## $schema
+
+你可以在这里查看 `components.json` 的 JSON Schema:[https://ui.shadcn.com/schema.json](https://ui.shadcn.com/schema.json)
+
+```json title="components.json"
+{
+ "$schema": "https://ui.shadcn.com/schema.json"
+}
+```
+
+## tailwind
+
+帮助 CLI 了解 Tailwind CSS 在项目中的设置。
+
+更多信息,请参阅 [安装部分](/docs/components/installation)。
+
+### tailwind.config
+
+你的 `tailwind.config.js` 文件的路径。
+
+```json title="components.json"
+{
+ "tailwind": {
+ "config": "tailwind.config.js" | "tailwind.config.ts"
+ }
+}
+```
+
+### tailwind.css
+
+导入 Tailwind CSS 的 CSS 文件的路径。
+
+```json title="components.json"
+{
+ "tailwind": {
+ "css": "styles/global.css"
+ }
+}
+```
+
+### tailwind.baseColor
+
+这是用于生成组件的默认颜色调色板。**此值在初始化后无法更改。**
+
+```json title="components.json"
+{
+ "tailwind": {
+ "baseColor": "slate" |"gray" | "neutral" | "stone" | "zinc"
+ }
+}
+```
+
+### tailwind.cssVariables
+
+你可以选择使用 CSS 变量或 Tailwind CSS 实用类进行主题化。
+
+要使用实用类进行主题化,请将 `tailwind.cssVariables` 设置为 `false`。要使用 CSS 变量,请将 `tailwind.cssVariables` 设置为 `true`。
+
+```json title="components.json"
+{
+ "tailwind": {
+ "cssVariables": `true` | `false`
+ }
+}
+```
+
+更多信息,请参阅 [主题化部分](/docs/components/theming)。
+
+**此值在初始化后无法更改。** 要在这两种主题化方法之间切换,你需要删除并重新安装组件。
+
+### tailwind.prefix
+
+用于 Tailwind CSS 实用类的前缀。组件将使用此前缀添加。
+
+```json title="components.json"
+{
+ "tailwind": {
+ "prefix": "plate-"
+ }
+}
+```
+
+## aliases
+
+CLI 使用这些值和 `tsconfig.json` 或 `jsconfig.json` 文件中的 `paths` 配置,将生成的组件放置在正确的位置。
+
+路径别名必须在 `tsconfig.json` 或 `jsconfig.json` 文件中设置。
+
+
+ **重要:** 如果你使用 `src` 目录,请确保它包含在 `tsconfig.json` 或 `jsconfig.json` 文件中的 `paths` 配置中。
+
+
+### aliases.utils
+
+导入你的实用函数。
+
+```json title="components.json"
+{
+ "aliases": {
+ "utils": "@/lib/utils"
+ }
+}
+```
+
+### aliases.components
+
+导入你的组件。
+
+```json title="components.json"
+{
+ "aliases": {
+ "components": "@/components"
+ }
+}
+```
+
+### aliases.ui
+
+导入 `ui` 组件。
+
+CLI 将使用 `aliases.ui` 值来确定 `ui` 组件的安装位置。如果你想要自定义 `ui` 组件的安装目录,请使用此配置。
+
+```json title="components.json"
+{
+ "aliases": {
+ "ui": "@/components/plate-ui"
+ }
+}
+```
+
+### aliases.lib
+
+导入 `lib` 函数,如 `format-date` 或 `generate-id`。
+
+```json title="components.json"
+{
+ "aliases": {
+ "lib": "@/lib"
+ }
+}
+```
+
+### aliases.hooks
+
+导入 `hooks`,如 `use-media-query` 或 `use-toast`。
+
+```json title="components.json"
+{
+ "aliases": {
+ "hooks": "@/hooks"
+ }
+}
+```
+
+## registries
+
+`registries` 部分允许你为你的项目配置多个组件注册表。这在使用 Plate UI 组件与 [shadcn/ui](https://ui.shadcn.com/) 组件时特别有用。
+
+```json title="components.json"
+{
+ "registries": {
+ "plate": {
+ "url": "https://platejs.org/r",
+ "style": "default",
+ "aliases": {
+ "ui": "@/components/plate-ui"
+ }
+ }
+ }
+}
+```
+
+### registries.[name].url
+
+注册表的 URL。对于 Plate UI,这是 `https://platejs.org/r`。
+
+### registries.[name].style
+
+用于此注册表的样式。Plate UI 只有一个样式:`default`。
+
+### registries.[name].aliases
+
+此注册表的自定义别名。这允许你指定此注册表的 UI 组件的不同位置。
+
+
+
+当你使用多个注册表时,你可以使用前缀语法来指定每个组件使用的注册表:
+
+```bash
+npx shadcx@latest add plate/button
+```
+
+
diff --git a/apps/www/content/docs/cn/components/dark-mode/index.mdx b/apps/www/content/docs/cn/components/dark-mode/index.mdx
new file mode 100644
index 0000000000..9867acd498
--- /dev/null
+++ b/apps/www/content/docs/cn/components/dark-mode/index.mdx
@@ -0,0 +1,33 @@
+---
+title: 深色模式
+description: 为您的网站添加深色模式。
+---
+
+
+
+
+ Next.js
+
+
+
+ Vite
+
+
diff --git a/apps/www/content/docs/cn/components/dark-mode/next.mdx b/apps/www/content/docs/cn/components/dark-mode/next.mdx
new file mode 100644
index 0000000000..f5c028b913
--- /dev/null
+++ b/apps/www/content/docs/cn/components/dark-mode/next.mdx
@@ -0,0 +1,68 @@
+---
+title: Next.js
+description: 为您的 Next.js 应用添加深色模式。
+---
+
+## Dark mode
+
+
+
+### Install next-themes
+
+Start by installing `next-themes`:
+
+```bash
+npm install next-themes
+```
+
+### Create a theme provider
+
+```tsx title="components/theme-provider.tsx"
+'use client';
+
+import * as React from 'react';
+import { ThemeProvider as NextThemesProvider } from 'next-themes';
+
+export function ThemeProvider({
+ children,
+ ...props
+}: React.ComponentProps) {
+ return {children};
+}
+```
+
+### Wrap your root layout
+
+将 `ThemeProvider` 添加到您的 root layout 中。
+
+```tsx {1,9-11} title="app/layout.tsx"
+import { ThemeProvider } from '@/components/theme-provider';
+
+export default function RootLayout({ children }: RootLayoutProps) {
+ return (
+ <>
+
+
+
+
+ {children}
+
+
+
+ >
+ );
+}
+```
+
+### Add a mode toggle
+
+在您的网站上放置一个模式切换按钮,用于在浅色和深色模式之间切换。
+
+
+
+
diff --git a/apps/www/content/docs/cn/components/dark-mode/vite.mdx b/apps/www/content/docs/cn/components/dark-mode/vite.mdx
new file mode 100644
index 0000000000..54b808aca0
--- /dev/null
+++ b/apps/www/content/docs/cn/components/dark-mode/vite.mdx
@@ -0,0 +1,150 @@
+---
+title: Vite
+description: 为你的 Vite 应用添加深色模式。
+---
+
+## Dark mode
+
+
+
+### Create a theme provider
+
+```tsx title="components/theme-provider.tsx"
+import { createContext, useContext, useEffect, useState } from "react"
+
+type Theme = "dark" | "light" | "system"
+
+type ThemeProviderProps = {
+ children: React.ReactNode
+ defaultTheme?: Theme
+ storageKey?: string
+}
+
+type ThemeProviderState = {
+ theme: Theme
+ setTheme: (theme: Theme) => void
+}
+
+const initialState: ThemeProviderState = {
+ theme: "system",
+ setTheme: () => null,
+}
+
+const ThemeProviderContext = createContext(initialState)
+
+export function ThemeProvider({
+ children,
+ defaultTheme = "system",
+ storageKey = "vite-ui-theme",
+ ...props
+}: ThemeProviderProps) {
+ const [theme, setTheme] = useState(
+ () => (localStorage.getItem(storageKey) as Theme) || defaultTheme
+ )
+
+ useEffect(() => {
+ const root = window.document.documentElement
+
+ root.classList.remove("light", "dark")
+
+ if (theme === "system") {
+ const systemTheme = window.matchMedia("(prefers-color-scheme: dark)")
+ .matches
+ ? "dark"
+ : "light"
+
+ root.classList.add(systemTheme)
+ return
+ }
+
+ root.classList.add(theme)
+ }, [theme])
+
+ const value = {
+ theme,
+ setTheme: (theme: Theme) => {
+ localStorage.setItem(storageKey, theme)
+ setTheme(theme)
+ },
+ }
+
+ return (
+
+ {children}
+
+ )
+}
+
+export const useTheme = () => {
+ const context = useContext(ThemeProviderContext)
+
+ if (context === undefined)
+ throw new Error("useTheme must be used within a ThemeProvider")
+
+ return context
+}
+```
+
+### Wrap your root layout
+
+将 `ThemeProvider` 添加到您的 root layout 中。
+
+```tsx {1,5-7} title="App.tsx"
+import { ThemeProvider } from "@/components/theme-provider"
+
+function App() {
+ return (
+
+ {children}
+
+ )
+}
+
+export default App
+```
+
+### Add a mode toggle
+
+在您的网站上放置一个模式切换按钮,用于在浅色和深色模式之间切换。
+
+```tsx title="components/mode-toggle.tsx"
+import { Moon, Sun } from "lucide-react"
+
+import { Button } from "@/components/ui/button"
+import {
+ DropdownMenu,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuTrigger,
+} from "@/components/ui/dropdown-menu"
+import { useTheme } from "@/components/theme-provider"
+
+export function ModeToggle() {
+ const { setTheme } = useTheme()
+
+ return (
+
+
+
+
+
+ setTheme("light")}>
+ Light
+
+ setTheme("dark")}>
+ Dark
+
+ setTheme("system")}>
+ System
+
+
+
+ )
+}
+```
+
+
\ No newline at end of file
diff --git a/apps/www/content/docs/cn/components/installation.mdx b/apps/www/content/docs/cn/components/installation.mdx
new file mode 100644
index 0000000000..550f6b0fd8
--- /dev/null
+++ b/apps/www/content/docs/cn/components/installation.mdx
@@ -0,0 +1,102 @@
+---
+title: 安装
+description: 如何安装依赖并构建你的应用程序。
+---
+
+## 框架
+
+
+
+
+ Next.js
+
+
+
+ Vite
+
+
+
+ Remix
+
+
+
+ Astro
+
+
+
+ Laravel
+
+
+
+ Gatsby
+
+
+
+ Manual
+
+
\ No newline at end of file
diff --git a/apps/www/content/docs/cn/components/installation/astro.mdx b/apps/www/content/docs/cn/components/installation/astro.mdx
new file mode 100644
index 0000000000..75de07bbf7
--- /dev/null
+++ b/apps/www/content/docs/cn/components/installation/astro.mdx
@@ -0,0 +1,48 @@
+---
+title: Astro
+description: 安装和配置 Astro。
+---
+
+
+
+### 安装 shadcn/ui
+
+按照 [shadcn/ui](https://ui.shadcn.com/docs/installation/astro) 指南进行操作。
+
+### 运行 CLI
+
+使用 CLI 在您的项目中初始化 Plate:
+
+```bash
+npx shadcx@latest init plate
+```
+
+### Add components
+
+现在您可以开始向 `components/plate-ui` 添加组件:
+
+```bash
+npx shadcx@latest add -r plate
+```
+
+### 注册组件
+
+要将组件添加到您的插件中,请参阅[插件组件](/docs/plugin-components#register-components)。
+
+### 添加编辑器(可选)
+
+选择一个编辑器开始使用([浏览可用的编辑器](/editors))。
+
+[最小编辑器](https://template.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-basic
+```
+
+[AI编辑器](https://playground.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-ai
+```
+
+这将在 `app/editor` 中添加一个页面,并在 `components/plate-ui` 中添加所有必要的组件作为起点。
+
+
diff --git a/apps/www/content/docs/cn/components/installation/gatsby.mdx b/apps/www/content/docs/cn/components/installation/gatsby.mdx
new file mode 100644
index 0000000000..b2197965b7
--- /dev/null
+++ b/apps/www/content/docs/cn/components/installation/gatsby.mdx
@@ -0,0 +1,45 @@
+---
+title: Gatsby
+description: 安装和配置 Gatsby。
+---
+
+
+
+### 安装 shadcn/ui
+
+按照 [shadcn/ui](https://ui.shadcn.com/docs/installation/gatsby) 指南进行操作。
+
+### 运行 CLI
+
+使用 CLI 在您的项目中初始化 Plate:
+
+```bash
+npx shadcx@latest init plate
+```
+
+### Add components
+
+现在您可以开始向 `components/plate-ui` 添加组件:
+
+```bash
+npx shadcx@latest add -r plate
+```
+
+### 注册组件
+
+要将组件添加到您的插件中,请参阅[插件组件](/docs/plugin-components#register-components)。
+
+### 添加编辑器(可选)
+
+选择一个编辑器开始使用([浏览可用的编辑器](/editors))。
+
+[最小编辑器](https://template.platejs.org/editor)
+
+[AI编辑器](https://playground.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-ai
+```
+
+这将在 `app/editor` 中添加一个页面,并在 `components/plate-ui` 中添加所有必要的组件作为起点。
+
+
diff --git a/apps/www/content/docs/cn/components/installation/laravel.mdx b/apps/www/content/docs/cn/components/installation/laravel.mdx
new file mode 100644
index 0000000000..7d298a7ea9
--- /dev/null
+++ b/apps/www/content/docs/cn/components/installation/laravel.mdx
@@ -0,0 +1,48 @@
+---
+title: Laravel
+description: Install and configure Laravel.
+---
+
+
+
+### 安装 shadcn/ui
+
+按照 [shadcn/ui](https://ui.shadcn.com/docs/installation/laravel) 指南进行操作。
+
+### 运行 CLI
+
+Initialize Plate in your project using the CLI:
+
+```bash
+npx shadcx@latest init plate
+```
+
+### 增加组件
+
+现在您可以开始向 `components/plate-ui` 添加组件:
+
+```bash
+npx shadcx@latest add -r plate
+```
+
+### 注册组件
+
+要将组件添加到您的插件中,请参阅[插件组件](/docs/plugin-components#register-components)。
+
+### 添加编辑器(可选)
+
+选择一个编辑器开始使用([浏览可用的编辑器](/editors))。
+
+[最小编辑器](https://template.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-basic
+```
+
+[AI编辑器](https://playground.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-ai
+```
+
+这将在 `app/editor` 中添加一个页面,并在 `components/plate-ui` 中添加所有必要的组件作为起点。
+
+
diff --git a/apps/www/content/docs/cn/components/installation/manual.mdx b/apps/www/content/docs/cn/components/installation/manual.mdx
new file mode 100644
index 0000000000..a7e93f59c2
--- /dev/null
+++ b/apps/www/content/docs/cn/components/installation/manual.mdx
@@ -0,0 +1,107 @@
+---
+title: 手动安装
+description: 手动将依赖项添加到您的项目中。
+---
+
+
+
+### 添加 Tailwind CSS
+
+组件使用 Tailwind CSS 进行样式设计。您需要在项目中安装 Tailwind CSS。
+
+[按照 Tailwind CSS 安装说明](https://tailwindcss.com/docs/installation)开始使用。
+
+### 添加依赖项
+
+Add the following dependencies to your project:
+
+```bash
+npm install slate slate-dom slate-react slate-history slate-hyperscript @udecode/plate-common @udecode/cn class-variance-authority tailwindcss-animate tailwind-scrollbar-hide lucide-react
+```
+
+### Configure path aliases
+
+在您的 `tsconfig.json` 文件中配置路径别名。
+
+```json {3-6} title="tsconfig.json"
+{
+ "compilerOptions": {
+ "baseUrl": ".",
+ "paths": {
+ "@/*": ["./*"]
+ }
+ }
+}
+```
+
+### Configure tailwind.config.js
+
+
+
+### Configure styles
+
+
+
+### Configure components.json
+
+在项目根目录中创建一个 [components.json](/docs/components/components-json) 文件。
+
+```json
+{
+ "$schema": "https://ui.shadcn.com/schema.json",
+ "style": "default",
+ "rsc": true,
+ "tsx": true,
+ "tailwind": {
+ "baseColor": "slate",
+ "config": "tailwind.config.ts",
+ "css": "src/app/globals.css",
+ "cssVariables": true,
+ "prefix": ""
+ },
+ "aliases": {
+ "components": "@/components",
+ "hooks": "@/hooks",
+ "lib": "@/lib",
+ "ui": "@/components/ui",
+ "utils": "@/lib/utils"
+ },
+ "iconLibrary": "lucide",
+ "registries": {
+ "plate": {
+ "aliases": {
+ "ui": "@/components/plate-ui"
+ },
+ "url": "https://platejs.org/r"
+ }
+ }
+}
+```
+
+根据需要调整这些值。
+
+### 完成
+
+您现在可以开始向您的项目添加组件:
+
+```bash
+npx shadcx@latest add -r plate
+```
+
+### 添加编辑器(可选)
+
+选择一个编辑器开始使用([浏览可用的编辑器](/editors))。
+
+[最小编辑器](https://template.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-basic
+```
+
+[AI编辑器](https://playground.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-ai
+```
+
+这将在 `app/editor` 中添加一个页面,并在 `components/plate-ui` 中添加所有必要的组件作为起点。
+
+
diff --git a/apps/www/content/docs/cn/components/installation/next.mdx b/apps/www/content/docs/cn/components/installation/next.mdx
new file mode 100644
index 0000000000..09f1251183
--- /dev/null
+++ b/apps/www/content/docs/cn/components/installation/next.mdx
@@ -0,0 +1,81 @@
+---
+title: Next.js
+description: 安装和配置 Next.js。
+---
+
+
+
+**如果你正在使用 React 19,请查看 [Next.js 15 + React 19](https://ui.shadcn.com/docs/react-19) 指南。**
+
+
+
+## 快速开始
+
+选择你的编辑器以开始。这些命令将初始化你的项目并添加编辑器([浏览可用编辑器](/editors)):
+
+[Minimal Editor](https://template.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-basic
+```
+
+[AI Editor](https://playground.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-ai
+```
+
+这将在 `app/editor` 中添加一个页面,并在 `components/plate-ui` 中添加所有必要的组件作为起点。
+
+## 手动安装
+
+如果你更喜欢一步一步地设置你的项目,请按照以下说明进行操作:
+
+
+
+### 创建项目
+
+运行 `init` 命令以创建一个新的 Next.js 项目或设置现有的项目:
+
+```bash
+npx shadcx@latest init plate
+```
+
+### Configure components.json
+
+你将被问到几个问题来配置 `components.json`:
+
+```txt showLineNumbers
+Which color would you like to use as base color? › Slate
+Do you want to use CSS variables for colors? › no / yes
+```
+
+### 添加组件
+
+你现在可以开始向你的项目添加组件。
+
+```bash
+npx shadcx@latest add -r plate
+```
+
+上面的命令将向你的项目添加 `ParagraphElement` 组件。
+
+### 注册组件
+
+要向你的插件添加更多组件,请参阅 [Plugin Components](/docs/plugin-components#register-components)。
+
+### 添加编辑器(可选)
+
+选择一个编辑器开始使用([浏览可用编辑器](/editors))。
+
+[最小编辑器](https://template.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-basic
+```
+
+[AI编辑器](https://playground.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-ai
+```
+
+这将在你的项目中添加一个 `/editor` 页面,并添加所有必要的组件作为起点。
+
+
\ No newline at end of file
diff --git a/apps/www/content/docs/cn/components/installation/remix.mdx b/apps/www/content/docs/cn/components/installation/remix.mdx
new file mode 100644
index 0000000000..60c9796991
--- /dev/null
+++ b/apps/www/content/docs/cn/components/installation/remix.mdx
@@ -0,0 +1,48 @@
+---
+title: Remix
+description: 安装和配置 Remix。
+---
+
+
+
+### 安装 shadcn/ui
+
+按照 [shadcn/ui](https://ui.shadcn.com/docs/installation/remix) 指南进行操作。
+
+### 运行 CLI
+
+使用 CLI 初始化 Plate 在你的项目中:
+
+```bash
+npx shadcx@latest init plate
+```
+
+### 添加组件
+
+你现在可以开始向 `components/plate-ui` 添加组件:
+
+```bash
+npx shadcx@latest add -r plate
+```
+
+### 注册组件
+
+要向你的插件添加组件,请参阅 [Plugin Components](/docs/plugin-components#register-components)。
+
+### 添加编辑器(可选)
+
+选择一个编辑器开始使用([浏览可用编辑器](/editors))。
+
+[最小编辑器](https://template.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-basic
+```
+
+[AI编辑器](https://playground.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-ai
+```
+
+这将在你的项目中添加一个 `/editor` 页面,并添加所有必要的组件作为起点。
+
+
\ No newline at end of file
diff --git a/apps/www/content/docs/cn/components/installation/vite.mdx b/apps/www/content/docs/cn/components/installation/vite.mdx
new file mode 100644
index 0000000000..6207b3d2c4
--- /dev/null
+++ b/apps/www/content/docs/cn/components/installation/vite.mdx
@@ -0,0 +1,48 @@
+---
+title: Vite
+description: 安装和配置 Vite。
+---
+
+
+
+### 安装 shadcn/ui
+
+按照 [shadcn/ui](https://ui.shadcn.com/docs/installation/vite) 指南进行操作。
+
+### 运行 CLI
+
+使用 CLI 初始化 Plate 在你的项目中:
+
+```bash
+npx shadcx@latest init plate
+```
+
+### 添加组件
+
+你现在可以开始向 `components/plate-ui` 添加组件:
+
+```bash
+npx shadcx@latest add -r plate
+```
+
+### 注册组件
+
+要向你的插件添加组件,请参阅 [Plugin Components](/docs/plugin-components#register-components)。
+
+### 添加编辑器(可选)
+
+选择一个编辑器开始使用([浏览可用编辑器](/editors))。
+
+[最小编辑器](https://template.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-basic
+```
+
+[AI编辑器](https://playground.platejs.org/editor)
+```bash
+npx shadcx@latest add plate/editor-ai
+```
+
+这将在你的项目中添加一个 `/editor` 页面,并添加所有必要的组件作为起点。
+
+
diff --git a/apps/www/content/docs/cn/components/introduction.mdx b/apps/www/content/docs/cn/components/introduction.mdx
new file mode 100644
index 0000000000..08dc26d058
--- /dev/null
+++ b/apps/www/content/docs/cn/components/introduction.mdx
@@ -0,0 +1,92 @@
+---
+title: 介绍
+description: 使用 shadcn/ui、Radix UI 和 Tailwind CSS 构建的可重用组件。
+---
+
+这**不是**一个组件库。它是一个可重用组件的集合,你可以复制和粘贴到你的应用程序中。
+
+**你所说的“不是组件库”是什么意思?**
+
+我们指的是你不要把它作为依赖安装。它不是通过 npm 可用或分发的。
+
+选择你需要的组件。将代码复制并粘贴到你的项目中,并根据需要进行定制。代码是你的。
+
+_使用此作为构建你自己的组件库的参考。_
+
+## FAQ
+
+
+
+
+
+
+它是一个 [shadcn/ui](https://ui.shadcn.com/) 的替代品吗?
+
+
+
+
+不,它不是 [shadcn/ui](https://ui.shadcn.com/) 的替代品。
+相反,Plate UI 是一个扩展的组件集合,建立在 [shadcn/ui](https://ui.shadcn.com/) 和 [Radix UI](https://www.radix-ui.com/) 之上,专门为 **富文本编辑器** 设计。对于应用程序的其他部分,你应该继续使用其他组件,如 [shadcn/ui](https://ui.shadcn.com/)。
+
+Plate UI 遵循与 [shadcn/ui](https://ui.shadcn.com/) 相同的惯例、用法和模式,这意味着你可以无缝集成现有的 [shadcn/ui](https://ui.shadcn.com/) 组件,而不是替换它们。
+
+Next to [shadcn/ui](https://ui.shadcn.com/), Plate UI is the first published component registry.
+
+
+
+
+
+
+
+为什么复制/粘贴而不是作为依赖包?
+
+
+这个想法是让你拥有和控制代码,让你决定组件是如何构建和样式的。
+
+开始使用一些合理的默认值,然后根据需要定制组件。
+
+将组件打包到 npm 包中的一个缺点是样式与实现耦合。_组件的设计应该与其实现分开。_
+
+
+
+
+
+
+
+ 你计划发布它作为 npm 包吗?
+
+
+ 不。我们没有计划将它作为 npm 包发布。
+
+
+
+
+Which frameworks are supported?
+
+
+
+[Plate](/docs) 和任何支持 React 的框架。[Next.js](/docs/components/installation/next), [Remix](/docs/components/remix) 等等。
+
+
+
+
+
+
+ 我可以在我的项目中使用它吗?
+
+
+ 是的。免费用于个人和商业项目。不需要署名,但分享你的编辑器应用程序 [这里](https://github.com/udecode/plate/issues/818) 是受欢迎的!
+
+
+
+
+
+
+
+## 致谢
+
+- [shadcn/ui](https://ui.shadcn.com/) - 用于 UI、文档和 CLI。
+- [Radix UI](https://radix-ui.com) - 用于原语(primitive)。
+- [Vercel](https://vercel.com) - 用于托管。
+- [Shu Ding](https://shud.in) - 排版样式是基于他在 Nextra 上的工作。
+- [cmdk](https://cmdk.paco.me) - 用于 `` 组件。
diff --git a/apps/www/content/docs/cn/components/theming.mdx b/apps/www/content/docs/cn/components/theming.mdx
new file mode 100644
index 0000000000..663fa430cd
--- /dev/null
+++ b/apps/www/content/docs/cn/components/theming.mdx
@@ -0,0 +1,190 @@
+---
+title: 主题
+description: 使用 CSS 变量或 Tailwind CSS 实用类进行主题化。
+---
+
+你可以选择使用 CSS 变量或 Tailwind CSS 实用类进行主题化。
+
+## 实用类
+
+```tsx /bg-zinc-950/ /text-zinc-50/ /dark:bg-white/ /dark:text-zinc-950/
+
+```
+
+要使用实用类进行主题化,请将 `tailwind.cssVariables` 设置为 `false` 在你的 `components.json` 文件中。
+
+```json {8} title="components.json"
+{
+ "style": "default",
+ "rsc": true,
+ "tailwind": {
+ "config": "tailwind.config.js",
+ "css": "app/globals.css",
+ "baseColor": "slate",
+ "cssVariables": false
+ },
+ "aliases": {
+ "components": "@/components",
+ "utils": "@/lib/utils"
+ }
+}
+```
+
+## CSS Variables
+
+```tsx /bg-background/ /text-foreground/
+
+```
+
+要使用 CSS 变量进行主题化,请将 `tailwind.cssVariables` 设置为 `true` 在你的 `components.json` 文件中。
+
+```json {8} title="components.json"
+{
+ "style": "default",
+ "rsc": true,
+ "tailwind": {
+ "config": "tailwind.config.js",
+ "css": "app/globals.css",
+ "baseColor": "slate",
+ "cssVariables": true
+ },
+ "aliases": {
+ "components": "@/components",
+ "utils": "@/lib/utils"
+ }
+}
+```
+
+### 约定
+
+我们使用一个简单的 `background` 和 `foreground` 约定来设置颜色。`background` 变量用于组件的背景颜色,`foreground` 变量用于文本颜色。
+
+
+
+当变量用于组件的背景颜色时,`background` 后缀被省略。
+
+
+
+Given the following CSS variables:
+
+```css
+--primary: 222.2 47.4% 11.2%;
+--primary-foreground: 210 40% 98%;
+```
+
+以下组件的 `background` 颜色将是 `hsl(var(--primary))`,`foreground` 颜色将是 `hsl(var(--primary-foreground))`。
+
+```tsx
+Hello
+```
+
+
+
+**CSS 变量必须不带颜色空间函数定义**。更多信息请参阅 [Tailwind CSS 文档](https://tailwindcss.com/docs/customizing-colors#using-css-variables)。
+
+
+
+### 变量列表
+
+以下是可自定义的变量列表:
+
+
+
+```css title="Default background color of ...etc"
+--background: 0 0% 100%;
+--foreground: 222.2 47.4% 11.2%;
+```
+
+```css title="Muted backgrounds such as , and "
+--muted: 210 40% 96.1%;
+--muted-foreground: 215.4 16.3% 46.9%;
+```
+
+```css title="Background color for "
+--card: 0 0% 100%;
+--card-foreground: 222.2 47.4% 11.2%;
+```
+
+```css title="Background color for popovers such as , , "
+--popover: 0 0% 100%;
+--popover-foreground: 222.2 47.4% 11.2%;
+```
+
+```css title="Default border color"
+--border: 214.3 31.8% 91.4%;
+```
+
+```css title="Border color for inputs such as , , "
+--input: 214.3 31.8% 91.4%;
+```
+
+```css title="Primary colors for "
+--primary: 222.2 47.4% 11.2%;
+--primary-foreground: 210 40% 98%;
+```
+
+```css title="Secondary colors for "
+--secondary: 210 40% 96.1%;
+--secondary-foreground: 222.2 47.4% 11.2%;
+```
+
+```css title="Used for accents such as hover effects on , ...etc"
+--accent: 210 40% 96.1%;
+--accent-foreground: 222.2 47.4% 11.2%;
+```
+
+```css title="Used for destructive actions such as