Clean element before validation to remove useless elements
parent
5112143a0e
commit
b4b83f36e1
|
@ -293,6 +293,29 @@ function createGenericElement(): IPostElement {
|
|||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Clean the element `name` and `text` removing initial and final special characters.
|
||||
*/
|
||||
function cleanElement(element: IPostElement): IPostElement {
|
||||
// Local variables
|
||||
const shallow = Object.assign({}, element);
|
||||
const specialCharSet = /[-!$%^&*()_+|~=`{}[\]:";'<>?,./]/;
|
||||
const startsWithSpecialCharsRegex = new RegExp("^" + specialCharSet.source);
|
||||
const endsWithSpecialCharsRegex = new RegExp(specialCharSet.source + "$");
|
||||
|
||||
shallow.name = shallow.name
|
||||
.replace(startsWithSpecialCharsRegex, "")
|
||||
.replace(endsWithSpecialCharsRegex, "")
|
||||
.trim();
|
||||
|
||||
shallow.text = shallow.text
|
||||
.replace(startsWithSpecialCharsRegex, "")
|
||||
.replace(endsWithSpecialCharsRegex, "")
|
||||
.trim();
|
||||
|
||||
return shallow;
|
||||
}
|
||||
|
||||
//#endregion IPostElement utility
|
||||
|
||||
/**
|
||||
|
@ -327,7 +350,9 @@ function removeEmptyContentFromElement(element: IPostElement, recursive = true):
|
|||
: copy.content;
|
||||
|
||||
// Find the non-empty nodes
|
||||
const validNodes = recursiveResult.filter((e) => !isPostElementEmpty(e));
|
||||
const validNodes = recursiveResult
|
||||
.filter((e) => !isPostElementEmpty(e)) // Remove the empty nodes
|
||||
.filter((e) => !isPostElementEmpty(cleanElement(e))); // Remove the useless nodes
|
||||
|
||||
// Assign the nodes
|
||||
copy.content = validNodes;
|
||||
|
@ -402,11 +427,11 @@ function pairUpElements(elements: IPostElement[]): IPostElement[] {
|
|||
});
|
||||
|
||||
// Than we find all the IDs of the elements that are "titles".
|
||||
let indexes = shallow
|
||||
const indexes = shallow
|
||||
.filter((e, i) => isValidTitleElement(e, i, shallow))
|
||||
.map((e) => shallow.indexOf(e));
|
||||
|
||||
if (indexes.length === 0) indexes = shallow.map((e, i) => i);
|
||||
//if (indexes.length === 0) indexes = shallow.map((e, i) => i);
|
||||
|
||||
// Now we find all the elements between indexes and
|
||||
// associate them with the previous "title" element
|
||||
|
|
Loading…
Reference in New Issue