عن المشروع
jsdiff هي مكتبة جافاسكريبت لمقارنة النصوص تعتمد على خوارزمية Myers O(ND) لمقارنة الاختلافات. توفر واجهة برمجة تطبيقات شاملة لمقارنة النصوص على مستويات متعددة:
- **مقارنة على مستوى الحروف** (`diffChars`): تعامل كل نقطة رمز يونيكود كرمز، مع مقارنة غير حساسة للحالة اختيارية.
- **مقارنة على مستوى الكلمات** (`diffWords`، `diffWordsWithSpace`): تعامل الكلمات والترقيم كأ رموز، مع دعم اختياري لـ `Intl.Segmenter` لتحسين تقطيع الكلمات غير الإنجليزية.
- **مقارنة على مستوى الأسطر** (`diffLines`): تعامل كل سطر كرمز، مع خيارات لتجاهل المسافات البيضاء، ومعالجة رموز العودة إلى البداية، واعتبار العلامات الجديدة كأ رموز منفصلة.
- **مقارنة على مستوى الجمل** (`diffSentences`): تعامل الجمل والمسافات البيضاء بين الجمل كأ رموز.
- **مقارنة CSS** (`diffCss`): مقارنة رموز CSS.
- **مقارنة JSON** (`diffJson`): تسلسل الكائنات إلى JSON منسق ومقارنة سطر بسطر، مع ترتيب الخواص أبجديًا.
- **مقارنة مصفوفات** (`diffArrays`): مقارنة مصفوفات الرموز بالمساواة الصارمة أو بمقارن مخصص.
كما توفر المكتبة إمكانيات إدارة الباتش:
- **إنشاء باتش**: `createPatch` و `createTwoFilesPatch` يولدان باتشات بتنسيق الاختلاف الموحد مع خيارات خطوط السياق والرأس القابل للتهيئة.
- **باتشات منظمات**: `structuredPatch` يعود بنية بيانات تحتوي على كائنات هانك مناسبة للمعالجة البرمجية.
- **تطبيق باتش**: `applyPatch` و `applyPatches` يطبقان باتشات الاختلاف الموحد مع دعم عامل التماس، وتحويل نهاية السطر التلقائي، ونداءات مقارنة سطر مخصصة.
- **تحليل باتش**: `parsePatch` يفسر تنسيق الاختلاف الموحد (بما في ذلك رؤوس امتداد معينة لجيت لعمليات إعادة تسمية، نسخ، إنشاء، حذف، وملفات ثنائية) إلى كائنات منظمات.
- **عكس باتش**: `reversePatch` يولد باتشًا معكوسًا.
- **تحويل التنسيق**: `convertChangesToXML` و `convertChangesToDMP` يتحولان كائنات التغيير إلى XML أو تنسيق diff-match-patch من جوجل.
الخيارات الشاملة تشمل وضع النداء العائد غير المتزامن، حدود طول التحرير الأقصى، دعم المهلة، و细ية كائنات التغيير لكل رمز. تدعم المكتبة أيضًا سلوكيات مقارنة مخصصة من خلال فئة `Diff`، مما يسمح للمستخدمين بتحويل الإدخال، وتOKENIZATION، وإزالة الرموز الفارغة، ووظائف التحقق من المساواة والانضمام.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.