Bugfix for line numbering with CKeditor
This commit is contained in:
parent
58b8066249
commit
08cb6a3d1b
@ -302,6 +302,15 @@ angular.module('OpenSlidesApp.motions.lineNumbering', [])
|
|||||||
|
|
||||||
for (i = 0; i < oldChildren.length; i++) {
|
for (i = 0; i < oldChildren.length; i++) {
|
||||||
if (oldChildren[i].nodeType == TEXT_NODE) {
|
if (oldChildren[i].nodeType == TEXT_NODE) {
|
||||||
|
if (!oldChildren[i].nodeValue.match(/\S/)) {
|
||||||
|
// White space nodes between block elements should be ignored
|
||||||
|
var prevIsBlock = (i > 0 && !this._isInlineElement(oldChildren[i - 1]));
|
||||||
|
var nextIsBlock = (i < oldChildren.length - 1 && !this._isInlineElement(oldChildren[i + 1]));
|
||||||
|
if ((prevIsBlock && nextIsBlock) || (i === 0 && nextIsBlock) || (i === oldChildren.length - 1 && prevIsBlock)) {
|
||||||
|
node.appendChild(oldChildren[i]);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
var ret = this._textNodeToLines(oldChildren[i], length, highlight);
|
var ret = this._textNodeToLines(oldChildren[i], length, highlight);
|
||||||
for (var j = 0; j < ret.length; j++) {
|
for (var j = 0; j < ret.length; j++) {
|
||||||
node.appendChild(ret[j]);
|
node.appendChild(ret[j]);
|
||||||
|
@ -251,4 +251,18 @@ describe('linenumbering', function () {
|
|||||||
expect(lineNumberingService.stripLineNumbers(outHtml)).toBe(inHtml);
|
expect(lineNumberingService.stripLineNumbers(outHtml)).toBe(inHtml);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('behavior regarding ckeditor', function() {
|
||||||
|
it('does not count empty lines, case 1', function () {
|
||||||
|
var inHtml = "<p>Line 1</p>\n\n<p>Line 2</p>";
|
||||||
|
var outHtml = lineNumberingService.insertLineNumbers(inHtml, 80);
|
||||||
|
expect(outHtml).toBe('<p>' + noMarkup(1) + 'Line 1</p>' + "\n\n" + '<p>' + noMarkup(2) + 'Line 2</p>');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('does not count empty lines, case 2', function () {
|
||||||
|
var inHtml = "<ul>\n\n<li>Point 1</li>\n\n</ul>";
|
||||||
|
var outHtml = lineNumberingService.insertLineNumbers(inHtml, 80);
|
||||||
|
expect(outHtml).toBe("<ul>\n\n<li>" + noMarkup(1) + "Point 1</li>\n\n</ul>");
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user