32 lines
781 B
JavaScript
32 lines
781 B
JavaScript
/**
|
|
* converts a list of change objects to a serialized XML format
|
|
*/
|
|
export function convertChangesToXML(changes) {
|
|
const ret = [];
|
|
for (let i = 0; i < changes.length; i++) {
|
|
const change = changes[i];
|
|
if (change.added) {
|
|
ret.push('<ins>');
|
|
}
|
|
else if (change.removed) {
|
|
ret.push('<del>');
|
|
}
|
|
ret.push(escapeHTML(change.value));
|
|
if (change.added) {
|
|
ret.push('</ins>');
|
|
}
|
|
else if (change.removed) {
|
|
ret.push('</del>');
|
|
}
|
|
}
|
|
return ret.join('');
|
|
}
|
|
function escapeHTML(s) {
|
|
let n = s;
|
|
n = n.replace(/&/g, '&');
|
|
n = n.replace(/</g, '<');
|
|
n = n.replace(/>/g, '>');
|
|
n = n.replace(/"/g, '"');
|
|
return n;
|
|
}
|