প্রকল্প সম্পর্কে

rhwp হলো Rust ও WebAssembly ভিত্তিক একটি ওপেন সোর্স HWP/HWPX ভিউয়ার এবং এডিটর। হানকমের প্রকাশিত নথি অনুসরণ করে এটি তৈরি করা হয়েছে এবং এটি হানকমের সঙ্গে কোনো অংশীদারত্ব, স্পনসরশিপ বা অনুমোদন সম্পর্কবিহীন একটি স্বাধীন প্রকল্প বলে স্পষ্ট উল্লেখ করা হয়েছে। 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, লিমিট, দীর্ঘ ভাগ, গ্রিক অক্ষর এবং ১০০টিরও বেশি গাণিতিক চিহ্ন অন্তর্ভুক্ত। পৃষ্ঠা বিভাজনে মাল্টি-কলাম বিভাজন, টেবিল সারি একক বিভাজন এবং vpos ভিত্তিক অনুচ্ছেদ অবস্থান সংশোধন প্রক্রিয়া করা হয়। ## আউটপুট ও রেন্ডারার ব্যাকএন্ড CLI দিয়ে SVG, PNG (নেটিভ Skia ফিচার প্রয়োজন), PDF রপ্তানি করা যায়। PDF-এ SVG-সামঞ্জস্যপূর্ণ পাথ ডিফল্ট, টেক্সটকে ভেক্টর পাথে রূপান্তরের বিকল্প এবং বাইট রিপ্রোডিউসিবিলিটি প্রদান করে; নেটিভ Skia ডাইরেক্ট ব্যাকএন্ড ঐচ্ছিক। ওয়েবে Canvas/CanvasKit রেন্ডারিং ব্যবহৃত হয় এবং সাধারণ paint IR (PageRenderTree → PageLayerTree) রেখে legacy/layered SVG, Canvas2D, CanvasKit replay, নেটিভ 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 পার্সার/রেন্ডারার 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) টেক্সট সম্পাদনা, ফরম্যাট ডায়ালগ, টেবিল সম্পাদনা এবং হানকম ওয়েব অনুমোদন-সামঞ্জস্যপূর্ণ hwpctl API স্তর (৩০টি Action, ParameterSet/ParameterArray, Field API) প্রদান করে। সংরক্ষণে HWP সম্পাদনা সংরক্ষণ, HWPX/HML অর্থ সংরক্ষণকারী সেভ এবং HWPX→HWP রূপান্তর সমর্থন করে। ## উন্নয়ন পদ্ধতি Rust 1.93.1 ভিত্তিক এবং WASM বিল্ড Docker দিয়ে পুনরুৎপাদন করা হয়। ৩,৪০০টিরও বেশি Rust টেস্ট এবং studio ইউনিট/e2e/ভিজ্যুয়াল রিগ্রেশন CI পরিচালিত হয়। প্রকল্পটি স্পষ্টভাবে এমন একটি পদ্ধতি গ্রহণ করে যেখানে মানব ওয়ার্ক ডিরেক্টর দিকনির্দেশনা ও আর্কিটেকচার সিদ্ধান্তের মালিক এবং AI-কে বাস্তবায়ন গুণক হিসেবে ব্যবহার করা হয়; পরিকল্পনা অনুমোদন, কোড রিভিউ এবং মান নিয়ন্ত্রণ গেটের মধ্য দিয়ে যেতে হয়। উন্নয়ন রেকর্ড mydocs/ ডিরেক্টরিতে জমা হয়। কন্ট্রিবিউশন PR main নয়, devel ব্রাঞ্চে গ্রহণ করা হয়।