问题标签 [slatejs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reactjs - 保存由多个用户编辑的富文本编辑器内容
我正在开发允许用户之间协作的编辑器(类似于 Google Docs)。我使用react
+slatejs
作为前端和nestjs
+mongoose
作为后端。要在前端和后端之间连接,我使用socketio
and axios
。我希望自动保存编辑器的内容。考虑到用户可以相互协作,即使有多个用户连接到编辑器,保存也应该只执行一次。在前端,我有一个包含已连接用户的数组,其中包含连接到编辑器的每个用户的套接字 ID。我创建了一个包裹在油门方法中的函数来自lodash
. 在上面的函数中,我将当前用户的套接字 id 与已连接用户数组的第一个元素进行了比较。如果它们相同,我会发出一个事件。我不知道这是否是正确的方法。最好的方法是什么?
谢谢。
popup - 使用 Debut 的 slate 创建弹出式购物车
我正在尝试使用石板_hideCartPopup
并_showCartPopup
响应 onclick 购物车的锚标签。我正在使用最新的debut
主题。
试过这个,但我有错误..
Uncaught TypeError: theme.Product._showCartPopup is not a function
javascript - 创建一个 slate.js 编辑器组件,将其状态保持在 markdown 中
我想创建一个slate.js
基于 -based 的编辑器组件,将其状态保持在 markdown 中。Slate.js 文档不断重复将状态序列化和反序列化到 md 应该是多么简单,但他们没有提供实际的方法来做到这一点。
remark-slate-transformer
基于以下两个示例,我尝试以非常直接的方式实现这样的编辑器: remark-slate-transformer,slate:
沙箱在这里
但这不是很好。我希望初始文本以粗体显示,但事实并非如此。每次击键时光标都会跳回位置 0。另外,当我删除字符串(value
变成''
)时,编辑器会中断。
制作状态存储为降价的编辑器组件的正确、轻松的方法是什么?
javascript - 无法使用官方示例在 Slate.js 编辑器中清楚地删除链接
代码沙盒示例:
https://codesandbox.io/s/slate-2-images-and-links-forked-s09wi
这基本上是官方文档中的withLink() 示例。
当您按退格键或剪切键删除链接时,JSON 输出仍包含带有空文本的链接数据。我不明白为什么它仍然保留在输出中。任何人都可以为此提供解决方案吗?
withLink 示例:
javascript - Slate.js - 大括号不起作用
尝试修改提及示例以使用两个大括号 ( {{
) 而不是@
用于触发弹出窗口的符号。最终希望选定的文本呈现为:
{{R2-D2}}
而不是@R2-D2
.
问题似乎beforeText
是自从换行以来没有得到完整的单词。对于每个输入的文本,它都会跳转并删除前括号,因此 beforeMatch (now beforeText.match(/^(\{{2})(\w+)$/)
)中替换的正则表达式无法解析。
对于: like {
beforeText 是: like {
对于: like {{
beforeText 是: like {{
对于: like {{R
beforeText 是: {R
输入第一个字母时,如何让 beforeText 不跳转到删除第一个括号?已尝试向 .before() 选项添加距离选项,但结果相同。
javascript - 如何清除 Slatejs v0.50+ 中的编辑器?
我不知道如何在 Slate v0.50+ 的编辑器中删除所有内容。
我曾经能够做这样的事情:
我现在该怎么做?
javascript - 如果特定单词出现在编辑器中,则更改它们的颜色
我有一个石板文本编辑器。我有一个单独的组件,它是由一组预定义单词映射的 div。该部分是要使用的关键字。如果它们存在于编辑器中,我希望能够更改关键字中单词的颜色以使用不同的颜色。
我考虑这个的方式是我可以将我将要在编辑器中写的单词存储在一个状态,如果有新的东西写出来,它会不断更新。而且我已经有了一系列单词。我必须以某种方式找到在这两个数组之间进行通信的方法。
我该如何处理?
reactjs - 如何在 slate js 中为特定关键字着色
试图让单词“hello”以不同的颜色出现,使用示例中的示例几乎 1:1,但无法使其正常工作。
每当我输入“你好”时,文本开始出现两次。
我的代码: