इस प्रोजेक्ट के बारे में
rhwp, Rust और WebAssembly आधारित एक ओपन-सोर्स HWP/HWPX व्यूअर और एडिटर है। इसे 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 (native Skia सुविधा आवश्यक), और PDF निर्यात किए जाते हैं। PDF के लिए SVG-संगत पथ डिफ़ॉल्ट है, और टेक्स्ट को वेक्टर पथ में बदलने का विकल्प तथा बाइट पुनरुत्पादनशीलता प्रदान की जाती है; native Skia सीधा बैकएंड वैकल्पिक है। वेब पर Canvas/CanvasKit रेंडरिंग का उपयोग होता है, और एक साझा paint IR (PageRenderTree → PageLayerTree) रखा गया है, जहाँ legacy/layered SVG, Canvas2D, CanvasKit replay, और native Skia बैकएंड एक ही प्लेबैक प्लेन अनुबंध साझा करते हैं। डिफ़ॉल्ट अनुरोध Canvas2D है, और `?renderer=auto` स्पष्ट रूप से देने पर ही दस्तावेज़ प्री-चेक पास होने की स्थिति में CanvasKit पर लॉक किया जाता है। जटिल shaping अक्षर, पुरानी हंगुल/PUA संयोजन, और संरचनात्मक कंपोज़िशन चिह्न प्रदर्शन आदि के लिए उस पूरे दस्तावेज़ को Canvas2D पर लॉक किया जाता है। विज़ुअल रिग्रेशन CI से रेंडर अंतर और PDF गेट सत्यापित किए जाते हैं।
## उपयोग के मार्ग
- वेब डेमो (GitHub Pages), Chrome/Edge/Firefox एक्सटेंशन, VS Code एक्सटेंशन (Open VSX सहित)
- npm पैकेज: `@rhwp/editor` (iframe एम्बेड एडिटर), `@rhwp/core` (WASM पार्सर/रेंडरर API)
- CLI: export-svg, export-png, export-pdf, dump, dump-pages, info, capabilities
- अंतर्निहित MCP सर्वर: एक पंक्ति कॉन्फ़िगरेशन से Claude Code जैसे MCP होस्ट में hwp_info, hwp_search, hwp_fill_fields, hwp_open·hwp_doc_* सेशन टूल उपलब्ध
- रिलीज़ बाइनरी: linux x86_64, macOS x86_64/aarch64, windows x86_64 और SHA256SUMS.txt उपलब्ध
वेब एडिटर (rhwp-studio) टेक्स्ट एडिटिंग, फ़ॉर्मेटिंग डायलॉग, तालिका संपादन, और Hancom वेबगिआनगि-संगत hwpctl API परत (30 Action, ParameterSet/ParameterArray, Field API) प्रदान करता है। सेविंग में HWP संपादन सेव, HWPX/HML अर्थ-संरक्षण सेव, और HWPX→HWP रूपांतरण का समर्थन है।
## विकास पद्धति
यह Rust 1.93.1 पर आधारित है, और WASM बिल्ड को Docker से पुनरुत्पादित किया जाता है। 3,400 से अधिक Rust टेस्ट और studio यूनिट/e2e/विज़ुअल रिग्रेशन CI संचालित किए जाते हैं। प्रोजेक्ट स्पष्ट रूप से यह दृष्टिकोण अपनाता है कि मानव कार्य-निर्देशक दिशा और आर्किटेक्चर निर्णयों का स्वामित्व रखता है और AI को कार्यान्वयन गुणक के रूप में उपयोग करता है, तथा योजना अनुमोदन, कोड समीक्षा और गुणवत्ता गेट से गुज़रता है। विकास रिकॉर्ड mydocs/ डायरेक्टरी में संचित होते हैं। योगदान PR को main के बजाय devel ब्रांच के लिए स्वीकार किया जाता है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.