시각화 방식
- diff2html:
diff2html
은 텍스트 파일의 차이를 HTML 형식으로 변환하여 시각화합니다. 변경 사항을 추가(+), 삭제(-), 수정(변경)으로 구분하여 표시하며, 각 변경 사항에 대한 시각적 강조가 있습니다. - react-diff-viewer:
react-diff-viewer
는 두 텍스트 블록 간의 차이를 비교하여 시각적으로 표시합니다. 간단한 인터페이스와 명확한 시각화로 사용자가 변경 사항을 쉽게 이해할 수 있도록 돕습니다. - react-diff-view:
react-diff-view
는 React 컴포넌트로 구현된 차이 비교 뷰어입니다. 코드 블록 내에서 변경 사항을 시각적으로 표시하며, 커스터마이징 가능한 스타일과 레이아웃을 제공합니다.
커스터마이징
- diff2html:
diff2html
은 HTML 출력 결과를 CSS로 스타일링하여 커스터마이징할 수 있습니다. 그러나 기본적으로 제공되는 커스터마이징 옵션은 제한적입니다. - react-diff-viewer:
react-diff-viewer
는 스타일을 커스터마이즈할 수 있는 Props를 제공합니다. 특히, 색상, 폰트, 마진 등을 쉽게 변경할 수 있어 사용자가 원하는 대로 디자인할 수 있습니다. - react-diff-view:
react-diff-view
는 React 컴포넌트이므로, 스타일과 구조를 자유롭게 변경할 수 있습니다. 특히, 클래스 이름을 통해 CSS를 쉽게 수정할 수 있어 높은 커스터마이징이 가능합니다.
의존성
- diff2html:
diff2html
은 독립형 JavaScript 라이브러리로, 외부 의존성이 거의 없습니다. HTML 파일에 스크립트를 추가하는 것만으로 쉽게 사용할 수 있습니다. - react-diff-viewer:
react-diff-viewer
는 React에 의존하는 컴포넌트입니다. React 환경에서 쉽게 통합할 수 있으며, 별도의 복잡한 설정 없이 사용할 수 있습니다. - react-diff-view:
react-diff-view
는 React 기반의 라이브러리로, React와 React DOM에 의존합니다. React 애플리케이션 내에서 사용해야 하며, 추가적인 설정이 필요할 수 있습니다.
예제 코드
- diff2html:
diff2html
사용 예시<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Diff2Html Example</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/diff2html/3.0.0/diff2html.min.css"> </head> <body> <div id="diff-container"></div> <script src="https://cdnjs.cloudflare.com/ajax/libs/diff2html/3.0.0/diff2html.min.js"></script> <script> const diff = `diff --git a/file.txt b/file.txt\nindex e69de29..d95f3ad 100644\n--- a/file.txt\n+++ b/file.txt\n@@ -1 +1 @@\n-Hello World\n+Hello Diff2Html`; const targetElement = document.getElementById('diff-container'); const d2h = new Diff2HtmlUI(targetElement); d2h.draw(diff, { inputFormat: 'diff', showFiles: true, matching: 'lines' }); d2h.highlight(); </script> </body> </html>
- react-diff-viewer:
react-diff-viewer
사용 예시import React from 'react'; import DiffViewer from 'react-diff-viewer'; import 'react-diff-viewer/index.css'; const App = () => { const oldText = `Hello World\nThis is a sample text.`; const newText = `Hello Diff Viewer\nThis is an updated sample text.`; return ( <div> <h1>Diff Viewer</h1> <DiffViewer oldValue={oldText} newValue={newText} splitView={true} /> </div> ); }; export default App;
- react-diff-view:
react-diff-view
사용 예시import React from 'react'; import { Diff, DiffType } from 'react-diff-view'; import 'react-diff-view/style.css'; const App = () => { const oldCode = `function add(a, b) {\n return a + b;\n}`; const newCode = `function add(a, b) {\n // Adding two numbers\n return a + b;\n}`; return ( <div> <h1>Code Diff</h1> <Diff oldValue={oldCode} newValue={newCode} splitView={true} diffType={DiffType.Code} /> </div> ); }; export default App;