如何实现带分页的富文本编辑器?

问题描述 投票:0回答:2

作为一个更大项目的一部分,我将实现一个带分页的富文本编辑器。

由于之前在内容可编辑方面的糟糕经历,我更希望编辑器使用文档模型的方法(例如,prose-mirrorslate)。

编辑器将只有少数用户可以插入的元素,因此数量功能并不是很重要。

这里的难题是分页,不幸的是,我见过的其他看起来不错的编辑器都没有支持开箱即用。

我相信我有能力通过分页支持扩展现有的编辑器之一,但我也知道这需要大量工作,所以我真的想从一开始就做出正确的决定。

根据所提供的信息,您会选择哪种方法来实现带分页的富文本编辑器?

非常欢迎有关扩展/使用各种编辑器的过去经验的技术细节和故事。

javascript pagination rich-text-editor page-break
2个回答
4
投票

我们已经使用 ProseMirror 完成了分页。这是一个痛苦的事情,但是有很多方法可以让它在模型中工作 - 直接建模页面,使用标记来指示页面边界等 - 只要你愿意编写自定义视图来支持你选择的表示.

关键决策集中于

  1. 您的分页需要如何互动?
  2. 您的格式有多流畅?

如果您同意“最终”正确的分页,并且您有固定每行字符的规则(基本上是伪等宽),那么您在 PM 中就可以了。如果您现在需要正确的分页并支持不同的字体,您将不得不依靠浏览器测量元素大小的能力,这意味着大量的“阴影”渲染。

您可能还应该预先意识到 ProseMirror 是一个相对较快的文档引擎,但是对于编辑器内分页确实很出色的长文档,它仍然难以跟上工作负载。我希望核心可以用 WebAssembly 之类的东西重写,这应该为 ProseMirror 为此类东西所做的低级计算提供显着的加速。


0
投票

这是我基于prosemirror和tiptap分页的开源实现 https://github.com/Cassielxd/CassieEditor

© www.soinside.com 2019 - 2024. All rights reserved.