Files
ToolBox/src/utils/comparator/html.js
T
renjue f1502ed08c
CI / docker (push) Successful in 11m42s
初始化 ToolBox 开发者工具箱。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-25 11:15:38 +08:00

32 lines
755 B
JavaScript

export function escapeHtml(text) {
return String(text)
.replace(/&/g, '&amp;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&#39;')
}
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 += `<span class="diff-highlight">${escapeHtml(text.substring(range.start, range.end))}</span>`
lastIndex = range.end
})
if (lastIndex < text.length) {
result += escapeHtml(text.substring(lastIndex))
}
return result
}