识别 Quill.JS 中的新行

Recognize new line in Quill.JS

我想让 QuillJS 识别新行,但我不知道如何...

例如:我有 4 行,想在每行的前面和末尾都加上一个“*”,空行除外。

示例:

* line1 *

empty

* line3 *

* line4 *

提前致谢! :-)

编辑: 这是一个片段/我的代码的当前状态

var boldButton = document.querySelector('.ql-bold');
boldButton.addEventListener('click', function() {
        var sel = quill.getSelection();
        if (sel) {
            quill.insertText(sel.index, "*");
            quill.insertText(sel.index+sel.length+1, "*");
            quill.setSelection({index:sel.index+1, length:sel.length});
        }
    })

这是一个粗略的解决方案,但有效。

它寻找换行符号(在我的例子中是 \n)并计算行长:

boldButton.addEventListener('click', function() {
      var sel = quill.getSelection();
      var text = quill.getText(sel.index, sel.length);
      if (sel) {
          // GET ALL LINE LENGTH (MAY ADAPT FOR LINES WITH ONLY SPACES/TABS/...)
          var linesLengths = text.split("\n").map(function(line){
            return line.length;
          });

          var startPosition = sel.index;
          for(var idx = 0; idx < linesLengths.length; idx++){
            var currentLineLength = linesLengths[idx];
            // ONLY MARK LINES WITH SOME CONTENT
            if(currentLineLength > 0){
              quill.insertText(startPosition, "*");
              quill.insertText(startPosition + currentLineLength + 1, "*");
              // PREPARE NEW STARTPOSITION
              startPosition += currentLineLength + 2;
            }
            // COUNT THE NEWLINE SYMBOL
            startPosition++; 
          }
      }
  });

可以优化,但我留下这个是为了reader。