问题标签 [tiptap]
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.
javascript - tiptap - 在当前节点下方 / 末尾插入节点
我正在尝试使用 reactjs 创建一个带有tiptap的文本编辑器。我想在编辑器的每个“块”旁边创建一个按钮(paragraph
块,blockquote
块,codeblock
块,...),允许用户在所选块之前添加一个新的空块。它看起来像这样(概念编辑器):
所以我尝试这样做的方法是将光标位置设置在当前节点的末尾:
所以在这一点上,它起作用了。但是,当我尝试node
在这个位置插入一个新的......
...我收到一个错误:TypeError: Cannot read property 'nodeType' of null
因此,为了让您详细了解此错误,我在 codesandbox.io 上制作了一个沙箱。要重现该错误,您只需专注于编辑器,随意编写一些内容,然后单击+
按钮。您应该看到错误。
在此先感谢您的帮助 !
vue.js - 当我使用 yarn 将tiptap/vue-2 添加到我的项目中时,模块解析失败
我正在尝试按照官方文档将tiptap/vue-2 编辑器添加到我的项目中。我按照以下步骤操作:
rm -rf node_modules/ yarn.lock
yarn add @tiptap/vue-2 @tiptap/starter-kit
yarn install
(至此全部加载完毕,错误发生在第四步)我已添加
import { Editor } from '@tiptap/vue-2'
到我的 .vue 文件之一并尝试刷新浏览器,但出现此错误时:未捕获的错误:模块解析失败:意外令牌 (41:17) 您可能需要适当的加载程序来处理此文件类型。
| .find(nodeItem => nodeItem.type.name === type.name);
| 如果(节点){
| 返回 { ...node.attrs };
| }
| 返回 {}
请注意,该项目正在使用 webpack。
javascript - 如何修改 element-tiptap 以便能够从 cloudinary 上传?
我正在使用https://github.com/Leecason/element-tiptap,它有两种上传图片的方法,通过 URL 或上传图片,我找不到关于该主题的太多信息,但我想知道我是否可以更改图像的加载方式,目前它以 64 为基数,但我希望一切都来自 cloudinary,以便加载更快或有一种加载更快的方法。
vue.js - TipTap/VueJS - 如何检测按键
我有一个协作聊天应用程序,它使用tiptap作为它的消息传递区域。我发现它很有用,因为它已经可以支持多种格式并且可以增加一些灵活性。但是,在寻找侦听“输入”键的事件侦听器时,我发现自己卡住了。当用户按回车键时,我想提交他们的聊天并清除编辑器。
我找到了这个onUpdate事件监听器,但我找不到它检测到按下什么键的确切位置。
示例代码如下:
我正在使用 Vue2,顺便说一句。
谢谢
reactjs - 如何从tiptap react(typescript)所见即所得的内容中获取文本值?
我正在尝试获取输入到所见即所得的文本以将其存储到我的数据库中。
我尝试了很多不同的东西,这是我最近的迭代:
并且我得到的错误是 value 不是目标上的属性。我相信这是因为它不再是 HTML 输入元素,但我不确定现在如何获取该内容以放入数据库?
javascript - 如何根据文本选择更新下拉列表中的值
我正在开发一个基于 React 的 Google Docs 克隆作为一个副项目。我使用 TipTap 作为基础。
我想尝试模仿 Google Docs 中的功能,其中选择字段将根据用户选择的任何文本更新为适当的值(例如,如果用户使用 < 突出显示文本,则“标题 1”将显示在选择字段上h1></h1> 样式)。
这是我想模仿的功能的小视频:https ://i.gyazo.com/18cc57f0285c8c5cd80d5dd6051f0ee7.mp4
这是我迄今为止使用用于选择字段的 React Hook 的代码:
我试图围绕 React Hooks 和 Selection API,但我被困住了。这在 Javascript/React 中是否可行?
编辑:
我从 Tiptap 的 API 中找到了一个函数,它完全符合我的要求。我想现在的问题是如何将该值更新到选择中?这是我的新代码:
感觉解决方案非常简单,但我只是想多了。
javascript - 粘贴纯文本时如何更改tiptap 的行为?
我目前正在尝试使用一个名为tiptap 的库来实现一个可视化编辑器。
我认为 v2 是最常见的tiptap,但在某些情况下必须使用 v1。
但是,当我将纯文本粘贴到tiptap中时,我对这个行为并不满意,当我查看它时,我发现库中的prosemimirror中设置的条件与我的预期不同。
https://github.com/ProseMirror/prosemirror-view/blob/master/src/clipboard.js#L57-L59
似乎 prosemiror 将单个换行符转换为<p></p>
. 我想更改条件,以便它转换为<br>
是否有一个换行符,以及<p></p>
是否有两个换行符。但我不知道如何做到这一点,而且我很难过。
我首先使用tiptap 的EditorProps
功能覆盖prosemirror 的整个处理过程clipboardTextParser
。但是,clipboardTextParser
prosemiror 中使用了许多变量和对象,我不知道如何在 editorProps 中编写它们。我放弃了,因为我不知道如何继续。
有没有办法解决这个问题?我在想,如果tiptap 可以做几乎相同的事情clipboardTextParser
,那应该没问题。
请原谅我蹩脚的英语。请帮我!
css - 如何改变tiptap-vuetify的风格
我正在使用tiptap-vuetify(https://github.com/iliyaZelenko/tiptap-vuetify)作为我所见即所得的编辑器。但我不想要默认样式。唱它不把类或风格作为道具我怎么能按照我想要的方式来设计它(比如去除阴影,把灰色变成白色等)