عن المشروع
rhwp هو عارض ومحرر HWP/HWPX مفتوح المصدر مبني على Rust وWebAssembly. طُوِّر بالاستناد إلى الوثائق المنشورة من Hancom، ويوضح المشروع أنه مستقل ولا توجد أي علاقة شراكة أو رعاية أو اعتماد مع Hancom. الترخيص: MIT.
## نطاق معالجة المستندات
يحلل الملفات الثنائية HWP 5.0 (ملفات OLE2 المركبة)، وHWPX (المبني على Open XML)، وHML (HWPML 2.9/2.91، بدعم محدود للبنى الموثقة فقط). يتعامل مع الفقرات والجداول وصناديق النصوص والصور والمعادلات والمخططات، والرؤوس والتذييلات، وخلفيات الصفحات، والحواشي السفلية والختامية.
يدعم العرض: تباعد الأسطر، الإزاحات، المحاذاة، نقاط توقف الجدولة، دمج الخلايا وأنماط الحدود، حساب معادلات الخلايا، التخطيط متعدد الأعمدة، ترقيم الفقرات والتعداد النقطي، الكتابة العمودية، الرؤوس المنفصلة للصفحات الزوجية/الفردية، خلفيات الصفحات، وتموضع الكائنات (مع النص/كحرف/أمام وخلف النص). تشمل المعادلات الكسور والجذور والأسس، والمصفوفات (MATRIX/PMATRIX/BMATRIX/DMATRIX)، وcases، وEQALIGN، وسلسلة PILE، والمؤثرات الكبيرة (INT/SUM/PROD وغيرها)، وREL/BUILDREL، والنهايات، والقسمة المطولة، والحروف اليونانية وأكثر من 100 رمز رياضي. يعالج تقسيم الصفحات تقسيم الأعمدة المتعددة، وتقسيم صفوف الجداول، وتصحيح مواضع الفقرات استنادًا إلى vpos.
## الإخراج وواجهات العرض الخلفية
تصدّر واجهة CLI بصيغ SVG وPNG (يتطلب ميزة Skia الأصلية) وPDF. يستخدم PDF مسارات متوافقة مع SVG افتراضيًا، مع خيار تحويل النص إلى مسارات متجهة وإمكانية إعادة إنتاج البايتات، بينما تكون الواجهة الخلفية المباشرة لـ Skia الأصلية اختيارية. يستخدم الويب العرض عبر Canvas/CanvasKit، مع وجود IR رسم مشترك (PageRenderTree → PageLayerTree) تتشارك فيه الواجهات الخلفية legacy/layered SVG وCanvas2D وإعادة تشغيل CanvasKit وSkia الأصلية بنفس عقد مستوى التشغيل. الطلب الافتراضي هو Canvas2D، وعند تحديد `?renderer=auto` صراحةً يُثبَّت على CanvasKit فقط إذا اجتاز المستند الفحص المسبق. الأحرف المركبة المعقدة، وتركيبات الهانغول القديم/PUA، وعرض علامات التنسيق البنيوية تثبّت المستند كاملًا على Canvas2D. يتحقق CI للانحدار البصري من فروق العرض وبوابة PDF.
## مسارات الاستخدام
- عرض تجريبي ويب (GitHub Pages)، وامتدادات Chrome/Edge/Firefox، وامتداد VS Code (يشمل Open VSX)
- حزم npm: `@rhwp/editor` (محرر مضمّن في iframe)، و`@rhwp/core` (واجهة برمجة تطبيقات محلل/عارض WASM)
- CLI: export-svg، export-png، export-pdf، dump، dump-pages، info، capabilities
- خادم MCP مدمج: بسطر إعداد واحد يمكن استخدام أدوات hwp_info وhwp_search وhwp_fill_fields وأدوات جلسة hwp_open·hwp_doc_* في مضيفي MCP مثل Claude Code
- ثنائيات الإصدار: linux x86_64، وmacOS x86_64/aarch64، وwindows x86_64 مع ملف SHA256SUMS.txt
يوفر محرر الويب (rhwp-studio) تحرير النصوص وحوارات التنسيق وتحرير الجداول وطبقة hwpctl API المتوافقة مع محرر الويب من Hancom (30 إجراءً، ParameterSet/ParameterArray، وField API). يدعم الحفظ: حفظ تحريري HWP، وحفظ حافظ للمعنى بصيغتي HWPX/HML، وتحويل HWPX إلى HWP.
## منهجية التطوير
يعتمد على Rust 1.93.1، وتُعاد إنتاجية بناء WASM عبر Docker. يدير المشروع أكثر من 3400 اختبار Rust واختبارات وحدة/e2e/انحدار بصري للاستوديو في CI. يتبنى المشروع صراحةً أسلوبًا يمتلك فيه موجّه عمل بشري القرارات المعمارية والتوجيهية ويستخدم الذكاء الاصطناعي كمضاعف للتنفيذ، مع المرور باعتماد الخطط ومراجعة الكود وبوابات الجودة. تُجمَّع سجلات التطوير في دليل mydocs/. تُقبل مساهمات Pull Request على فرع devel وليس main.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.