ProseMirror - 用於在Web上構建富文字編輯器的工具包
這是一款可以生成結構化,語義上有意義的文件的內容編輯器,但這樣做的方式很容易讓使用者理解。ProseMirror試圖彌合Markdown文字編輯和經典WYSIWYG 編輯器之間的差距。
特點:
- 協同編輯
ProseMirror具有內建的,可靠的支援,用於協作編輯,其中多個人實時處理同一文件。 - 可擴充套件的模式
文件模式允許使用自定義結構編輯文件,而無需從頭開始編寫自己的編輯器。 - 模組化
模組化架構確保您只載入所需的程式碼,並可根據需要替換系統的各個部分。 - 可插拔
外掛系統允許您輕鬆啟用其他功能,並以方便的格式打包您自己的擴充套件。 - 實用
功能強大且不可變的體系結構使ProseMirror可以輕鬆整合到現代Web應用程式中,並可靠地實現複雜的行為。 - Unopinionated
核心庫很小且通用,提供了可以構建非常不同型別的編輯器的基礎。
網友評論:
ProseMirror中的許多想法都很好地反映了前端Web開發中的許多最佳現代趨勢(如React.js),網友lewisjoe認為:ProseMirror是我曾經使用過的最好的原始碼。
james認為:
1.該元件質量非常高,已被主要企業使用:紐約時報,衛報,Zoho ......
2.這個元件由在開源社群中受到廣泛認可的開發人員負責。
arclini:
我最近一直在構建一個編輯器,並考慮了Slate並簡要地使用了Draft(都建立在React之上)。我們最終使用了Quill。
如果你們中的任何一個人使用過Quill和Prosemirror,你們對兩者之間的差異印象如何?
這是我到目前為止所觀察到的:
1. DraftJS(React)適用於桌面,但沒有協作編輯,移動支援和有限開發的計劃。我們發現很難擴充套件自定義行為的貼上處理。另一方面,圍繞它建立了很多漂亮的庫(我們使用了中草案)
2. Slate(React)絕對是不需要移動支援的React開發人員的方法。它已經成熟並且擁有一個良好的開發者社群。一個缺點是一些流行的外掛失去了與最新版Slate的相容性,一些外掛維護者(特別是Gitbooks)決定停止跟蹤主線版本[1]
3. Quill(非React)似乎非常成熟,擁有良好的外掛生態系統。它不依賴於React Components,而是依賴於DOM和您構建的模型之間的嚴格對映。“模型”是DOM,可以這麼說,但是有很多限制來避免ContentEditable問題。我們發現它非常成熟,而且它是我們發現的3個開箱即用的移動和協作編輯支援中唯一的一個。這對我們很重要,所以我們今天最終使用它
lewisjoe:
我簡要分析一下ProseMirror以及Quill對比:
1. 與Quill相比,ProseMirror似乎建立了更好的文件。
2. ProseMirror的作者真正想到了每一個API,並且大部分細節都恰到好處。
例如,如果我應該在Quill vs ProseMirror之上構建一個語法檢查器,我在Quill中找不到任何API,它們允許我們用語法錯誤和建議來裝飾檢視,而不會用自定義節點汙染核心資料模型/屬性。另一方面,ProseMirror具有針對這種情況的裝飾器(view.Decorations>https://prosemirror.net/docs/ref/view.Decorations)的概念。這只是一個例子。
更多看看Quill自己的作者:https://news.ycombinator.com/item?id=15468402
Prosemirror比Quill更願意犧牲簡單的力量。這種價值差異體現在目標受眾,架構和API設計中:
1. Quill可以用於快速用例。Prosemirror特別警告:“如果您正在尋找一個簡單的drop-in富文字編輯器元件,ProseMirror可能不是您需要的。(我們希望這些元件能夠構建在它之上。)該庫針對要求苛刻,高度整合的用例進行了最佳化,但代價是簡單。“
2. Prosemirror的模式比Quill更靈活。Prosemirror似乎允許任何東西,而Quill強加一些約束。例如,Quill要求所有節點都是葉子,不能有子節點或容器,並且必須至少有一個子節點。Prosemirror中不允許有可以選擇生成子節點的節點。
根據我的經驗,Quill強加的約束導致跨瀏覽器的更一致和無錯誤的體驗。
3. Quill更受戰鬥考驗。Slack,Salesforce,LinkedIn,Intuit和許多其他人在他們面向使用者的主要生產產品中使用Quill,而不是僅限內部員工的工具。Prosemirror與紐約時報有一個良好的開端,但目前在採用方面存在很大差異。
相關文章
- ProseMirror - 模組化的富文字編輯框架ROS框架
- 線上富文字編輯器初探
- basecamp/trix: 用於日常寫作的富文字編輯器
- 在VueJS中使用 froala 富文字編輯器VueJS
- [Djangorestframework]-富文字編輯器的使用DjangoRESTFramework
- SpringMVC整合富文字編輯器SpringMVC
- 關於專案中使用的富文字編輯器markdown和傳統的富文字編輯器的對比和選擇
- 分享 - 富文字編輯器 Froala Editor
- SSM使用UEditor富文字編輯器SSM
- 半成品md富文字編輯器
- 深入淺出contenteditable富文字編輯器
- Eleditor移動端富文字編輯器
- iOS使用UITableView實現的富文字編輯器iOSUIView
- 富文字及編輯器的跨平臺方案
- 富文字編輯器Quill(二)上傳圖片與視訊UI
- vue 富文字編輯器 vue-quill-editorVueUI
- Django後臺管理配置富文字編輯器Django
- Tinymce - 宇宙第一富文字編輯器?[1]
- Tinymce - 宇宙第一富文字編輯器?[2]
- Tinymce - 宇宙第一富文字編輯器?[3]
- 九、Vue+Element使用富文字編輯器Vue
- HTML 頁面使用 wangeditor 富文字編輯器HTML
- 一個百度富文字編輯器的坑
- 富文字編輯器CKeditor的配置和圖片上傳,看完不後悔
- 幾種開源富文字編輯器對比
- quill 富文字編輯器自定義格式化UI
- 淺析富文字編輯器框架Slate.js框架JS
- 從零開始, 開發一個 Web Office 套件 (2): 富文字編輯器Web套件
- 從零開始, 開發一個 Web Office 套件 (1): 富文字編輯器Web套件
- Github基於Web的編輯器GithubWeb
- re-editor -- 開箱即用的react富文字編輯器React
- 日常筆記一:擷取富文字編輯器中的文字內容筆記
- web 應用線上編輯器 glitch 簡介Web
- 使用 Lambda Web Adapter 在 Lambda 上 構建 web 應用WebAPT
- 富文字編輯器:UEditor與wangEditor 初使用總結
- 各種富文字/ HTML編輯器和框架比較HTML框架
- 富文字編輯器 VUE-QUILL-EDITOR 使用教程 (最全)VueUI
- Element UI 整合富文字編輯器 vue-quill-editorUIVue