博客 / 詳情

返回

TinyEditor v4.0 alpha 版本發佈:表格更強大,表情更豐富,上傳體驗超乎想象!

你好,我是 Kagol,個人公眾號:前端開源星球

TinyEditor 是一個基於 Quill 2.0 的富文本編輯器,在 Quill 基礎上擴展了豐富的模塊和格式,框架無關、功能強大、開箱即用。

  • 源碼:https://github.com/opentiny/tiny-editor/
  • 官網:https://opentiny.github.io/tiny-editor/

對於富文本編輯器來説,插入圖片、視頻、表情,插入和編輯表格,這些都是非常常見的功能,因此我們對這幾個模塊做了重點優化和重構。

更強大的表格

之前的表格模塊基於 quill-better-table 實現,現在這個項目已經不維護了,為了讓 TinyEditor 的表格功能更好地演進下去,TinyEditor 項目核心貢獻者 zzxming 對錶格模塊進行了重構,使用了 quill-table-up 作為底層實現,替換了不維護的 quill-better-table。

quill-table-up 是 zzxming 設計和實現的,基於 Quill 2.0,擁有更好的模塊化設,、更強的功能、更優的體驗,而且一直在持續維護中。

quill-table-up 支持 quill-better-table 所有的功能,並且做了大量增強:

  • 支持單元格中插入塊級元素,比如:標題、引用、代碼塊等
  • 支持自定義單元格背景色、邊框顏色
  • 拖拽改變行高/列寬,調整表格整體寬高
  • 除了右鍵工具欄菜單,還支持常駐顯示工具欄
  • 支持斜線快捷菜單插入表格,支持上下左右方向鍵選擇表格行/列大小

quill-table-up 做了很好的模塊化設計,每個特性是一個單獨的文件,支持按需引入和使用,這一點對於富文本這邊的大型組件來説非常友好,可能每個業務只需要其中一部分功能,就可以不需要引入,打包時也不會包含這個特性的代碼,能有效地減少包體積。

感謝 zzxming 在表格模塊重構和優化中付出的努力,提升了 TinyEditor 富文本編輯器的表格操作體驗。

歡迎朋友們給 quill-table-up 開源項目點個 Star 支持下!

源碼:https://github.com/zzxming/quill-table-up(歡迎 Star)

使用起來非常簡單。

import FluentEditor, { generateTableUp } from '@opentiny/fluent-editor'
// 按需導入 quill-table-up 特性模塊
import { defaultCustomSelect, TableMenuSelect, TableSelection, TableUp } from 'quill-table-up'
// 引入樣式文件
import 'quill-table-up/index.css'
import 'quill-table-up/table-creator.css'

// 註冊 table-up 模塊
FluentEditor.register({ 'modules/table-up': generateTableUp(TableUp) }, true)

const TOOLBAR_CONFIG = [
  [{ header: [] }],
  ['bold', 'italic', 'underline', 'link'],
  [{ list: 'ordered' }, { list: 'bullet' }],
  ['clean'],
  // 配置工具欄菜單項
  [{ 'table-up': [] }],
]

new FluentEditor(element, {
  theme: 'snow',
  modules: {
    'toolbar': TOOLBAR_CONFIG,
    // 配置 table-up 模塊
    'table-up': {
      // 配置工具欄中選擇表格行/列數量
      customSelect: defaultCustomSelect,
      
      // 配置拖選多個單元格,進行後續操作,比如:合併單元格、設置單元格背景色等
      selection: TableSelection,
      selectionOptions: {
        // 配置工具欄菜單的顯示方式,支持點擊右鍵顯示、選擇單元格後常駐顯示兩種形式
        tableMenu: TableMenuSelect,
      },
    },
  },
})

效果如下:

1表格單元格菜單效果.gif

更多特性歡迎大家使用和體驗。

體驗地址:https://opentiny.github.io/tiny-editor/docs/demo/table-up

更豐富的表情

在富文本中插入表情,雖然不是一個必須的功能,但卻能讓富文本內容更加有趣,比如我用富文本編輯器寫一篇文章,如果能再文章中插入可可愛愛的 Emoji 表情,將是一件多麼美妙的事情。

