富文本編輯

引子

再次碰到須要使用富文本編輯的場景,發現了以前沒有想到的一些點,在此整理一下。react

參考點

在使用富文本插件的時候,在比較選擇時,我的發現如下幾個參考點:git

  • 文檔說明,這個能夠節約不少時間,不管是比較和使用時。
  • 國際化,有的真沒有國際化,連文檔也沒有說明。
  • 實現列表、連接、標題等各類效果是否使用了原生的 HTML 標籤,其樣式跟自身系統樣式重置是否有衝突,其它顯示編輯後富文本的地方也要考慮。
  • 字體的支持,加載額外的字體文件可能加大包的體積。
  • 圖片上傳的處理,有的插件須要本身寫。
  • 視頻插入的處理,有的插件只是插入一個連接,不一樣的視頻源可能效果會不同。
  • 判空,富文本里面可能一開始有默認的標籤,只是看不到,獲取的時候也拿獲得,但其實是沒有輸入內容。
  • 初始化、內容改變、獲取/失去焦點事件監聽,嵌入其它框架時有用處。
  • 擴展,這個分爲自定義和覆蓋原有功能兩種形式,看實際需求。

關於字體方面,見 Fontgithub

下面就是找到的一些免費開源的富文本插件比較。web

插件

如下僅供參考。框架

Quill

文檔上說,Quill 是一個爲兼容性和可擴展性而構建的所見即所得的現代編輯器。異步

截至 2019.12.12, 仍然處於有人維護狀態,結合上面的考慮點,有下面的一些我的體會。編輯器

好的方面:工具

  • 有獨立的包,大部分功能都不須要額外安裝其它依賴。
  • 實現的格式效果,有自身單獨的處理,例如 ul 標籤的樣式。
  • 支持部分視頻網站分享連接插入。
  • 擴展支持自定義和覆蓋。
  • 展現風格簡約。

很差的方面:字體

  • 文檔說明感受不怎麼好用。
  • 沒有國際化。
  • 圖片異步處理須要單獨重寫處理,沒有提供相應的 API 。
  • 工具欄和操做沒有對應的提示信息。

Summernote

文檔上說,Summernote 是一個超級簡單的所見即所得的編輯器。網站

截至 2019.12.12, 仍然處於有人維護狀態,結合上面的考慮點,有下面的一些我的體會。

好的方面:

  • 文檔比較完整好找。
  • 事件和方法豐富,包含圖片上傳異步處理 API。
  • 支持國際化。
  • 工具欄和操做都會有提示信息,並且圖片、表格伴有浮動操做工具。
  • 支持部分視頻網站分享連接插入。
  • 擴展支持自定義。
  • 展現風格簡約。

很差的方面:

  • 須要安裝額外的依賴包 JQuery。
  • 依賴 Bootstrap 的樣式和部分組件,但不是必需,也有不依賴的版本,若是以爲很差看,須要自行寫額外樣式調整。
  • 編輯時的效果使用的是 HTML 標籤原生的效果,例如 H 系列、ul、ol、table 。展現的地方須要重置樣式。

UEditor

文檔上說,UEditor 是所見即所得富文本 web 編輯器,具備輕量,可定製,注重用戶體驗等特色。

已無人維護了,在實際中使用過,主要功能仍是沒有問題的,結合上面的考慮點,有下面的一些我的體會。

好的方面:

  • 文檔詳細,由於開發人員也都是國人。
  • 獨立的包。
  • 支持國際化。
  • 實現的格式效果,部分有自身單獨的重置處理。
  • 功能很強大且豐富,通常富文本有的都有。
  • 草稿本地存儲。
  • 擴展支持自定義。

很差的方面:

  • 使用時初看像早期編輯器,一些交互的彈窗也很原始。
  • 使用的功能越多,配置相對其它插件要複雜一些。

Slate

文檔上說,Slate 是一個徹底可定製的富文本編輯框架。

截至 2019.12.12, 仍然處於有人維護狀態,結合上面的考慮點,有下面的一些我的發現。

好的方面:

  • 文檔列出了內部實現的相關屬性和方法,有中文版。
  • 獨立的包。
  • 實現的格式效果,有自身單獨的重置處理。
  • 支持部分視頻網站分享連接插入。
  • 選擇內容後支持浮動的操做工具。
  • 有對應定製的 react 版本。
  • 擴展支持自定義。

很差的方面:

  • 無國際化。
  • 偏重定製化,想要添加比較多的功能,須要花時間找對應包,看對應包文檔。
  • 工具欄的交互跟其它插件有些不同,要先選擇內容再選擇格式纔有效。
  • 提供的圖片上傳示例只支持圖片源 URL 的方式。
  • react 使用起來,看文檔比較複雜。

參考資料

相關文章
相關標籤/搜索