26 पॉइंट द्वारा shuggie 2025-12-19 | 7 टिप्पणियां | WhatsApp पर शेयर करें

सरकारी अनुसंधान संस्थान में काम करते हुए 9 साल हो गए हैं, और HWP दस्तावेज़ कार्य की असुविधाओं को हल करने के लिए इसे विकसित किया।

विकास पृष्ठभूमि

  • 2018: Python सीखने की शुरुआती अवधि में, regex-आधारित HML/HWPML कन्वर्टर का प्रयास - https://github.com/msjang/md2hml
  • जनवरी 2025: hwpfy विकास
    • रीयल-टाइम collaborative editing wiki के आधार पर लगभग 20 लोगों की साप्ताहिक कार्य-रिपोर्टों का संकलन
    • wiki → DOCX export → सरकारी फ़ॉर्मेट लागू किया हुआ DOCX में रूपांतरण (hwpfy) → Hangeul app में खोलकर HWPX के रूप में save → संस्थान के वरिष्ठ विभाग के साथ HWPX के रूप में साझा
  • दिसंबर 2025: pypandoc-hwpx
    • अब लगा कि पर्याप्त अनुभव जमा हो गया है, इसलिए गंभीरता से समय लगाकर इसे विकसित किया।

विकास विधि

  1. DOCX को इच्छित फ़ॉर्मेट में बनाया और उसे HWPX के रूप में save किया।
  2. बने हुए DOCX और HWPX को unzip करके XML देखा, अनावश्यक properties हटाईं और उसे परिष्कृत किया। फिर यह भी जाँचा कि वह Word और Hangeul app में सही से खुलता है या नहीं।
  3. md, html, docx, hwpx फ़ॉर्मेट की तुलना करने वाला एक दस्तावेज़ बनाया। - https://github.com/msjang/pypandoc-hwpx/…
  4. मूल रूप से ऊपर दिए गए format_comparison.md को देखकर LLM से coding करवाने का इरादा था, लेकिन फिर समझ आया कि मेरे पास पहले से ही सही उत्तर वाला HWPX मौजूद है।
  5. Antigravity (Gemini Pro 3) के साथ कई बार feedback लेते हुए इसे बनाया। मनचाहा फ़ॉर्मेट नहीं निकल रहा था, इसलिए XML को बारीकी से खोलकर देखते हुए feedback दिया। फ़ॉर्मेट तुलना दस्तावेज़ का सीधे उल्लेख नहीं किया, लेकिन उसकी सामग्री को समझ लेना review करने में बहुत मददगार रहा।

आगे का काम

Pypandoc से Python हटाकर Haskell में coding करना चाहता हूँ और Pandoc में HWPX writer का योगदान देना चाहता हूँ.

7 टिप्पणियां

 
roxie 2025-12-25

https://velog.io/@wjsdj2009/Lee Jun-seok ke saath rashtrapati chunav side project karne ki kahani feat. Haksikmeokja-tc85y4ok

ऐसा एक आर्टिकल है, तो एक बार नेताओं से संपर्क करके देखने का क्या ख़याल है...?

 
aer0700 2025-12-20

लगता है यह ऐसा आइटम है जिसे Hancom को पहले ही विकसित कर लेना चाहिए था... अगर Hancom में विदेशों में विस्तार करने की इच्छा है तो।

 
vpark45 2025-12-19

हास्केल में योगदान के लिए शुभकामनाएँ!

 
shuggie 2025-12-19

मैंने मूल रूप से इसे एक-दो महीनों में धीरे-धीरे बनाने की योजना बनाई थी, लेकिन कल https://youtu.be/8cSqPRsM_Yg वाली खबर आ गई, इसलिए इसे जल्दबाज़ी में बनाना पड़ा।

 
mse9000 2025-12-19

बहुत बढ़िया है
लेकिन क्षमा करें, क्या राष्ट्रपति जिस कन्वर्ज़न दिशा को चाहते हैं, वह
hwp* -> .md, docs, pdf plain text ... नहीं होगी? क्या यह प्रोजेक्ट रिवर्स कन्वर्ज़न भी सपोर्ट करता है?

 
shuggie 2025-12-19

hwp या hwpx को parse करने वाली लाइब्रेरीज़ पहले से काफी समय से मौजूद हैं। Java आधारित विकल्पों में यह काफ़ी प्रसिद्ध हैं.
https://github.com/neolord0/hwplib
https://github.com/neolord0/hwpxlib

Python में Hancom win32 API को wrap करने वाला भी एक विकल्प है। HWP automation के शुरुआती लेक्चर्स में यही अक्सर दिखता है। यानी backend में Windows के लिए HWP app को control करना।
https://pypi.org/project/pyhwpx/

Python में बिना किसी अलग program के standalone तरीके से HWPX को handle करने के लिए यह है। इसमें पढ़ना या replace करना संभव है, और paragraph या table भी जोड़े जा सकते हैं. https://github.com/airmang/python-hwpx

