Slug Generator
किसी भी टेक्स्ट को साफ URL-अनुकूल स्लग में परिवर्तित करें
इनपुट टेक्स्ट
Slug
URL स्लग क्या होता है?
URL स्लग किसी वेब पते का वह भाग है जो एक विशिष्ट पृष्ठ को human-readable रूप में पहचानता है। URL https://example.com/blog/my-first-post में स्लग है my-first-post। एक स्लग जनरेटर किसी पृष्ठ के शीर्षक या विवरण को एक ऐसी स्ट्रिंग में रूपांतरित करता है जिसमें केवल छोटे अक्षर, अंक और हाइफ़न (या चुना गया अन्य विभाजक) होते हैं। इस प्रक्रिया में रिक्त स्थान हटाए जाते हैं, accents और diacritics को साफ किया जाता है, विशेष वर्ण हटाए जाते हैं, और लगातार रिक्त स्थान को एकल विभाजक में बदला जाता है।
स्लग निर्माण कंटेंट मैनेजमेंट सिस्टम, स्टैटिक साइट जनरेटर, ब्लॉग प्लेटफ़ॉर्म और उन अनुप्रयोगों में एक मानक चरण है जो उपयोगकर्ता के इनपुट से URL बनाते हैं। WordPress, Ghost, Hugo, Next.js और Django सभी में स्लग निर्माण का तर्क शामिल है क्योंकि पठनीय URL उपयोगिता और खोज इंजन अनुकूलन दोनों को बेहतर बनाते हैं। एक सुव्यवस्थित स्लग उपयोगकर्ता को लिंक पर क्लिक करने से पहले ही बता देता है कि पृष्ठ पर क्या है।
"स्लग" शब्द समाचार पत्र प्रकाशन से आया है, जहाँ यह उत्पादन के दौरान किसी समाचार को पहचानने के लिए उपयोग किए जाने वाले संक्षिप्त लेबल को कहते थे। वेब विकास में, स्लग वही कार्य करता है: यह किसी लंबे शीर्षक या नाम से प्राप्त एक संक्षिप्त, अद्वितीय, URL-सुरक्षित पहचानकर्ता है। चूँकि स्लग प्रोग्रामेटिक रूप से बनाए जाते हैं, इसलिए एक विश्वसनीय स्लग जनरेटर प्रत्येक पृष्ठ और locale में एकरूपता सुनिश्चित करता है।
यह Slug Generator क्यों उपयोग करें?
URL स्लग मैन्युअल रूप से बनाना error-prone होता है। किसी accent को हटाना भूल जाना, दोहरा हाइफ़न छोड़ना, या Unicode इनपुट के साथ किसी edge case को चूकना — ये सब टूटे हुए या अनाकर्षक URL बना सकते हैं। यह उपकरण उन समस्याओं को स्वचालित रूप से संभालता है।
Slug Generator के उपयोग के अवसर
स्लग निर्माण के नियम और वर्ण प्रबंधन
स्लग निर्माण रूपांतरणों के एक पूर्वानुमेय क्रम का पालन करता है। प्रत्येक चरण को समझने से आप अप्रत्याशित आउटपुट को डीबग कर सकते हैं या अपना स्वयं का slugify फ़ंक्शन बना सकते हैं।
- 1. Unicode नॉर्मलाइज़ेशन (NFD)संयुक्त वर्णों को आधार वर्ण और combining mark में विघटित करें। उदाहरण के लिए, é (U+00E9) बनता है e + combining acute accent (U+0301)। इससे diacritics को अगले चरण में हटाना संभव होता है।
- 2. Diacritics हटानाUnicode Combining Diacritical Marks ब्लॉक (U+0300–U+036F) के सभी वर्ण हटाएँ। इस चरण के बाद, café बनता है cafe और Ñ बनता है N।
- 3. विशेष वर्ण हटानाजो वर्ण अक्षर, अंक, रिक्त स्थान, या हाइफ़न नहीं है, उसे एक रिक्त स्थान से बदलें। इससे विराम चिह्न, प्रतीक, और ऐसे वर्ण हट जाते हैं जिनका कोई ASCII समकक्ष नहीं है।
- 4. रिक्त स्थान की छँटाई और संकुचनआरंभ और अंत के रिक्त स्थान हटाएँ, फिर लगातार रिक्त स्थान, अंडरस्कोर, या हाइफ़न की श्रृंखला को एकल चुने हुए विभाजक में संकुचित करें।
- 5. केस और विभाजक लागू करनाछोटे अक्षरों में बदलें (वैकल्पिक) और चुने हुए विभाजक वर्ण से शब्दों को जोड़ें: हाइफ़न (-), अंडरस्कोर (_), या डॉट (.)।
वर्ण रूपांतरण संदर्भ
नीचे दी गई तालिका दर्शाती है कि स्लग निर्माण के दौरान सामान्य वर्णों को कैसे संभाला जाता है:
| इनपुट | आउटपुट | लागू नियम |
|---|---|---|
| Hello World | hello-world | Lowercase + space → hyphen |
| Café au Lait | cafe-au-lait | NFD normalization strips é → e |
| naïve résumé | naive-resume | Multiple diacritics removed |
| Price: $9.99! | price-9-99 | Symbols ($, !, :) removed |
| too many | too-many | Whitespace trimmed and collapsed |
| one--two___three | one-two-three | Mixed separators collapsed |
| Привет мир | privet-mir | Cyrillic (if transliteration) or removed |
| file_name.txt | file-name-txt | Dots and underscores replaced |
| React & Vue | react-vue | Ampersand removed |
| 2026-03-30 | 2026-03-30 | Digits and hyphens preserved |
कोड उदाहरण
लोकप्रिय भाषाओं और फ़्रेमवर्क में स्लग निर्माण। प्रत्येक उदाहरण Unicode नॉर्मलाइज़ेशन, diacritic हटाना, और विभाजक सम्मिलन को संभालता है।
function slugify(text, separator = '-') {
return text
.normalize('NFD') // decompose accented chars
.replace(/[\u0300-\u036f]/g, '') // strip diacritics
.toLowerCase()
.replace(/[^\w\s-]/g, ' ') // drop special chars
.trim()
.replace(/[\s_-]+/g, separator) // collapse whitespace → separator
// slugify('Café au Lait') → "cafe-au-lait"
// slugify('Hello World', '_') → "hello_world"
}
// Node.js alternative using the `slugify` npm package:
// npm install slugify
// const slugify = require('slugify')
// slugify('Hello World', { lower: true, strict: true }) → "hello-world"import re
import unicodedata
def slugify(text: str, separator: str = '-') -> str:
"""Convert text to a URL-safe slug."""
text = unicodedata.normalize('NFD', text)
text = text.encode('ascii', 'ignore').decode('ascii') # strip non-ASCII
text = text.lower()
text = re.sub(r'[^\w\s-]', ' ', text)
text = text.strip()
text = re.sub(r'[\s_-]+', separator, text)
return text
# slugify('Café au Lait') → "cafe-au-lait"
# slugify('Hello World', '_') → "hello_world"
# Alternative: python-slugify (pip install python-slugify)
# from slugify import slugify
# slugify('Café au Lait') → "cafe-au-lait"package main
import (
"regexp"
"strings"
"unicode"
"golang.org/x/text/unicode/norm"
"golang.org/x/text/transform"
"golang.org/x/text/runes"
)
func slugify(text string) string {
// NFD normalize and strip diacritics
t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC)
result, _, _ := transform.String(t, text)
result = strings.ToLower(result)
re := regexp.MustCompile(`[^\w\s-]+`)
result = re.ReplaceAllString(result, " ")
result = strings.TrimSpace(result)
re = regexp.MustCompile(`[\s_-]+`)
result = re.ReplaceAllString(result, "-")
return result
}
// slugify("Café au Lait") → "cafe-au-lait"
// slugify("Hello World") → "hello-world"function slugify(string $text, string $separator = '-'): string {
// Transliterate non-ASCII characters
$text = transliterator_transliterate(
'Any-Latin; Latin-ASCII; Lower()', $text
);
// Remove anything that is not a word char, space, or hyphen
$text = preg_replace('/[^\w\s-]/', ' ', $text);
$text = trim($text);
$text = preg_replace('/[\s_-]+/', $separator, $text);
return $text;
}
// slugify('Café au Lait') → "cafe-au-lait"
// slugify('Hello World', '_') → "hello_world"