@yungu-fed/rich-text-editor
v0.1.5
Published
React editor component library for question-related editing workflows.
Keywords
Readme
@yungu-fed/rich-text-editor
React editor component library for question-related editing workflows.
Development
This package is managed independently from consuming applications.
pnpm install
pnpm ladleBuild
pnpm build
pnpm build-ladleThe package publishes ESM, CommonJS, and TypeScript declarations from dist.
React, React DOM, and Slate runtime packages are peer dependencies and are not
bundled.
Use In A Parent Project
During local integration:
{
"dependencies": {
"@yungu-fed/rich-text-editor": "file:./packages/rich-text-editor"
}
}After publishing:
{
"dependencies": {
"@yungu-fed/rich-text-editor": "^0.1.0"
}
}Then import editor APIs from the package root:
import { RichTextEditor } from '@yungu-fed/rich-text-editor'Editor Value 与节点插件
编辑器内容使用 Slate JSON。每个 RichTextEditor.Editor 都可以通过 value / onChange 读取和控制
内容。Root 只负责共享 toolbar 与编辑运行时。apiRef 只暴露稳定命令式能力,例如 getValue、focus、
blur、isFocused、runCommand、insertNode;不暴露原始 Slate editor。
多个 editor 的编辑焦点状态通过 Root.onEditorFocusChange 观察;不要通过 DOM
focus、CSS selector 或 Slate selection 推断共享 toolbar 是否应该显示。
自定义节点通过 RichTextEditorPlugin.nodes 声明。Toolbar 插入统一使用
RichTextEditor.Toolbar.InsertNodeButton;节点定义决定该节点是否 inline、void、
markable,以及如何插入、渲染、normalize 和通过 codecs 转换。完整 API 和示例见
docs/compound-component-api.md。
Compatibility
- Runtime peer range: React
>=16.14 <20 - Local development baseline: React
16.14.0 - Do not use React 18+ only APIs in exported components.
- Slate runtime is bundled by this package:
[email protected],[email protected], and[email protected]. - Consumers only need to provide React and ReactDOM peer dependencies.
