标签: parchment

在扩展Quill时遇到问题

我在扩展Quill方面遇到了一些问题.

我想在Quill中修改ListListItem类,所以我尝试将formats/list.js我的代码库复制到起点.然后我导入我的本地副本并将其注册到Quill,就像这样......

import { List, ListItem } from './quill/list';

Quill.register({
    'formats/list': List,
    'formats/list/item': ListItem
}, true);
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在编辑器中创建列表时,代码在List类中崩溃,并出现以下错误:

ParchmentError {message: "[Parchment] Unable to create list-item blot", name: "ParchmentError"}
Run Code Online (Sandbox Code Playgroud)

这发生在这一行...... https://github.com/quilljs/quill/blob/develop/formats/list.js#L99

我认为它与我被迫改变的进口有关,但我无法弄清楚出了什么问题.我没有对list.js做任何其他更改.原始文件包含以下内容: -

import Block from '../blots/block';
import Container from '../blots/container';
Run Code Online (Sandbox Code Playgroud)

我改为: -

import Quill from 'quill';
let Block = Quill.import('blots/block');
let Container = Quill.import('blots/container');
Run Code Online (Sandbox Code Playgroud)

我导入错误的方式是什么?是什么导致错误?

import ecmascript-6 quill parchment

5
推荐指数
1
解决办法
1616
查看次数

quil js羊皮纸错误

尝试在羽毛笔中使用公式模块时出错.

错误是:

"[Parchment] Unable to create formula blot"
Run Code Online (Sandbox Code Playgroud)

在Chrome Web开发工具中出现错误消息后,将显示以下行 registry.ts (webpack:///./~/parchment/src/registry.ts)

function create(input, value) {
    var match = query(input);
    if (match == null) {
        throw new ParchmentError("Unable to create " + input + " blot");
    }
    var BlotClass = match;
    var node = input instanceof Node ? input : BlotClass.create(value);
    return new BlotClass(node, value);
}
Run Code Online (Sandbox Code Playgroud)

当我尝试插入公式时会发生这种情况.

当我使用quill-rails5但不使用gem 时会发生这种情况.我删除了宝石以简化问题.这是我的代码:

 var quill = new Quill('#editor', {
      modules: {
 formula: true,   
        toolbar: [
          [{ header: [1, 2, false] }],
          ['bold', …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails quill ruby-on-rails-5 parchment

5
推荐指数
1
解决办法
303
查看次数

Quill:当污点改变时调用哪种方法?

当我用自己的污点包裹的文字改变时,我需要做点什么.

羊皮纸文档中我得到的方法update将在污点变化时调用.我尝试在代码中使用它,但是当用我的污点包裹的文本发生变化时,这种方法不会被调用.

可能是我用这种方法不正确?或者我应该使用另一种方法?

quill parchment

5
推荐指数
1
解决办法
185
查看次数

Quill.js扩展了斑点/羊皮纸的变化,未在delta中捕获

我正在掌握quill.js-我希望能够创建一个预设内容的自定义印迹,但我可以改变..我已经想出如何从中等克隆指南创建一个块嵌入印迹,但我注意到创建的节点没有被捕获在delta内容中 - 我在样式div中设置了一些文本,我想保存这些更改...我也想用这个过程来做像动态字幕......重要的是我能保存三角洲.node.innerText ='test test test'设置初始内容正常,但更改不绑定到delta.

有没有办法在块内嵌套印迹?或者我可以用某种方式将斑点内容与三角形结合起来吗?任何有用的示例代码将不胜感激.谢谢.

class EditModuleBlot extends BlockEmbed {
  static create(value) {
    let node = super.create();
    node.setAttribute('style', value.style);
    node.innerText = 'test test test';
    return node;
  }

  static value(node) {
    return {
      style: node.getAttribute('style')
    };
  }
}
EditModuleBlot.blotName = 'editmodule';
EditModuleBlot.tagName = 'div';
Run Code Online (Sandbox Code Playgroud)

这是我调用它的Vue.js方法:

clickAddModule() {
  let range = this.quillInstance.getSelection(true);
  this.quillInstance.insertText(range.index, '\n', Quill.sources.USER);
  this.quillInstance.insertEmbed(range.index + 1, 'editmodule', {
    style: 'padding:10px;border: 2px dashed black;'
  }, Quill.sources.USER);
  this.quillInstance.setSelection(range.index + 2, Quill.sources.SILENT);
}
Run Code Online (Sandbox Code Playgroud)

delta json不捕获div innerText:

{
  "insert": {
    "editmodule": { …
Run Code Online (Sandbox Code Playgroud)

javascript delta quill parchment

4
推荐指数
1
解决办法
993
查看次数

Quill BlockEmbeds可以使用任意标签吗?

我有一堆组件(html和逻辑部分),我希望能够嵌入Quill文档中,我不完全确定如何开始.每个组件都有一个根元素,但该标记名是任意的(有aside,div,section等标签).每个组件都具有完全非Quill编辑体验(在其他地方处理),因此理想情况下它们的增量将如下所示:

{
  ops: [
    { insert: 'Hello', attributes: { bold: true } },
    { insert: { component: 'domain.com/components/image/instances/foo' } },
    { insert: 'World!\n' }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我相信我在文档中的某处读到块级Blots必须指定a tagName a className,但我找不到该引用.所有例子我能找到使用BlockEmbed指定tagName羊皮纸文档没有真正解释.是否有正确的方法应该这样做,是否有任何我应该注意的边缘情况?

所有这些组件都是块级的,所以(从我对这个问题的解读)我不认为选择应该是一个问题,对吧?

javascript quill parchment

2
推荐指数
1
解决办法
1273
查看次数