- Word-level comparison (ignores case and punctuation): differing words are
marked in both columns of the side-by-side view
- Chapter summary ("NET is 18% different from BSB · 37 of 39 verses differ")
with links to the most different verses, and a percentage on each verse
- Compare tab on a verse shows each translation's difference from the one
being read, with the differing words marked
- "Highlight differences" setting; your own highlights and search matches
always win where they overlap a difference mark
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
14 lines
487 B
React
14 lines
487 B
React
// Text with the words that differ from the other translation marked.
|
|
export function DiffText({ text, ranges = [] }) {
|
|
if (!ranges.length) return text;
|
|
const parts = [];
|
|
let cursor = 0;
|
|
ranges.forEach((r, i) => {
|
|
if (r.start > cursor) parts.push(text.slice(cursor, r.start));
|
|
parts.push(<span key={i} className="diff-hl">{text.slice(r.start, r.end)}</span>);
|
|
cursor = r.end;
|
|
});
|
|
if (cursor < text.length) parts.push(text.slice(cursor));
|
|
return <>{parts}</>;
|
|
}
|