Merge pull request #3581 from FinnStutzenstein/li-space
Add space between list elements in motion text and pdf
This commit is contained in:
commit
1d49121cb6
@ -420,6 +420,9 @@ angular.module('OpenSlidesApp.core.pdf', [])
|
|||||||
DIFF_MODE_INSERT = 1,
|
DIFF_MODE_INSERT = 1,
|
||||||
DIFF_MODE_DELETE = 2,
|
DIFF_MODE_DELETE = 2,
|
||||||
|
|
||||||
|
// Space between list elements
|
||||||
|
LI_MARGIN_BOTTOM = 8,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convertes HTML for use with pdfMake
|
* Convertes HTML for use with pdfMake
|
||||||
* @function
|
* @function
|
||||||
@ -456,7 +459,9 @@ angular.module('OpenSlidesApp.core.pdf', [])
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Removes all line number nodes (not line-breaks)
|
* Removes all line number nodes (not line-breaks)
|
||||||
* and returns an array containing the reoved numbers (as integer, not as node)
|
* and returns an array containing the reoved numbers in this format:
|
||||||
|
* { lineNumber: '<lineNumber>', marginBottom: <number> }
|
||||||
|
* where marginBottom is optional.
|
||||||
*
|
*
|
||||||
* @function
|
* @function
|
||||||
* @param {object} element
|
* @param {object} element
|
||||||
@ -465,25 +470,31 @@ angular.module('OpenSlidesApp.core.pdf', [])
|
|||||||
var foundLineNumbers = [];
|
var foundLineNumbers = [];
|
||||||
var lineNumber = getLineNumber(element);
|
var lineNumber = getLineNumber(element);
|
||||||
if (lineNumber) {
|
if (lineNumber) {
|
||||||
foundLineNumbers.push(lineNumber);
|
foundLineNumbers.push({lineNumber: lineNumber});
|
||||||
element.parentNode.removeChild(element);
|
element.parentNode.removeChild(element);
|
||||||
} else if (element.nodeName === 'BR') {
|
} else if (element.nodeName === 'BR') {
|
||||||
// Check if there is a new line, but it does not get a line number.
|
// Check if there is a new line, but it does not get a line number.
|
||||||
// If so, insert a dummy line, so the line nubers stays aligned with
|
// If so, insert a dummy line, so the line nubers stays aligned with
|
||||||
// the text.
|
// the text.
|
||||||
if (!getLineNumber(element.nextSibling)) {
|
if (!getLineNumber(element.nextSibling)) {
|
||||||
foundLineNumbers.push('');
|
foundLineNumbers.push({lineNumber: ''});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
var children = element.childNodes,
|
var children = element.childNodes,
|
||||||
childrenLength = children.length;
|
childrenLength = children.length,
|
||||||
|
childrenLineNumbers = [];
|
||||||
for (var i = 0; i < children.length; i++) {
|
for (var i = 0; i < children.length; i++) {
|
||||||
foundLineNumbers = _.concat(foundLineNumbers, extractLineNumbers(children[i]));
|
childrenLineNumbers = _.concat(childrenLineNumbers, extractLineNumbers(children[i]));
|
||||||
if (children.length < childrenLength) {
|
if (children.length < childrenLength) {
|
||||||
i -= (childrenLength - children.length);
|
i -= (childrenLength - children.length);
|
||||||
childrenLength = children.length;
|
childrenLength = children.length;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// If this is an list item, add some space to the lineNumbers:
|
||||||
|
if (childrenLineNumbers.length && element.nodeName === 'LI') {
|
||||||
|
_.last(childrenLineNumbers).marginBottom = LI_MARGIN_BOTTOM;
|
||||||
|
}
|
||||||
|
foundLineNumbers = _.concat(foundLineNumbers, childrenLineNumbers);
|
||||||
}
|
}
|
||||||
return foundLineNumbers;
|
return foundLineNumbers;
|
||||||
},
|
},
|
||||||
@ -689,7 +700,9 @@ angular.module('OpenSlidesApp.core.pdf', [])
|
|||||||
}
|
}
|
||||||
currentCol = {
|
currentCol = {
|
||||||
columns: [
|
columns: [
|
||||||
getLineNumberObject(node.getAttribute('data-line-number')),
|
getLineNumberObject({
|
||||||
|
lineNumber: node.getAttribute('data-line-number')
|
||||||
|
}),
|
||||||
],
|
],
|
||||||
margin: [0, 2, 0, 0],
|
margin: [0, 2, 0, 0],
|
||||||
};
|
};
|
||||||
@ -794,7 +807,9 @@ angular.module('OpenSlidesApp.core.pdf', [])
|
|||||||
}
|
}
|
||||||
var col = {
|
var col = {
|
||||||
columns: [
|
columns: [
|
||||||
getLineNumberObject(lineNumberOutline),
|
getLineNumberObject({
|
||||||
|
lineNumber: lineNumberOutline,
|
||||||
|
}),
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
currentParagraph = create("text");
|
currentParagraph = create("text");
|
||||||
@ -841,6 +856,9 @@ angular.module('OpenSlidesApp.core.pdf', [])
|
|||||||
if (_.indexOf(classes, 'os-split-before') > -1) {
|
if (_.indexOf(classes, 'os-split-before') > -1) {
|
||||||
stackDiv.listType = 'none';
|
stackDiv.listType = 'none';
|
||||||
}
|
}
|
||||||
|
if (nodeName === 'li') {
|
||||||
|
stackDiv.marginBottom = LI_MARGIN_BOTTOM;
|
||||||
|
}
|
||||||
stackDiv.stack.push(currentParagraph);
|
stackDiv.stack.push(currentParagraph);
|
||||||
ComputeStyle(stackDiv, styles);
|
ComputeStyle(stackDiv, styles);
|
||||||
currentParagraph = parseChildren(stackDiv.stack, element, currentParagraph, [], diff_mode);
|
currentParagraph = parseChildren(stackDiv.stack, element, currentParagraph, [], diff_mode);
|
||||||
@ -952,6 +970,7 @@ angular.module('OpenSlidesApp.core.pdf', [])
|
|||||||
alreadyConverted.push(list);
|
alreadyConverted.push(list);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
list.margin = [0, LI_MARGIN_BOTTOM, 0, 0];
|
||||||
currentParagraph = parseChildren(list[nodeName], element, currentParagraph, styles, diff_mode);
|
currentParagraph = parseChildren(list[nodeName], element, currentParagraph, styles, diff_mode);
|
||||||
alreadyConverted.push(list);
|
alreadyConverted.push(list);
|
||||||
}
|
}
|
||||||
@ -995,12 +1014,13 @@ angular.module('OpenSlidesApp.core.pdf', [])
|
|||||||
decoration: '',
|
decoration: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: line,
|
text: line.lineNumber,
|
||||||
color: "gray",
|
color: "gray",
|
||||||
fontSize: standardFontsize - 2,
|
fontSize: standardFontsize - 2,
|
||||||
decoration: '',
|
decoration: '',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
marginBottom: line.marginBottom,
|
||||||
lineHeight: 1.25,
|
lineHeight: 1.25,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
@ -10,6 +10,14 @@
|
|||||||
text-decoration: line-through;
|
text-decoration: line-through;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
.highlight {
|
.highlight {
|
||||||
background-color: #ff0;
|
background-color: #ff0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user