ProseMirror - 用於在Web上構建富文字編輯器的工具包

banq發表於2019-01-26

這是一款可以生成結構化,語義上有意義的文件的內容編輯器,但這樣做的方式很容易讓使用者理解。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與紐約時報有一個良好的開端,但目前在採用方面存在很大差異。



 

相關文章