- एक minimalist HTML microframework, जिससे plain HTML जैसी सरल शैली में modular और dynamic web user interfaces बनाए जा सकते हैं
- यह केवल एक ही काम करता है: पेज पर किसी भी element से HTML resource लोड करना
- इससे पेज के केवल किसी हिस्से को अपडेट करना संभव होता है, यानी page fragments को बदला जा सकता है
- कुल आकार सिर्फ 166 bytes है, यह pure HTML का उपयोग करता है, dependency-free है, और इसे JS bundle, backend, special attributes, DSL, या custom elements की ज़रूरत नहीं होती
- यह real DOM interaction का उपयोग करता है, और VDOM, click listeners, AJAX, fetch आदि का उपयोग नहीं करता
- बस iframe के रूप में inline HTML snippet जोड़ना है, और काम हो जाता है
<iframe hidden name=htmz onload="setTimeout(()=>document.querySelector(this.contentWindow.location.hash||null)?.replaceWith(...this.contentDocument.body.childNodes))"></iframe>
बुनियादी उपयोग
- htmz का उपयोग करने के लिए, resource URL की ओर इशारा करने वाला
href attribute (या form का action) और destination ID selector वाला hyperlink (या form) चाहिए।
- यह URL fragment को destination ID selector के रूप में दोबारा उपयोग करने जैसा दिखता है, लेकिन इस context में URL fragment का किसी और उद्देश्य से उपयोग नहीं होता, इसलिए इसे पुनः उपयोग किया जाता है।
यह वास्तव में क्या करता है?
- htmz एक ही सुविधा देता है: पेज के भीतर किसी भी element के अंदर HTML resource लोड करना।
- यह विचार नया नहीं है; web page को ऐसे हिस्सों में बाँटना जिन्हें स्वतंत्र रूप से reload किया जा सके, 1990 के दशक के मध्य से मौजूद है।
- htmz, HTML frames का generalized रूप है, जो पेज के भीतर किसी भी element से HTML resource लोड कर सकता है।
उन्नत उपयोग
- वर्तमान HTML5 में केवल
a और form elements ही htmz को target करके invoke कर सकते हैं।
base element का उपयोग करके सभी relative links के लिए htmz को default target के रूप में सेट किया जा सकता है।
- अगर आप वास्तविक target value का उपयोग करना पसंद करते हैं, तो एक hack इस्तेमाल किया जा सकता है जिसमें destination ID selector को सीधे
target attribute में लिखा जाता है।
scripting / interaction
- यदि अधिक interaction चाहिए, तो htmz की companion scripting language, JavaScript, का उपयोग किया जा सकता है।
- htmz, JS लिखने या UI libraries उपयोग करने से नहीं रोकता, और htmz के साथ regular HTTP form के रूप में form values अभी भी submit की जा सकती हैं।
extensibility
- यदि advanced selectors, error handling, multiple targets आदि की ज़रूरत हो, तो developers इसे आवश्यकता अनुसार extend कर सकते हैं।
FAQ
- htmz एक
iframe है जिसका नाम htmz होता है, और यह iframe के माध्यम से URL लोड करके htmz को invoke करता है।
- htmz एक proxy target की तरह काम करता है, जो response को निर्दिष्ट target तक पहुँचाता है।
- htmz लगातार DOM parse नहीं करता, special attributes या syntax नहीं खोजता, और DOM पर listeners attach नहीं करता।
- htmz एक HTML microframework है, जो न्यूनतम JS का उपयोग करता है।
- htmz एक snippet है, और इसका अर्थ 'Html with Targeted Manipulation Zones' है।
- यह project htmx के जवाब के रूप में शुरू हुआ था, और यह एक प्रयोग था कि क्या htmx का उपयोग किए बिना आज के web में load-link-target functionality लागू की जा सकती है।
- अपने छोटे आकार के बावजूद htmz काफी शक्तिशाली महसूस होता है, और इसकी मुख्य सीमा यह है कि प्रति response केवल एक ही destination हो सकता है।
GN⁺ की राय
- नवोन्मेषी दृष्टिकोण: htmz web development में framework की जटिलता को कम करता है और pure HTML का उपयोग करके web interfaces बनाने का एक नवोन्मेषी तरीका देता है। इसका मतलब यह है कि web development का यह तरीका शुरुआती software engineers के लिए भी आसानी से सुलभ हो सकता है।
- performance और simplicity का संतुलन: 166 bytes का बेहद हल्का आकार और dependency-free संरचना web pages की performance को काफी बेहतर बना सकती है। साथ ही यह जटिल JavaScript frameworks सीखे बिना प्रभावी web pages बनाने की सरलता भी देती है।
- web development का भविष्य: htmz web development के भविष्य पर एक रोचक नज़रिया देता है। यह दिखाता है कि web standards और technologies का विकास किस तरह developers को अधिक सरल और अधिक efficient tools दे सकता है।
3 टिप्पणियां
वाह, यह तो काफ़ी नया और दिलचस्प है lol. लिंक में लिखा है कि यह खुद को library या framework भी नहीं, बस एक snippet मानता है... हाह
उन्नत उपयोग: वर्तमान HTML5 में केवल
औरelements ही -> वर्तमान HTML5 में केवलऔरelements ही ऐसा लगता है कि HTML escaping लागू नहीं हैHacker News राय
पहले कमेंट का सार:
दूसरे कमेंट का सार:
तीसरे कमेंट का सार:
चौथे कमेंट का सार:
पाँचवें कमेंट का सार:
छठे कमेंट का सार:
this.हटाकर code size और कम करने का सुझाव।सातवें कमेंट का सार:
targetका उपयोग करने से, JS disabled होने पर यह htmx की तरह gracefully degrade नहीं कर सकता — यह बात कही गई।आठवें कमेंट का सार:
<slot>element को इस तरह reuse करना बुरा आइडिया बताया गया।<slot>का बहुत specific behavior होता है, और library चाहे जो करे, यह host element के children से replace हो जाता है।<output>element पहले से मौजूद है।नौवें कमेंट का सार:
दसवें कमेंट का सार: