gpt4 book ai didi

javascript - 鹅毛笔 : How to add links to the editor content that don't get saved to the delta?

转载 作者:行者123 更新时间:2023-11-28 03:22:09 25 4
gpt4 key购买 nike

在我的应用程序中使用 Quill 时,我尝试添加动态链接到资源的功能 - 即,如果用户键入用户名或页面名称,它会将其包装在指向该资源的链接中。问题是,我不希望将这些更改提交到增量或保存回服务器1

有没有办法屏蔽/过滤 Quill 的编辑器内容,而不将屏蔽的更改发送回 delta?或者是否有另一种方法可以达到相同的结果?它所需要的只是一个 <a>未保存到增量的标记。

我已经成功编写了一个 Quill 插件来识别资源并将它们包装在用户输入的链接中,但似乎对编辑器内容的任何类型的修改都会提示更改被吸收到增量中。天啊,如果我通过开发控制台修改元素,Quill 就会接收到更改。

我想过让链接存在于增量中,并在保存到服务器之前删除格式 - 但我的实现使增量变得越来越支离 splinter ,并且在几次重新加载/ session 之后,它越来越破坏了我的代码检测新内容的能力链接。

我的下一个想法是创建第二个/克隆编辑器窗口,并以某种方式有选择地将输入同步回主编辑器窗口。不过,在两个窗口之间保持内容同步的后勤工作似乎是一场噩梦,尤其是在使用工具栏按钮时。

<小时/>

1The reason I don't want these changes in the delta is that resources are very dynamic - hundreds could be added or deleted between sessions, and having thousands of files each save hundreds of references to long-dead resources adds up to a lot of overhead. It's ideal for the links to be client-side-only.

最佳答案

羽毛笔内容IS Delta。您不能在编辑器中放入最终不会被过滤(以某种方式)或插入到 Delta 中的内容。编辑器中出现的内容是 Delta 的反射(reflect)。

I thought about just letting the links live in the delta, and removing the formatting before saving to the server - but my implementation left the delta increasingly fractured, and after a few reloads / sessions it increasingly broke my code's ability to detect new links.

正如您所提到的,在将 Delta 发送到服务器之前对其进行更改的想法在我看来是最可行的解决方案。您应该记住,Delta 只是一个具有单个属性 (ops) 的 JSON 对象,它是表示反射(reflect) Quill 内容所需操作的对象向量,因此有两种方法可以更改它:

  1. 获取 Delta 对象并通过 JavaScript 根据需要更改其属性。
  2. 使用正则表达式有选择地删除或更改所需的内容部分内容。

我建议您采用第一种方法,因为有一个 API 可以执行此类过程。另外,您可能可以在 utility section 中找到帮助。 。举个例子,看看是否 this link可以给你一个想法。

请记住,理想情况下,您不应该更改 Quill Delta(从编辑器),因为这会改变用户在其中看到的内容。您必须使用它的副本。通过这种方式,您可以保持内容完整,并在需要坚持时产生所需的结果。

请注意,根据您所做更改的结果,当需要从数据库读取数据时,您可能需要反转该过程。毕竟,Quill 最终可能无法理解它,and the content may end up being filtered out 。考虑到这一点,我们可能会认为您将创建一种翻译器,负责从两种不同的“语言”读取和保存。

为了让服务器不承担翻译每个发送和接收的 Delta 的责任,我建议您在客户端定义翻译代码,用 JavaScript 编写。

另外一点,如果您需要有关 Quill 的更多信息,您可以找到您需要的一切 on its website ,还有更多 here .

如果您仍然需要帮助,我请您提供一个示例,说明您认为 Delta 应该是什么样子。

关于javascript - 鹅毛笔 : How to add links to the editor content that don't get saved to the delta?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59042760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com