2017-10-27 3 views
0

reltarget을 수동으로 설정할 수 있어야하는 링크에 대한 맞춤 블롯을 만들었습니다. 그러나 이러한 특성을 가진 콘텐츠를로드 할 때 quill이 제거합니다. 이유가 확실하지 않습니다.맞춤 블롯을 사용할 때 맞춤 속성이 제거되었습니다

문제를 설명하기 위해 codepen을 만들었습니다.

이 내 사용자 정의 스티커입니다 :

const Inline = Quill.import('blots/inline') 

class CustomLink extends Inline { 
    static create(options) { 
    const node = super.create() 
    node.setAttribute('href', options.url) 

    if (options.target) { node.setAttribute('target', '_blank') } 
    if (options.follow === 'nofollow') { node.setAttribute('rel', 'nofollow') } 

    return node 
    } 

    static formats(node) { 
    return node.getAttribute('href') 
    } 
} 

CustomLink.blotName = 'custom_link' 
CustomLink.tagName = 'A' 
Quill.register({'formats/custom_link': CustomLink}) 

내가 특정 atttributes 수 있도록 퀼 얘기해야합니까?

답변

1

기존 HTML에서 초기화 할 때 Quill은 그로부터 데이터 블록을 구성하려고합니다. create(), value() 및 리프 블롯을위한 formats() 사이의 대칭입니다. create() 구현하는 방법을 감안할 때,이 같은 것으로 formats()을 필요 :이 변화 포크 작업

static formats(node) { 
    let ret = { 
     url: node.getAttribute('href'), 
    }; 
    if (node.getAttribute('target') == '_blank') { 
     ret.target = true; 
    } 
    if (node.getAttribute('rel') == 'nofollow') { 
     ret.follow = 'nofollow'; 
    } 
    return ret; 
    } 

: https://codepen.io/quill/pen/xPxGgw

내가 기본 링크를 덮어 쓰기도하지만 대신에 다른 하나를 만드는 것이 좋습니다, 두 가지 유형이 필요한 이유가 없으면 말입니다.