之前的 TinyEditor 支持的表情數量有限,而且沒有做分類,不支持搜索,想要找一個想要的表情太難了。vaebe 基於 emoji-mart 實現了一個新的 Emoji 模塊,不僅支持更多表情,而且做了分類,支持表情的搜索、預覽、最近實用的表情等實用的功能。

使用之前需要先安裝對應的依賴:

npm i @floating-ui/dom @emoji-mart/data emoji-mart

然後分別在工具欄和模塊開啓 emoji 即可。

import FluentEditor from '@opentiny/fluent-editor'

const TOOLBAR_CONFIG = [
  [{ header: [] }],
  ['bold', 'italic', 'underline', 'link'],
  [{ list: 'ordered' }, { list: 'bullet' }],
  ['clean'],
  // 配置 Emoji
  ['emoji'],
]

new FluentEditor(element, {
  theme: 'snow',
  modules: {
    'toolbar': TOOLBAR_CONFIG,
    // 配置 emoji 模塊
    'emoji': true,
  },
})

效果如下:

2emoji表情效果.gif

對比下之前的表情面板:

3.png

新版的表情功能,UI 和體驗都比之前的好太多了,感謝 vaebe 給我們提供了一個這麼好用的表情功能。

更多特性歡迎大家使用和體驗。

體驗地址:https://opentiny.github.io/tiny-editor/docs/demo/emoji

體驗更好的圖片/視頻/文件上傳功能

“富文本”意味着不僅僅是文字,還包含圖片、視頻等更豐富的內容,之前的圖片、視頻、文件上傳是獨立的三個模塊,這就導致很多功能上的重複,比如校驗文件格式、大小,多圖、多文件上傳,調整圖片、視頻寬高,圖片、文件的下載等功能,每個模塊都要實現一遍。

zzxming 敏鋭地識別到了這個問題,並將圖片、視頻、文件模塊合併成一個模塊,默認會處理視頻與圖片格式,其他格式統一被處理為文件顯示。

  • 圖片可以拉伸放大縮小,可以左中右對齊,可以複製、下載
  • 視頻可以播放、暫停、下載、全屏、調整聲音
  • 文件可以查看大小、下載、刪除

使用起來非常簡單,只需要在工具欄配置中配置即可。

import FluentEditor from '@opentiny/fluent-editor'

const TOOLBAR_CONFIG = [
  [{ header: [] }],
  ['bold', 'italic', 'underline', 'link'],
  [{ list: 'ordered' }, { list: 'bullet' }],
  ['clean'],
  // 配置圖片、視頻、文件上傳功能
  ['file', 'image', 'video'],
]

new FluentEditor(element, {
  theme: 'snow',
  modules: {
    'toolbar': TOOLBAR_CONFIG,
  },
})

效果如下:

4文件上傳效果.gif

更多特性歡迎大家使用和體驗。

體驗地址:https://opentiny.github.io/tiny-editor/docs/demo/file-upload

往期推薦文章

  • 👍TinyEditor:一個基於 Quill 2.0 的富文本編輯器,功能強大、開箱即用!
  • 🎈TinyEditor 富文本開源2個月的總結:增加格式刷、截屏、TypeScript 類型聲明等新特性
  • 🥳重磅更新!TinyEditor 開源富文本支持 LaTeX 可編輯公式啦~
  • 🎉喜報!TinyEditor 開源富文本迎來了第一位貢獻者
  • 👏讓我們一起來建設 TinyEditor 開源富文本編輯器吧!
  • ✨TinyEditor v3.25.0 正式發佈!2025年第一個版本,增加標題列表導航、分隔線等實用特性

聯繫我們

GitHub:https://github.com/opentiny/tiny-editor(歡迎 Star ⭐)

官網:https://opentiny.github.io/tiny-editor

個人博客:https://kagol.com.cn

小助手微信:opentiny-official

公眾號:OpenTiny

user avatar yaofly 頭像 coderleo 頭像 susouth 頭像 buxia97 頭像 ailim 頭像 waweb 頭像 frontoldman 頭像 iymxpc3k 頭像 huanjinliu 頭像 nihaojob 頭像 warn 頭像 cipchk 頭像
23 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.