ToolDeck

تولیدکننده اسلاگ

هر متنی را به اسلاگ تمیز و سازگار با URL تبدیل کنید

یک مثال امتحان کنید
جداکننده

متن ورودی

اسلاگ

به‌صورت محلی اجرا می‌شود · جای‌گذاری اسرار امن است
اسلاگ اینجا نمایش داده می‌شود…

اسلاگ URL چیست؟

اسلاگ URL بخشی از یک آدرس وب است که یک صفحه خاص را به‌صورت خوانا شناسایی می‌کند. در آدرس https://example.com/blog/my-first-post، اسلاگ my-first-post است. یک تولیدکننده اسلاگ، عنوان یا توضیح یک صفحه را به رشته‌ای تبدیل می‌کند که فقط شامل حروف کوچک، اعداد و خط‌تیره (یا جداکننده دیگری) باشد. این فرایند فاصله‌ها را حذف می‌کند، لهجه‌ها و نشانه‌های تلفظی را می‌زداید، کاراکترهای خاص را حذف می‌کند، و فضاهای خالی را به جداکننده‌های منفرد تبدیل می‌کند.

تولید اسلاگ یک مرحله استاندارد در سیستم‌های مدیریت محتوا، تولیدکننده‌های سایت استاتیک، پلتفرم‌های وبلاگ، و هر برنامه‌ای است که URL‌ها را از ورودی کاربر استخراج می‌کند. WordPress، Ghost، Hugo، Next.js و Django همگی منطق تولید اسلاگ دارند، زیرا URL‌های خوانا هم قابلیت استفاده و هم بهینه‌سازی موتور جستجو را بهبود می‌بخشند. یک اسلاگ خوش‌ساخت به کاربر می‌گوید صفحه چه محتوایی دارد، پیش از آن‌که روی لینک کلیک کند.

واژه «اسلاگ» از صنعت چاپ روزنامه برگرفته شده، که در آنجا به برچسب کوتاهی اطلاق می‌شد که برای شناسایی یک خبر در حین تولید استفاده می‌شد. در توسعه وب، اسلاگ همان نقش را ایفا می‌کند: شناسه‌ای فشرده، منحصربه‌فرد و سازگار با URL است که از یک عنوان یا نام بلندتر استخراج می‌شود. از آنجا که اسلاگ‌ها به‌صورت برنامه‌ای استخراج می‌شوند، یک تولیدکننده اسلاگ قابل‌اطمینان، انسجام را در تمام صفحات و زبان‌ها تضمین می‌کند.

چرا از این تولیدکننده اسلاگ استفاده کنیم؟

ساخت دستی اسلاگ‌های URL مستعد خطاست. فراموش کردن حذف یک لهجه، باقی گذاشتن خط‌تیره دوتایی، یا نادیده گرفتن حالت لبه‌ای با ورودی Unicode می‌تواند URL‌های خراب یا زشت تولید کند. این ابزار همه این مشکلات را به‌صورت خودکار رفع می‌کند.

تبدیل فوری
هر متنی را جای‌گذاری یا تایپ کنید و اسلاگ را بلادرنگ به‌روز ببینید. بدون ارسال فرم، بدون بارگذاری مجدد صفحه. هنگامی که برای دسته‌ای از عناوین مقاله یا نام محصولات به اسلاگ نیاز دارید بسیار مفید است.
🔒
پردازش با اولویت حریم خصوصی
تمام تولید اسلاگ در مرورگر شما اجرا می‌شود. متن شما هرگز از صفحه خارج نمی‌شود، بنابراین می‌توانید با اطمینان عناوین پیش‌نویس، نام‌های پروژه داخلی، یا نام محصولات منتشر‌نشده را تبدیل کنید.
⚙️
خروجی قابل تنظیم
بین جداکننده خط‌تیره، زیرخط یا نقطه انتخاب کنید. حروف کوچک را روشن یا خاموش کنید. این گزینه‌ها رایج‌ترین قراردادهای اسلاگ در فریمورک‌ها و سیستم‌های مدیریت محتوای مختلف را پوشش می‌دهند.
🌐
پشتیبانی از Unicode و لهجه‌ها
تولیدکننده نرمال‌سازی NFD را برای زدودن نشانه‌های تلفظی از کاراکترهای لهجه‌دار اعمال می‌کند. Café به cafe و naïve به naive تبدیل می‌شود. کاراکترهای غیرلاتین که قابل تبدیل نیستند به‌طور کامل حذف می‌شوند.

موارد استفاده از تولیدکننده اسلاگ

