स्लग वेब एड्रेस का वह पठनीय अंतिम भाग होता है — जैसे example.com/blog/my-first-post में my-first-post। यह वह हिस्सा है जिसे कोई व्यक्ति क्लिक करने से पहले पढ़ता है, और यही वह हिस्सा है जिसे सर्च इंजन पेज की सामग्री के छोटे विवरण के रूप में पढ़ता है। इसीलिए यह डेटाबेस आईडी या तारीख से अधिक महत्वपूर्ण होता है। यह मुफ्त जनरेटर किसी भी टेक्स्ट को स्लग में बदल देता है: किसी भी टाइटल को "कनवर्ट करने के लिए टेक्स्ट" में पेस्ट करें, "जनरेट करें" पर क्लिक करें, और परिणाम उसके बगल में एक कॉपी बटन के साथ दिखाई देगा। इसकी डिफ़ॉल्ट सेटिंग्स वही हैं जो अधिकांश साइट्स को चाहिए होती हैं — छोटे अक्षर, शब्दों के बीच डैश, आम स्टॉप वर्ड्स को हटाना, और गैर-लैटिन अक्षरों का लिप्यंतरण — ताकि एक क्लिक में आपको एक उपयोगी स्लग मिल जाए। आप अपनी आवश्यकता के अनुसार इनमें से किसी भी सेटिंग को बदल सकते हैं।
सब कुछ आपके अपने डिवाइस पर होता है। यह पेज एक छोटा जावास्क्रिप्ट इंजन लोड करता है और उसे स्थानीय स्तर पर चलाता है: आपके टाइटल कभी भी अपलोड या लॉग नहीं किए जाते हैं, और कनेक्शन बंद होने पर भी यह टूल काम करता रहता है। इसी वजह से जैसे ही आप कोई सेटिंग बदलते हैं, परिणाम तुरंत अपडेट हो जाता है। यह जानना महत्वपूर्ण है कि यह काम किस क्रम में होता है, क्योंकि इसी से आउटपुट का अनुमान लगाया जा सकता है: एक पेस्ट किए गए लिंक को सबसे पहले उसके अंतिम भाग तक छोटा किया जाता है, फिर टेक्स्ट को छोटे अक्षरों में बदला जाता है, फिर स्टॉप वर्ड्स हटाए जाते हैं, गैर-लैटिन वर्णों का लिप्यंतरण किया जाता है, उसके बाद यदि आपने चुना है तो नंबर और विशेष वर्ण हटा दिए जाते हैं। जो बचता है उसे आपके चुने गए सेपरेटर के साथ जोड़ दिया जाता है, फिर परिणाम को अधिकतम लंबाई तक काट दिया जाता है, और अंत में यदि कोई स्लग दोहराया जाता है तो उसमें एक संख्यात्मक प्रत्यय जोड़ दिया जाता है। "कनवर्ट करने के लिए टेक्स्ट" एक बार में 500,000 वर्ण स्वीकार कर सकता है, जो कुछ हज़ार लेखों के टाइटल के बराबर है।
एक लाइन इनपुट, एक स्लग आउटपुट। आप टाइटल्स की पूरी सूची पेस्ट कर सकते हैं और प्रत्येक लाइन अपना स्वयं का क्रमांकित स्लग बन जाती है। इसके ऊपर वह मूल टाइटल ग्रे रंग में दिखाई देता है, ताकि पचास की सूची में भी आप पहचान सकें कि कौन सा स्लग किस शीर्षक का है। अगर कोई सूची पहले से ही किसी फ़ाइल में मौजूद है, तो उसे क्लिपबोर्ड के ज़रिए कॉपी करने की ज़रूरत नहीं है: इनपुट बॉक्स के बगल में "फ़ाइल से लोड करें" बटन किसी भी सादे टेक्स्ट फ़ाइल — .txt, .csv, .md, .json आदि — को खोलकर उसकी सामग्री को सीधे फ़ील्ड में डाल देता है। आपका ब्राउज़र उस फ़ाइल को बिल्कुल वैसे ही पढ़ता है जैसे वह आपके टाइप किए हुए टेक्स्ट को पढ़ता है, और इसे कहीं भी अपलोड नहीं किया जाता है। "इनपुट को इससे अलग करें" यह तय करता है कि सूची को कैसे काटा जाए। "स्वचालित पहचान" डिफ़ॉल्ट रूप से चालू है: इसमें नई लाइन हमेशा आइटम को अलग करती है, जबकि अल्पविराम केवल तभी अलग करता है जब इनपुट एक ही लाइन हो और उसके सभी भाग अलग-अलग वैल्यूज़ जैसे दिखते हों — इसलिए "कीमत 3,500 रुपये" और "अध्याय 5: परिणाम, निष्कर्ष" टुकड़ों में टूटने के बजाय पूरे ही रहते हैं। अगर आपको पहले से ही अपने डेटा का आकार पता है, तो "नई पंक्ति", "अल्पविराम" और "स्पेस" आपको सटीक विकल्प देते हैं। "आउटपुट प्रारूप" यह तय करता है कि पूरी सूची आपको कैसे वापस मिलेगी — प्रति लाइन एक, "स्पेस से अलग किया गया" या "अल्पविराम से अलग किया गया" — और "सभी कॉपी करें" तथा "फ़ाइल में सहेजें" दोनों इसी प्रारूप का पालन करते हैं। "इतिहास" आपके ब्राउज़र में पिछले 10 बैच को सुरक्षित रखता है, इसलिए एक घंटे पहले कनवर्ट की गई सूची भी वहीं मौजूद रहती है।
गैर-लैटिन टेक्स्ट वह हिस्सा है जहाँ ज़्यादातर स्लग जनरेटर लगभग सही होते हैं, लेकिन बहुत कम ही पूरी तरह से सही होते हैं। एक URL सादे ASCII में सबसे सुरक्षित होता है, इसलिए सिरिलिक, ग्रीक, अरबी, चीनी और उच्चारण चिह्न वाले यूरोपियन वर्णों को कनवर्ट करना पड़ता है, और मुख्य सवाल यह होता है कि किस नियम से। यह पेज इसका जवाब दो परतों में देता है। सामान्य परत सभी लिपियों को कवर करती है: यह एक लिप्यंतरण लाइब्रेरी है जो आपके द्वारा टाइप किए जा सकने वाले लगभग हर वर्ण के लिए ASCII में एक उचित उत्तर देती है। "यहाँ से लिप्यंतरण करें" में "स्वचालित (कोई भी भाषा)" चुनने पर यही नियम लागू होता है। विशिष्ट परत उन भाषाओं के लिए हाथ से बनाई गई तालिकाओं का एक सेट है जहाँ सामान्य उत्तर उस देश में इस्तेमाल होने वाले तरीके से मेल नहीं खाता; "यहाँ से लिप्यंतरण करें" मेनू उन भाषाओं के नाम दिखाता है जिनकी तालिका उपलब्ध है। यदि आप उनमें से किसी एक को चुनते हैं, तो उसकी तालिका "लिप्यंतरण नियम" के नीचे एक संपादन योग्य ग्रिड में लोड हो जाती है, जहाँ प्रत्येक अक्षर एक टेक्स्ट फ़ील्ड होता है जिसे आप बदल सकते हैं, और "नियमों को डिफ़ॉल्ट पर रीसेट करें" इसे वापस पहले जैसा कर देता है। यूक्रेनियाई तालिका 2010 के कैबिनेट ऑफ मिनिस्टर्स रेजोल्यूशन नंबर 55 का पालन करती है, जो यूक्रेनियाई पासपोर्ट में मुद्रित मानक है। इसमें वे बारीकियाँ भी शामिल हैं जो आसानी से छूट जाती हैं: зг को zh के बजाय zgh लिखा जाता है ताकि वह ж से अलग रहे; є, ї, й, ю और я शब्द की शुरुआत में एक रूप लेते हैं और अंदर दूसरा; तथा एपोस्ट्रोफी और सॉफ्ट साइन बिना नया शब्द शुरू किए हटा दिए जाते हैं, इसलिए Знам'янка, znamyanka के बजाय znamianka बन जाता है। जर्मन डिफ़ॉल्ट रूप से ä → ae, ö → oe, ü → ue का उपयोग करता है जो जर्मन पतों में आम है, लेकिन यदि आप चाहें तो ä → a का विकल्प भी इस्तेमाल कर सकते हैं।
"स्टॉप वर्ड्स हटाएं" डिफ़ॉल्ट रूप से चालू रहता है। यह छोटे जोड़ने वाले शब्दों — a, the, and, of, for — को हटा देता है जो स्लग में कोई अर्थ जोड़े बिना उसे लंबा कर देते हैं। "स्टॉप वर्ड्स" के नीचे की सूची पूरी तरह से संपादन योग्य है और पहले से ही भरी हुई आती है: इसमें एक अंग्रेजी सूची के साथ उस भाषा की सूची भी होती है जिस पेज पर आप हैं। इसलिए यूक्रेनियाई पेज в, на, та और і को पहचानता है, और जर्मन पेज der, die और das को पहचानता है। आप अपने शब्द जोड़ सकते हैं, जिन्हें आप रखना चाहते हैं उन्हें हटा सकते हैं, या इस सुविधा को पूरी तरह से बंद कर सकते हैं, जिससे फ़ील्ड ग्रे हो जाता है। इस बारे में दो महत्वपूर्ण बातें: स्टॉप वर्ड्स को हटाना केवल एक साफ़ और छोटा एड्रेस पाने के लिए है, न कि सर्च रैंकिंग सुधारने के लिए। यदि किसी टाइटल का हर एक शब्द इस सूची में मौजूद है, तो टूल आपको एक खाली बॉक्स देने के बजाय यह बता देता है कि कनवर्ट करने के लिए कुछ नहीं बचा है।
बाकी स्विच आकार तय करते हैं। "स्लग में सेपरेटर" यह चुनता है कि शब्दों के बीच क्या रहेगा, और डिफ़ॉल्ट रूप से डैश (-) का इस्तेमाल केवल पसंद की बात नहीं है: Google डैश को शब्दों के बीच सेपरेटर के रूप में मानता है और अंडरस्कोर को जोड़ने वाले के रूप में। इसलिए my_first_post क्रॉलर तक एक लंबे शब्द के रूप में पहुँचता है जबकि my-first-post तीन शब्दों के रूप में। "अंडरस्कोर (_)" विकल्प उन सिस्टम के लिए है जिन्हें इसकी सख्त ज़रूरत है। "छोटे अक्षर" चालू है क्योंकि अधिकांश सर्वर एड्रेस को केस-सेंसिटिव मानते हैं, और बड़े-छोटे अक्षरों का मिश्रण आसानी से एक पेज के लिए दो URL बना सकता है। "विशेष वर्ण हटाएं" अक्षरों, अंकों, स्पेस, डैश या अंडरस्कोर के अलावा सब कुछ हटा देता है, जो पते से विराम चिह्न, उद्धरण चिह्न और इमोजी को दूर रखता है — इमोजी को लिप्यंतरण से पहले ही हटा दिया जाता है ताकि एक रॉकेट इमोजी rocket शब्द में न बदल जाए। "नंबर हटाएं" बंद है, क्योंकि टाइटल में मौजूद संख्या आमतौर पर उसी का हिस्सा होती है। "अधिकतम लंबाई" 10 से 200 तक होती है और डिफ़ॉल्ट रूप से 80 पर सेट होती है; जब स्लग उससे लंबा हो जाता है, तो इंजन शब्द के बीच से काटने के बजाय अंतिम पूर्ण शब्द पर उसे काट देता है। प्रत्येक परिणाम के बगल में उसकी लंबाई (वर्णों में) दी गई होती है, और 60 के पार होने पर यह लाल हो जाती है — यह कोई सख्त सीमा नहीं है, बल्कि वह बिंदु है जहाँ स्लग सर्च रिजल्ट में कटना शुरू हो जाता है और उसे मैसेज में पेस्ट करना मुश्किल हो जाता है।
दो और स्विच मौजूद हैं जो बड़ी सूची के रूपांतरण को वापस वन-क्लिक जॉब बना देते हैं। "स्लग्स को अद्वितीय बनाएं" उस स्थिति को संभालता है जहाँ दो अलग-अलग टाइटल एक ही स्लग में बदल जाते हैं — जैसे "शीर्ष 10 सुझाव" और "शीर्ष-10 सुझाव" दोनों sirs-10-sujhav बन जाते हैं — यह दूसरे को -2 और तीसरे को -3 देता है, और यदि सफिक्स जोड़ने से अधिकतम लंबाई पार होती है, तो यह पहले मूल हिस्से को छोटा करता है। एक ही एड्रेस पर दो पेजों का होना एक ऐसी समस्या है जिसे आपके CMS की तुलना में इस सूची में रोकना बहुत सस्ता है। "पेस्ट किए गए URL से स्लग लें" विपरीत दिशा में काम करता है: एक पूरा लिंक पेस्ट करें और यह टूल पथ का अंतिम हिस्सा ले लेता है, क्वेरी स्ट्रिंग और कोई .html या .php को हटा देता है, और प्रतिशत-एन्कोडिंग को डिकोड कर देता है, ताकि %D0%9B%D1%8C%D0%B2%D1%96%D0%B2 पर खत्म होने वाला विकिपीडिया लिंक हेक्स डिज़िट्स के बजाय lviv के रूप में वापस आ जाए। यह तभी काम करता है जब पूरी लाइन एक लिंक हो, इसलिए वाक्य के बीच में दिए गए URL को वैसे ही छोड़ दिया जाता है।
इस स्लग जनरेटर को क्यों चुनें?
- केवल ब्राउज़र में: आपके टाइटल कभी अपलोड नहीं होते हैं, और पेज ऑफ़लाइन भी काम करता है
- पेस्ट किए गए टेक्स्ट या टेक्स्ट फ़ाइल से एक साथ बल्क रूपांतरण, जिसमें प्रत्येक स्लग के ऊपर मूल टाइटल होता है
- प्रत्येक भाषा के लिए वास्तविक लिप्यंतरण मानक, न कि सभी के लिए एक सामान्य तालिका
- यूक्रेनियन 2010 के रेजोल्यूशन नंबर 55 के अनुसार — जो पासपोर्ट में इस्तेमाल होता है
- हर नियम को एक-एक अक्षर करके संपादित किया जा सकता है, और वन-क्लिक रीसेट की सुविधा
- स्वचालित -2 और -3 सफिक्स ताकि किसी भी बैच में दो स्लग एक जैसे न हों
- एक लिंक पेस्ट करें और उसमें से स्लग प्राप्त करें, प्रतिशत-एन्कोडिंग डिकोड की गई
- एक संपादन योग्य स्टॉप वर्ड सूची जो आपकी भाषा के लिए पहले से भरी हुई आती है
- पूर्ण शब्द पर सुरक्षित ट्रंकेशन, और प्रत्येक परिणाम के बगल में कैरेक्टर काउंट
- मुफ़्त और असीमित: कोई साइन-अप नहीं, कोई कोटा नहीं, सर्वर पर कुछ भी सेव नहीं किया जाता
स्लग की आवश्यकता वहां होती है जहां किसी पेज को एक पठनीय पता ले जाना होता है। एक ब्लॉग या समाचार साइट हर हेडलाइन को स्लग में बदल देती है, और यह टूल विशेष रूप से इसी काम के लिए बनाया गया था: सप्ताह की हेडलाइंस पेस्ट करें और उनके URL प्राप्त करें। एक ऑनलाइन शॉप उत्पाद और श्रेणी के नामों के लिए यही काम करती है, आमतौर पर आयात के बाद बल्क में, और अक्सर ऐसी भाषा में जिसकी वर्णमाला पते में इस्तेमाल नहीं की जा सकती। दस्तावेज़ीकरण और ज्ञान के आधार (Knowledge bases) भी एंकर और फ़ाइल नाम इसी तरह बनाते हैं। वेब एड्रेस से परे, एक साफ़ स्ट्रिंग की ज़रूरत फ़ाइल के नाम के लिए होती है जो किसी अन्य ऑपरेटिंग सिस्टम पर ख़राब न हो, एक डेटाबेस कुंजी के लिए जिसे कोई व्यक्ति लॉग में पढ़ सके, ब्रांच के नाम के लिए, मीडिया लाइब्रेरी में इमेज के नाम के लिए, या स्टैटिक साइट जनरेटर में किसी सेक्शन के पहचानकर्ता के लिए। हर वह जगह जहां मशीन द्वारा पढ़े जाने वाले फ़ील्ड में इंसान द्वारा पढ़ा जा सकने वाला नाम डालना हो, वहां स्लग का इस्तेमाल होता है।
इस टूल पर निर्भर होने से पहले कुछ सीमाओं को जानना उपयोगी है। यह एक जनरेटर है, वैलिडेटर नहीं: यह चेक नहीं करेगा कि आपकी साइट पर कोई स्लग पहले से ही उपयोग में है या नहीं, क्योंकि इसे यह पता नहीं है कि आपकी साइट में क्या-क्या शामिल है — यह केवल उस बैच में विशिष्टता की गारंटी देता है जो आप अभी कनवर्ट कर रहे हैं। रीडायरेक्ट्स का प्रबंधन भी आपकी ज़िम्मेदारी है; किसी प्रकाशित पेज का स्लग बदलने से उसका पुराना एड्रेस टूट जाता है, और यह निर्णय इस टूल के बजाय आपके CMS को लेना है। "फ़ाइल में सहेजें" केवल सादा टेक्स्ट लिखता है, CSV या JSON नहीं। स्वचालित स्प्लिट अल्पविराम के बारे में एक निर्णय लेता है जो लगभग हर मामले में सही होता है लेकिन हर बार नहीं, और यही कारण है कि "इनपुट को इससे अलग करें" आपको इसे ओवररूल करने की अनुमति देता है। और लिप्यंतरण एक अनुवाद के बजाय एक परंपरा है — München, muenchen बन जाता है, Munich नहीं — इसलिए जब लक्ष्य भाषा में किसी पृष्ठ का पहले से ही एक स्थापित नाम हो, तो मूल नाम के किसी स्वचालित रूपांतरण के बजाय उस स्थापित नाम का स्लग के रूप में उपयोग करना बेहतर होता है।