常见问题
一些关于 Slate 的常见问题是:
为什么将内容粘贴为纯文本?
Slate 核心的原则之一就是这个,不像其它的编辑器,它 没有 规定你用哪种特殊的 "schema" 来编辑内容。这意味着 Slate 核心没有块引用和加粗格式的概念。
最重要的一点是,这样增加了扩展性(而没有其他副作用),但是有一些情况下你不得不做更多的工作。粘贴就是这些情况之一。
因为 Slate 对于你的域一无所知,它不知道如何解析被粘贴的 HTML 内容(或者其它内容)。所以默认情况下无论用户粘贴什么内容到 Slate 编辑器,它都会解析为纯文本。如果你想要它可以更智能地解析粘贴内容,你需要按照你的需求去重写 insert_data
命令和 反序列化 DataTransfer
对象的 text/html
数据。
Slate 支持什么浏览器和设备?
Slate 的目标是支持所有桌面和移动设备的现代浏览器。
然而,现在 Slate 是测试版并且是社区驱动的,所以它并做不到理想的支持。目前已经对桌面上最新版本的Chrome,Edge,Firefox 和 Safari 进行了测试。并且它无法在 Internet Explorer 中使用。对于移动设备,iOS 已被支持但没有进行定期测试。安卓 上面的 Chrome 支持 Slate 0.47 而不是最近发布的 Slate 0.50+。如果你想要添加更多的浏览器或设备支持,我们欢迎你提交拉取请求(pull request)!或者对不兼容的浏览器,构建一个插件。
对于更老的浏览器,比如 IE11,大量现代标准的原生 API 是不能用的。Slate 的看法是:在这种情况下取决于用户是否在使用 el.closest
这类东西的情况下提供 polyfills (比如 https://polyfill.io) 。否则我们需要捆绑和维护大量的 polyfills,但是其他人一开始甚至并不需要它们!