توسعه‌دهنده فرانت‌اند — برنامه‌ریزی مسیرها
اسلاگ‌های یکنواخت برای مسیرهای صفحه در React Router، Next.js یا Nuxt تولید کنید، پیش از آن‌که بخش‌های مسیر پویا را راه‌اندازی کنید. تأیید کنید که عناوین دارای کاراکترهای خاص، مسیرهای تمیز تولید می‌کنند.
مهندس بک‌اند — شناسه‌های پایگاه داده
اسلاگ‌های سازگار با URL برای رکوردهای پایگاه داده که به شناسه‌های قابل خواندن نیاز دارند ایجاد کنید. اسلاگ‌ها به‌خوبی به‌عنوان کلیدهای ثانویه در کنار شناسه‌های عددی برای نقاط پایانی REST API مانند /api/products/wireless-headphones عمل می‌کنند.
DevOps — نام‌گذاری فایل‌های پیکربندی
نام سرویس‌ها یا برچسب‌های محیط را به رشته‌های سازگار با سیستم فایل برای فایل‌های پیکربندی، برچسب‌های تصویر Docker، یا نام منابع Kubernetes تبدیل کنید، جایی که کاراکترهای خاص مجاز نیستند.
مهندس QA — تولید داده آزمایشی
به‌سرعت متغیرهای اسلاگ از عناوین موارد آزمایشی تولید کنید تا مسیریابی URL، قوانین تغییر مسیر، و رفتار برچسب canonical را در محیط‌های آزمایشی تأیید کنید.
مهندس داده — نرمال‌سازی ستون‌ها
سرتیترهای ستون آشفته از واردات CSV یا Excel را به شناسه‌های یکنواخت snake_case یا kebab-case برای استفاده در طرح‌واره پایگاه داده یا خطوط لوله داده تبدیل کنید.
دانشجو — پروژه‌های CMS و وبلاگ
یاد بگیرید تولید اسلاگ چگونه کار می‌کند، هنگامی که یک وبلاگ با WordPress، Jekyll یا یک CMS سفارشی می‌سازید. از این ابزار استفاده کنید تا اسلاگ‌های دستی خود را با یک پیاده‌سازی مرجع مقایسه کنید.

قوانین تولید اسلاگ و پردازش کاراکترها

تولید اسلاگ از یک توالی قابل پیش‌بینی از تبدیل‌ها پیروی می‌کند. درک هر مرحله به شما کمک می‌کند خروجی غیرمنتظره را اشکال‌زدایی کنید یا تابع slugify خود را بسازید.

  1. ۱. نرمال‌سازی Unicode (NFD)
    کاراکترهای ترکیبی را به کاراکتر پایه + نشانه ترکیبی تجزیه کنید. به عنوان مثال، é (U+00E9) به e + نشانه تلفظ حاد ترکیبی (U+0301) تبدیل می‌شود. این کار امکان حذف نشانه‌های تلفظی در مرحله بعد را فراهم می‌کند.
  2. ۲. حذف نشانه‌های تلفظی
    تمام کاراکترهای موجود در بلوک نشانه‌های تلفظی ترکیبی Unicode (U+0300–U+036F) را حذف کنید. پس از این مرحله، café به cafe و Ñ به N تبدیل می‌شود.
  3. ۳. حذف کاراکترهای خاص
    هر کاراکتری که حرف، رقم، فضای خالی یا خط‌تیره نیست را با فاصله جایگزین کنید. این نقطه‌گذاری، نمادها، و کاراکترهایی که معادل ASCII ندارند را حذف می‌کند.
  4. ۴. برش و فشرده‌سازی فضاهای خالی
    فضاهای خالی ابتدا و انتها را حذف کنید، سپس تمام دنباله‌های متوالی از فاصله‌ها، زیرخط‌ها، یا خط‌تیره‌ها را به یک جداکننده انتخابی واحد تبدیل کنید.
  5. ۵. اعمال حالت حروف و جداکننده
    به حروف کوچک تبدیل کنید (اختیاری) و کلمات را با کاراکتر جداکننده انتخابی به هم بپیوندید: خط‌تیره (-)، زیرخط (_)، یا نقطه (.).

مرجع تبدیل کاراکترها

جدول زیر نشان می‌دهد کاراکترهای رایج چگونه در حین تولید اسلاگ پردازش می‌شوند:

ورودیخروجیقانون اعمال‌شده
Hello Worldhello-worldLowercase + space → hyphen
Café au Laitcafe-au-laitNFD normalization strips é → e
naïve résuménaive-resumeMultiple diacritics removed
Price: $9.99!price-9-99Symbols ($, !, :) removed
too many too-manyWhitespace trimmed and collapsed
one--two___threeone-two-threeMixed separators collapsed
Привет мирprivet-mirCyrillic (if transliteration) or removed
file_name.txtfile-name-txtDots and underscores replaced
React & Vuereact-vueAmpersand removed
2026-03-302026-03-30Digits and hyphens preserved

نمونه‌های کد

تولید اسلاگ در زبان‌ها و فریمورک‌های محبوب. هر نمونه نرمال‌سازی Unicode، حذف نشانه‌های تلفظی، و درج جداکننده را پردازش می‌کند.

