nel*_*ora 2 javascript quill parchment
我有一堆组件(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和羊皮纸文档没有真正解释.是否有正确的方法应该这样做,是否有任何我应该注意的边缘情况?
所有这些组件都是块级的,所以(从我对这个问题的解读)我不认为选择应该是一个问题,对吧?
如果您的目的是创建一个QUILL中不存在的标签,您必须做的是这样的: 配置您的定制标签
var Embed = Quill.import('blots/embed');
class MyCustomTag extends Embed {
static create(paramValue) {
let node = super.create();
node.innerHTML = paramValue;
//node.setAttribute('contenteditable', 'false');
//node.addEventListener('click', MyCustomTag.onClick);
return node;
}
static value(node) {
return node.innerHTML;
}
}
MyCustomTag.blotName = 'my-custom-tag';
MyCustomTag.className = 'my-custom-tag';
MyCustomTag.tagName = 'my-custom-tag';
//in case you need to inject an event from outside
/* MyCustomTag.onClick = function(){
//do something
}*/
Quill.register(MathQuillFormula);
Run Code Online (Sandbox Code Playgroud)
使用你的定制标签
this.editor.insertEmbed(
0, //INDEX_WHERE_YOU_TO_INSERT_THE_CONTENT,
'my-custom-tag',//THE NAME OF YOUR CUSTOM TAG
'<span>MY CONTENT</SPAN>'// THE CONTENT YOUR TO INSERT
);
Run Code Online (Sandbox Code Playgroud)
请注意,默认情况下,此自定义将获取display: block
您可以通过css规则作为示例将其定位的属性
my-custom-tag {
display : inline;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1273 次 |
| 最近记录: |