def render_diff(old_text, new_text):
print (old_text, old_text.__class__)
print (new_text, new_text.__class__)
sm = difflib.SequenceMatcher(a=old_text, b=new_text)
out_toks = []
for opcode, s1, e1, s2, e2 in sm.get_opcodes():
if opcode == 'equal':
out_toks.append(old_text[s1:e1])
elif opcode == 'insert':
out_toks.append('<span class="insert">' + new_text[s2:e2] + '</span>')
elif opcode == 'delete':
out_toks.append('<span class="delete">' + old_text[s1:e1] + '</span>')
elif opcode == 'replace':
out_toks.append('<span class="delete">' + old_text[s1:e1] + '</span>')
out_toks.append('<span class="insert">' + new_text[s2:e2] + '</span>')
return ''.join(out_toks)
评论列表
文章目录