- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
代码沙盒示例:
https://codesandbox.io/s/slate-2-images-and-links-forked-s09wi
这基本上是 withLink() example来自官方文档。
当您按退格键或剪切以删除链接时,JSON 输出仍然包含带有空文本的链接数据。我不明白为什么它仍然保留在输出中。谁能为此提供解决方案?
withLink 示例:
const withLinks = editor => {
const { insertData, insertText, isInline } = editor
editor.isInline = element => {
return element.type === 'link' ? true : isInline(element)
}
editor.insertText = text => {
if (text && isUrl(text)) {
wrapLink(editor, text)
} else {
insertText(text)
}
}
editor.insertData = data => {
const text = data.getData('text/plain')
if (text && isUrl(text)) {
wrapLink(editor, text)
} else {
insertData(data)
}
}
return editor
}
const unwrapLink = editor => {
Transforms.unwrapNodes(editor, {
match: n =>
!Editor.isEditor(n) && SlateElement.isElement(n) && n.type === 'link',
})
}
const wrapLink = (editor, url) => {
if (isLinkActive(editor)) {
unwrapLink(editor)
}
const { selection } = editor
const isCollapsed = selection && Range.isCollapsed(selection)
const link: LinkElement = {
type: 'link',
url,
children: isCollapsed ? [{ text: url }] : [],
}
if (isCollapsed) {
Transforms.insertNodes(editor, link)
} else {
Transforms.wrapNodes(editor, link, { split: true })
Transforms.collapse(editor, { edge: 'end' })
}
}
最佳答案
我通过在 withLinks
插件中添加 normalizeNode 解决了这个问题。
const { normalizeNode } = editor
editor.normalizeNode = entry => {
const [node, path] = entry
if (Element.isElement(node) && node.type === 'paragraph') {
const children = Array.from(Node.children(editor, path))
for (const [child, childPath] of children) {
// remove link nodes whose text value is empty string.
// empty text links happen when you move from link to next line or delete link line.
if (Element.isElement(child) && child.type === 'link' && child.children[0].text === '') {
if (children.length === 1) {
Transforms.removeNodes(editor, { at: path })
Transforms.insertNodes(editor,
{
type: 'paragraph',
children: [{ text: '' }],
})
} else {
Transforms.removeNodes(editor, { at: childPath })
}
return
}
}
}
normalizeNode(entry)
关于javascript - 使用官方示例无法在Slate.js 编辑器中清楚地删除链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68511348/
尝试运行 Shopify 的 Slate,它安装了一个新主题,没有错误,但随后我们导航到该主题并尝试运行 slate start 或 slate zip,我收到此错误: .../node_module
Shopify 的 color swatches 教程Slate 尚不支持,并且代码库中引用的选择回调不再存在。是否可以修改本教程以使用 Slate 主题来创建单选按钮或样本,而不是在产品模板上选择变
我想制作一系列图,并将每个图保存到一个文件中。但我不知道如何消除以前的阴谋。也许我每次都需要创建一些新对象,但我不知道是哪个对象。这是我的代码,请注意评论。这是我的代码: import matplot
我有一个基于 Shopify Slate 构建的主题。我的所有产品都有各种尺寸和颜色可供选择。它们作为两个选择元素输出在页面上 - 一个用于尺寸,一个用于颜色。当我从这两个选项中选择选项并将产品添加到
我有一些需要从中提取信息的 pdf。我在centos 7 上使用python 和python 的lib slate。 一开始,slate 工作正常。但后来我必须更新几个模块和库。 slate 库不再起
相关代码块: { setValue(value); const { selection } = editor;
我想模仿 macOS 中的行尾快捷方式行为。我有这个: onKeyDown (event, change, next) { if (event.key === 'ArrowRight') {
我正在使用 slate admin 并显示一些图表并且效果很好,但我想更改这些图表的颜色(它们差别不大)。 这些颜色在哪里配置?是否可以通过 javascript 调用来实现? 谢谢! 最佳答案 终于
我正在寻找一种使用 C/C++ 以编程方式检测 Windows 8 Slate 设备的方法。我对“Slate”的定义是“配备触摸屏但没有专用物理键盘的可移植计算设备”(因此包括带有键盘底座的设备,但不
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
这个问题是关于让散列 URL(如 mydomain.com/somepage#SomeAnchor )从固定页面标题下滚动出来,当这些 URL 是跳转目标时。它是 this answered ques
这个问题在这里已经有了答案: How do I clear all variables in the middle of a Python script? (11 个答案) 关闭 6 年前。 这应该
我正在尝试模拟 onKeyDown Editor 上的事件来自 slate-core -- 相对于 slate-react -- 测试我正在开发的一些插件。但是,Editor未更新其Value任何。
我正在使用 C# 开发一个应用程序,意外地我开始收到此异常“Slate.exe 中发生了类型为‘System.StackOverflowException’的未处理异常”。 以下是我的代码的详细信息。
如何使用 Cypress 在 Slate 编辑器中插入文本?石板 onChange使用 cy.type() 键入时似乎没有调用处理程序或 cy.clear() . 最佳答案 Cypress 输入命令(
我发现自己处在一个相当脆弱的境地,我正在开发一个 Web 应用程序,其界面几乎完全使用 RaphaelJS 作为 SVG 的前端来表示,但无法访问目标系统(别误会我的意思开始)。目标系统是 Asus
我正在使用 slate.js 制作一个所见即所得的编辑器我正处于尝试找到第一个带有文本的节点的情况。 下图显示了我在说什么: Slate.js find first text pic 在我的图片中,我
我在 Slate 的 layout.scss liquid 文件中的 style/globals 中有以下语句。 {% if template == 'index' %} h1 { color:
我正在尝试覆盖我的 github.io 页面上的“forkme”横幅,以便更好地了解 Jekyll、HTML、CSS 和 GitHub 的工作原理。 为此,我创建了我的 ./assets/css/st
我对中间人和 ruby 没有经验,但我一直在努力获得 Slate工作,因此它在构建期间生成侧边导航/标题列表,而不是使用 javascript 的客户端。我遇到的问题是让代码包含来自 partials
我是一名优秀的程序员,十分优秀!