export function escapeHtml(text) { return String(text) .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, ''') } export function highlightDiff(text, diffRanges) { if (!diffRanges || diffRanges.length === 0) { return escapeHtml(text) } let result = '' let lastIndex = 0 diffRanges.forEach(range => { if (range.start > lastIndex) { result += escapeHtml(text.substring(lastIndex, range.start)) } result += `${escapeHtml(text.substring(range.start, range.end))}` lastIndex = range.end }) if (lastIndex < text.length) { result += escapeHtml(text.substring(lastIndex)) } return result }