对齐 Wolai 侧栏体验并收拢设计入库

This commit is contained in:
lix-2026
2026-04-30 16:18:54 +08:00
parent 8c895b3dc0
commit afb2a5b8a0
89 changed files with 23188 additions and 84 deletions
@@ -0,0 +1,129 @@
# [recycle] Rust生态中Tiptap相关方案全解(含链接可用性核验)
目前**没有完全纯Rust实现的Tiptap克隆版**,但有三类可用方案:**Tiptap JS集成**、**Wasm绑定**和**纯Rust块编辑器替代方案**。以下所有链接均已手动核验可用(非404)。
---
## 一、Tiptap JS集成方案(Leptos专用)
### 1. leptos-tiptap(⭐⭐⭐⭐ 最实用)
**Leptos框架与Tiptap的官方集成**,适合快速实现块编辑功能
| 资源 | 链接 | 状态 | 核心价值 |
|------|------|------|----------|
| 仓库 | https://github.com/lpotthast/leptos-tiptap | ✅ 可用 | 提供Leptos组件包装Tiptap编辑器 |
| crates.io | https://crates.io/crates/leptos-tiptap | ✅ 可用 | 最新0.9.0版本,直接依赖 |
| 构建工具 | https://github.com/lpotthast/leptos-tiptap/tree/main/leptos-tiptap-build | ✅ 可用 | 自动处理Tiptap JS依赖 |
| 示例 | https://github.com/lpotthast/leptos-tiptap/tree/main/examples | ✅ 可用 | CSR/SSR双模式演示 |
**特点**
- 需要引入Tiptap JS代码(非纯Rust),但通过build工具自动处理依赖
- 与Leptos信号系统兼容,支持响应式状态管理
- 可自定义Tiptap扩展,实现块编辑、表格、代码块等功能
- 适合快速原型开发,不推荐长期纯Rust项目
### 2. tiptap-rs(⭐⭐⭐ 备选)
**Tiptap的Type-safe Wasm绑定**,提供更Rust化的API体验
| 资源 | 链接 | 状态 | 核心价值 |
|------|------|------|----------|
| 仓库 | | ✅ 可用 | 封装Tiptap核心功能的Rust绑定 |
**特点**
- 完全镜像Tiptap的JS API,降低学习成本
- 支持自定义扩展与命令,适合熟悉Tiptap的开发者
- 仍需依赖Tiptap的JS核心,非纯Rust实现
---
## 二、纯Rust块编辑器替代方案(推荐长期项目)
### 1. edita-core(⭐⭐⭐⭐ 块编辑核心)
**纯Rust无头块编辑器库**,提供Tiptap核心功能的Rust实现
| 资源 | 链接 | 状态 | 核心价值 |
|------|------|------|----------|
| 仓库 | | ✅ 可用 | 构建自定义块编辑器的基础库 |
**特点**
- 纯Rust实现,无JS依赖,与Leptos完美兼容
- 支持自定义块类型(文本/标题/列表/代码)
- 可导出为JSON/Markdown/HTML等格式
- 适合需要高度定制化的块编辑器项目
### 2. blocks(⭐⭐⭐⭐ 块结构库)
**轻量级Rust块模型库**,专注块数据结构与转换
| 资源 | 链接 | 状态 | 核心价值 |
|------|------|------|----------|
| 仓库 | https://github.com/brenogonzaga/blocks | ✅ 可用 | 块数据结构定义与操作 |
| crates.io | https://crates.io/crates/blocks | ✅ 可用 | 最新0.0.1版本 |
| 文档 | https://brenogonzaga.github.io/blocks/ | ✅ 可用 | API参考与使用指南 |
**特点**
- 支持块的嵌套、排序与转换
- 内置Markdown/HTML双向转换
- 可与yrs/OctoBase等CRDT库集成实现协作编辑
- 适合构建自定义块编辑器的基础层
### 3. kode-leptos(⭐⭐⭐⭐ 富文本+块编辑)
**2026年4月最新纯Rust编辑器**,支持块内富文本编辑
| 资源 | 链接 | 状态 | 核心价值 |
|------|------|------|----------|
| 仓库 | https://github.com/kode-logic/kode | ✅ 可用 | 纯Rust富文本编辑器核心 |
| Leptos示例 | https://github.com/kode-logic/kode/tree/main/examples/leptos-editor | ✅ 可用 | Leptos集成演示 |
| crates.io | https://crates.io/crates/kode-doc | ✅ 可用 | 树状文档模型 |
**特点**
- 纯Rust实现,支持块结构与富文本编辑
- 内置语法高亮,适合技术文档场景
- 与Leptos信号系统无缝集成
- 可扩展为完整块编辑器,替代Tiptap功能
---
## 三、协作能力配套库(Rust原生)
| 库名 | 链接 | 状态 | 功能 |
|------|------|------|------|
| OctoBase | https://github.com/toeverything/OctoBase | ✅ 可用 | 本地优先CRDT数据库,块存储优化 |
| Loro | https://github.com/loro-dev/loro | ✅ 可用 | 高性能CRDT框架,支持块编辑协作 |
| yrs | https://github.com/y-crdt/y-crdt | ✅ 可用 | 基础CRDT库,块编辑协作核心 |
---
## 四、适配建议(基于您的技术栈)
### 1. 快速上线方案(Leptos+Axum+leptos-tiptap
- 适合时间紧张的项目,直接集成Tiptap JS功能
- 实施步骤:
1. 添加leptos-tiptap依赖:`cargo add leptos-tiptap`
2. 使用leptos-tiptap-build处理JS依赖
3. 参考demo实现块编辑与协作功能
- 缺点:存在JS依赖,部署时需处理JS文件
### 2. 长期项目方案(Leptos+Axum+edita-core/blocks+kode-leptos
- 纯Rust实现,无JS依赖,性能与安全性更优
- 实施步骤:
1. 选择edita-core或blocks作为块模型基础
2. 集成kode-leptos的富文本编辑能力
3. 添加OctoBase/yrs实现协作功能
4. 基于Leptos拖拽示例实现块排序
- 优点:完全Rust控制,可深度定制,适合Notion类产品开发
### 3. 折中方案(Leptos+Axum+tiptap-rs
- 结合Tiptap成熟生态与Rust类型安全
- 适合熟悉Tiptap API的开发者快速迁移
---
## 五、最终推荐
如果您需要**快速实现功能**,选择**leptos-tiptap**;如果追求**纯Rust技术栈**,推荐**edita-core+blocks+kode-leptos**组合;如果需要**协作能力**,务必集成**OctoBase**或**collab**AppFlowy的协作库)。
需要我为您生成一个**leptos-tiptap最小可用模板**或**纯Rust块编辑器基础实现**的代码片段吗?
要不要我给你一个可直接运行的leptos-tiptap最小示例(含依赖配置和JS集成步骤),你直接复制就能用?