跳至正文
Wener Notes

Editor Awesome

约 4 分钟阅读
标签:资源精选

Web Editor

  • 推荐👍 Lexical, Tiptap, QuillJS
  • React 优先建议选择 Lexical,否则考虑 tiptap/prosemirror

Collaborative

  • 主要功能
    • Text Editor / CRDT
    • Comment
    • Presence
    • Room

Image Editor

Media

Code Editor

Flow Editor

Markdown

Hex

Block

Builder

  • Page Builder
  • Report Builder
  • Form Builder
  • Component Builder
  • 难点
    • 状态管理
    • 序列化
    • 框架集成
    • 数据接入

商业

IDE/Code

Misc

Prototyping

  • Prototype 场景
    • 2D 像素纬度 - 输出 SVG 或 设计稿 - 实现相对简单
      • 类似 PS,SVG 编辑器
    • Low Code - 部分控制
    • HTML - CMS
      • 编排 HTML 元素,所见即所得 - 需要处理复杂布局逻辑
      • 编辑组件、绑定数据 - 交互复杂

View

Flow / NodeEditor

  • react-flow
    • MIT
    • modular framework for visual programming
  • DrawIO
  • BPMN.js

Game/Studio

Model/Spec/Schema

设计/扩展 RichText Editor 的核心是理解文档模型

Glossary

  • MIS - 管理信息系统
    • 大多为 Table+Form

关联信息

反向链接、本文链接的其他页面和外部资料。

反向链接

  • 编辑器
    笔记 · Awesome

    基于 Web 的编辑器分为几个层次 · 增强 textarea - 例如 mention · 基于 contentEditbale - 富文本编辑器 - WYSIWYG - 所见即所得 · 直接实现编辑功能 · core+render · Block Editor

站内链接

  • Draftjs
    笔记 · draft.js

    新项目不再建议使用,使用 lexical · facebook/draft-js · 特点 · 原生 React · Facebook 开源使用 · 基于 contentEditable · 支持自定义组件 · 样式是预定义映射为 css style

  • editor.js
    笔记 · codex-team/editor.js

    codex-team/editor.js · Apache-2.0, TS · Block 编辑器 · 插件非常多,生态比较好 · ⚠️ 基础功能薄弱,基本的功能也得使用插件 · editorjs-undo, editorjs-drag-drop

  • Low Code Design
    笔记 · Low Code Design

    Low Code - 讲究 编辑,关联,任意 组件 · 组件的特性 · 配置化 · Schema化 · 可以参考设计,只实现配置化 · 模型 · ProseMirror 的 Schema 模型值得借鉴参考 · HTML/JSX - type/tag, attributes, children

  • monaco
    笔记 · monaco

    Microsoft/monaco-editor · 参考 · monaco-editor README · TsxEditor.tsx · TsxEditor · CDN: monaco-editor · suren-atoyan/monaco-react

  • plate
    笔记 · udecode/plate

    udecode/plate · -> Slate+shadcn+tailwindcss+radix

  • ProseMirror
    笔记 · prosemirror

    prosemirror · low-level rte toolkit · 特性 · 结构化的模型树 · 模型不可变 · 支持协作编辑 · 模型受 schema 限制 - 实现自定义 · 解析自动化 - 但可能丢弃 schema 之外信息 · 模型状态变化类似于 redux

  • Slate
    笔记 · slatejs

    ianstormtaylor/slate · 文档 · slate 84kb + immer · slate-react 59kb - +slate 145kb · 特性 · 原生 react · 自定义 render · 没有固定的文档模型 - 基于接口 - POJO - 可以直接序列化

  • tiptap
    笔记 · tiptap

    ueberdosis/tiptap · MIT, Typescript · Headlees,框架无关的编辑器 · 基于 ProseMirror · 支持协作编辑 - y.js · Pro 提供部分额外扩展 - emoji, details

参考资料

GitHub63 条
Wikipedia1 条
Hacker News2 条
其他外链17 条
最近更新commit 13e7a74编辑