JavaScript
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"
Python
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"
Go
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"
PHP
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"

سؤالات متداول

تفاوت بین اسلاگ و مسیر URL چیست؟
مسیر URL بخش کامل پس از دامنه است، مانند /blog/2026/my-post. اسلاگ بخش قابل خواندن است که یک منبع خاص را در آن مسیر شناسایی می‌کند، معمولاً آخرین بخش: my-post. اسلاگ‌ها اغلب از عناوین استخراج می‌شوند، در حالی که بقیه مسیر ساختار مسیریابی سایت را منعکس می‌کند.
تولید اسلاگ چگونه با خطوط نوشتاری غیرلاتین مانند چینی یا عربی برخورد می‌کند؟
تولیدکننده‌های اسلاگ استاندارد که از نرمال‌سازی NFD و حذف نشانه‌های تلفظی استفاده می‌کنند، نمی‌توانند خطوط نوشتاری غیرلاتین را به لاتین تبدیل کنند. کاراکترهایی مانند هانزی چینی یا حروف عربی معادل ASCII ندارند، بنابراین در مرحله پاک‌سازی کاراکترهای خاص حذف می‌شوند. برای نگهداری محتوای غیرلاتین در اسلاگ‌ها، به یک کتابخانه حروف‌نویسی مانند limax (JavaScript)، python-slugify با پشتیبان unidecode، یا یک جدول نگاشت سفارشی نیاز دارید.
آیا باید از خط‌تیره یا زیرخط در اسلاگ‌های URL استفاده کنم؟
Google خط‌تیره را به‌عنوان جداکننده کلمه تلقی می‌کند اما زیرخط را به‌عنوان اتصال‌دهنده کلمه. اسلاگ my-first-post به‌عنوان سه کلمه (my، first، post) خوانده می‌شود، در حالی که my_first_post به‌عنوان یک نشانه خوانده می‌شود. برای اهداف سئو، خط‌تیره انتخاب استاندارد برای اسلاگ‌های URL است. زیرخط در نام فایل‌ها، ستون‌های پایگاه داده، و شناسه‌های برنامه‌نویسی رایج است، جایی که به‌عنوان اتصال‌دهنده سازگار با متغیر عمل می‌کند.
طول اسلاگ URL چقدر باید باشد؟
Google تقریباً ۶۰ کاراکتر از یک URL را در نتایج جستجو نمایش می‌دهد و بقیه را کوتاه می‌کند. اسلاگ‌های کوتاه‌تر خواندن، اشتراک‌گذاری، و تایپ آن‌ها آسان‌تر است. به ۳ تا ۶ کلمه هدف بگیرید. کلمات توقف (the، a، an، and، or، in) را هنگامی که معنا را تغییر نمی‌دهند حذف کنید: how-to-build-nextjs-app بهتر از how-to-build-a-next-js-app-in-2026 است.
آیا تولید اسلاگ همان رمزگذاری URL است؟
خیر. رمزگذاری URL (رمزگذاری درصدی) کاراکترهای ناامن را با توالی‌های درصد جایگزین می‌کند، مانند %20 برای فاصله. تولید اسلاگ کاراکترهای ناامن را کاملاً حذف یا جایگزین می‌کند و یک رشته تمیز بدون آثار رمزگذاری تولید می‌کند. یک اسلاگ هرگز شامل علامت درصد، فاصله، یا کاراکترهای خاص نیست. رمزگذاری URL محتوای اصلی را حفظ می‌کند؛ تولید اسلاگ آن را به چیز جدیدی تبدیل می‌کند.
آیا دو عنوان مختلف می‌توانند یک اسلاگ یکسان تولید کنند؟
بله. عناوینی که فقط در نقطه‌گذاری، لهجه‌ها یا حالت حروف تفاوت دارند اغلب به همان اسلاگ تبدیل می‌شوند. برای مثال، Résumé Tips و Resume Tips هر دو resume-tips تولید می‌کنند. در زمینه‌های CMS یا پایگاه داده، به یک بررسی یکتایی نیاز دارید که یک پسوند عددی اضافه کند (resume-tips-2) هنگامی که تصادم رخ می‌دهد.
چگونه در WordPress یا Django اسلاگ تولید کنم؟
WordPress به‌طور خودکار اسلاگ از عنوان پست با استفاده از sanitize_title() تولید می‌کند. می‌توانید اسلاگ را در ویرایشگر پست ویرایش کنید. Django تابع slugify() را در django.utils.text ارائه می‌دهد که ورودی ASCII را به‌خوبی پردازش می‌کند. برای پشتیبانی از Unicode، allow_unicode=True را ارسال کنید. هر دو پلتفرم اسلاگ‌ها را در کنار عنوان کامل در پایگاه داده ذخیره می‌کنند.