簡體   English   中英

羽毛筆JS添加內聯或'formatBlock'樣式

[英]Quill JS adding inline or 'formatBlock' styles

我正在使用QuillJS作為編輯器,並希望在此編輯器中創建一些自定義文本樣式。 您有已經存在的默認,粗體等,但是我想在此基礎上進行擴展。 例如,有一個blockquote會創建一個塊引用,但是我想要一個內聯引用。 為此,我最好用一個span和class對其進行包裝以應用所需的樣式,但是我無法弄清楚如何使用Quills API來實現。 當然,我可以創建一個自定義塊,但這適用於整個文本部分,而不只是所選文本。 因此,我嘗試將.formatText與自定義塊一起使用,但沒有任何運氣,盡管如果我將'quote'更改為'bold',它確實...任何幫助/建議將不勝感激!

let Block = Quill.import('blots/block');

class quote extends Block { }
quote.blotName = 'quote';
quote.className = 'quote';
quote.tagName = 'span';
Quill.register({ 'formats/quote': quote });

//Handler to change inline
var quoteHandler = function(){
    var range = quill.getSelection();
    console.log(range);
    quill.formatText(range.index, range.length, 'quote', true);
}



/* Quill */
var quill = new Quill('.editor_space', {
    theme: 'snow',
    placeholder: 'Compose an epic...',
    modules: {
        toolbar:{
            container: '.main_toolbar',
            handlers: {
                'linebreak': linebreakHandler,
                'inlineQuote': quoteHandler,
            }
        }
    }
});

要回答我自己的問題,我應該一直將Inline擴展為顯然是inline。 不需要處理程序功能。

let Inline = Quill.import('blots/inline');
class quote extends Inline {
    static create(value) {
        let node = super.create(value);
        return node;
    }
}
quote.blotName = 'quote';
quote.className = 'quote';
quote.tagName = 'div';
Quill.register(quote);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM