Rails 富文本编辑器 Trix

tiseheaini · 2018年09月27日 · 最后由 jasl 回复于 2018年10月05日 · 513 次阅读

Rails 框架的创造者 Basecamp 公司,开发了一个富文本编辑器 Trix,今天发布1.0版了。

https://github.com/basecamp/trix

共收到 16 条回复

搜了一下,好像开源免费的富文本编辑器也没几个(如果有麻烦推荐),所以 trix star 数很高,接近一万了。

不过 trix 一直不合我意的地方是回车插入 br,没有 p tag 全部是 div。要用的话得自己改了 https://github.com/basecamp/trix/issues/202

试过 trix,最后还是用了 summernote

https://github.com/ianstormtaylor/slate 认为 slate 才是心目中的完美的富文本编辑器

Rei 回复

插入br才是完美,不然在div框里面(比如引用内容)按回车也生成一行一行的div,很难用。

gaicitadie 回复

一个回车用 br,两个回车应该用 p

JGpirateKing 回复

完美!

Rei 回复

好像有一点超出web framework的范畴,但是看着真不错:https://www.youtube.com/watch?v=HJZ9TnKrt7Q

看来DHH是铁了心要带着Rails在Monolith上一条路走到黑了🤔

相比trix更喜欢quill一些,现代富文本编辑器,不直接产出html或者md而是中间格式,这个好处很多

看了源码和调试 demo,发现两个有趣的地方:

  1. Rich text 是独立一个 model,关联到原有 model 上面,类似 ActiveStorage 的设计。这是为了表很大时加速查询做的设计。
  2. html 内容 post 到后端时,ActionText 会对 attachment 做处理,替换为元信息的 element,这样就可以调整渲染时的模版。

这是全栈框架才能提供的功能,有助于新建项目时快速实现富文本编辑。

我们团队正在开发中的一个项目采用的是 Slate。📝

这样看 Active Text 已经是半个 Medium 了 , 感觉上 Rails 6 將有很多好东西,

Rei 回复

我们做文档管理平台的时候,早期正文都是存在主表里面的,后来发现那个表因为大量正文越来越大,而主表又时常因为业务调整,调整结构(加字段、调索引之类),由于表大,DDL 特别困难,后面也是将正文拆成了一个独立的 contents 表。

这样主表只有我 meta 信息,尺寸小了很多。而 contents 表结构固定,设计好以后几乎不会再调整。

另外,查询主表列表,关联查询之类不需要正文的场景也不再需要排除正文字段了。

huacnlee 回复

@hooopo 研究表单数据存储的时候,第一条优化这个 😂

fredwu 回复

如果 State 不依赖 React 简直完美,那作者对富文本编辑的现状思考很多啊

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册