您将如何通过分页实现富文本编辑器?

时间:2018-06-21 09:59:01

标签: javascript pagination rich-text-editor page-break

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

由于以前在内容可编辑方面的不良经验,我希望编辑器对文档模型使用一种方法(例如prose-mirrorslate)。

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

这里的难题是分页,但我以前看似面面俱到的编辑器却没有分页支持。

我有信心可以扩展现有的其中一个分页器,但我也知道这将需要大量工作,因此我真的很想从一开始就做出正确的决定

鉴于提供的信息,在实现带有分页的富文本编辑器时,您会选择哪种方法?

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

1 个答案:

答案 0 :(得分:0)

我们已经使用ProseMirror完成了分页。这很痛苦,但是只要您愿意编写自定义视图以支持您选择的显示方式,就有很多方法可以使其在模型中起作用-直接为页面建模,使用标记指示页面边界等。

关键决策着眼于

  1. 您的分页需要如何互动?
  2. 格式化是否流畅?

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

您可能还应该预先意识到ProseMirror是一个相对较快的文档引擎,但是对于较长的文档,在编辑器内分页确实令人眼前一亮的情况下,它仍然很难跟上工作量。我希望可以用WebAssembly之类的东西重写内核,这应该可以大大提高ProseMirror为此类工作所做的低级计算。