लेकिन सोचें तो हम ज़्यादातर LLM apps के साथ communicate करते हैं। ChatGPT, Claude, Gemini में web browser से access करके chat के ज़रिए काम करते हैं। Local model को OpenWebUI पर चलाएँ, तब भी browser से access करके इस्तेमाल करते हैं। Smartphone ChatGPT app के voice mode में हुई बातचीत के results भी web browser में chat log के रूप में देखे जा सकते हैं। और LLM का output copy button दबाकर Notepad में paste करें तो पता चलता है कि वह markdown है।

LLM से markdown या html निकलता है, तो क्या इसे सीधे hwpx में बदलकर save करने वाली कोई library है? नहीं है।

GEMINI Pro के साथ patent ideas पर सोचते समय वह पूछता है, क्या इसे document में बदल दूँ? और button दबाते ही Google Docs में patent specification का draft बन जाता है। आखिरकार यह markdown को convert करके document बनाना ही है, लेकिन नतीजा काफ़ी देखने लायक होता है।

दक्षिण कोरिया ने चाहें पसंद से या मजबूरी में, HWP को कामकाज और communication का standard बना लिया है। और हमारे workflow के भीतर HWP generation होना एक तरह से स्वाभाविक बात है।

जब ChatGPT voice mode से पूरी meeting सुनने के बाद आप कहते हैं, ‘इसे summarize करके meeting minutes बना दो और participants को mail से भेज दो’, या ‘brainstorming की गई बातों को patent specification के draft में बदल दो’, तो उस output का HWP होना चाहिए — यही बात है।

अब तक LLM के results को इंसान web browser से Hangul app में copy करके लाता था, फिर formatting मिलाता था, character width और letter spacing जैसी चीज़ों को मेहनत से adjust करता था, और document layout तैयार करता था।

जब GEMINI खुद Google Docs बना देने के दौर में है, तो क्या दक्षिण कोरिया के tax money से बने LLM models और services को बिना किसी मानवीय हस्तक्षेप के HWPX नहीं बनाना चाहिए?

मुझे work automation के लिए ऐसी ज़रूरत थी, और उसी के लिए मैंने इसे बनाया।

 
shuggie 2025-12-19

परिशिष्ट.

HWP को खुद parse करके text में बदलना आसान है। Google ने कोरियाई दस्तावेज़ों को index करने के लिए 2000 के दशक से ही इसे बनाकर आंतरिक रूप से लागू किया हुआ था, और ऊपर उल्लेख किए गए open source प्रोजेक्ट्स से भी यह पर्याप्त रूप से संभव है।

अगर HTML के h1~h6 के अनुरूप outline level 1~6 styles लगाए जाएँ, तो दस्तावेज़ की hierarchy को सुरक्षित रखते हुए दस्तावेज़ बनाया जा सकता है।

लेकिन HWP editor में features बहुत ज़्यादा हैं, और इसका उपयोग करने वाले लोग कागज़ पर छपे आउटपुट को अच्छा दिखाने पर ज़्यादा ध्यान देते रहे हैं, इसलिए formatting लागू करते समय outline level लागू करने की कोशिश नहीं की गई।

इसे सबसे साफ़ तौर पर यह दिखाता है कि जब किसी शोध संस्थान में 300 पन्नों के HWP दस्तावेज़ को PDF के रूप में save किया जाता है, तो bookmark information बिल्कुल भी नहीं बनती। इसलिए वह electronic document होने के बावजूद scroll करके खोजना पड़ता है। यह बहुत असुविधाजनक है। लेकिन बड़े आकार की PDF में, चाहे computer कितना भी अच्छा हो, जल्दी-जल्दी scroll करके skim करने पर बहुत अटकन होती है।

संस्थान मूल्यांकन के समय यह काम इस तरह नहीं किया जा सकता, इसलिए समीक्षकों की संख्या के हिसाब से सैकड़ों pannon ki reporton ko dher lagakar print kiya jata hai aur usi tarah sansthan mulyankan kiya jata hai. Aur mulyankan khatm hote hi unhen turant phenk diya jata hai.

विदेशी रिपोर्टों में, अगर 400 पन्नों की PDF रिपोर्ट मिलती है, तो केवल table of contents ही 16 पन्नों का होता है, और contents में links लगे होते हैं ताकि click करने पर संबंधित page पर जाया जा सके। Outline view में देखो तो bookmarks बहुत बारीकी से व्यवस्थित होते हैं। इसका मतलब है कि tool में, भले ही व्यक्ति सचेत रूप से न डाले, यह आसानी से input हो जाता है और अपने आप generate हो जाता है।

खैर, फिर मूल बात पर लौटें तो, अभी जो HWP दस्तावेज़ अधिकतर Arae-a Hangeul के उपयोग की परंपरा के आधार पर बनाए जाते हैं, उनसे text तो निकाला जा सकता है, लेकिन दस्तावेज़ की hierarchy information पाना मुश्किल है।

लेकिन अगर LLM की मदद से बिना मानवीय हस्तक्षेप के HWP generate किया जाए, तो इन बातों को ध्यान में रखकर इसे अपने आप बनाया जा सकता है।