TGViewer
DevTwitter | توییت برنامه نویسی DevTwitter | توییت برنامه نویسی @devtwitter · 32.3K subscribers
Post #12908 6.18K
یکی از چالش‌های رایج در پروژه‌های فارسی، ساخت یک URL تمیز و قابل‌فهم از عنوان فارسیه.
فرض کنید کاربر در یک فروشگاه عنوان محصول رو وارد می‌کنه:
لپ‌تاپ اپل مک‌بوک پرو
اگر همین عنوان فارسی مستقیماً در URL قرار بگیره، مرورگر اون رو به URL-encoded تبدیل می‌کنه و ممکنه چیزی شبیه این ببینیم:
%D9%84%D9%BE...
نتیجه، URL طولانی، ناخوانا و سخت‌تر برای اشتراک‌گذاری و مدیریت خواهد بود؛ علاوه بر این، چنین URLهایی برای کاربر قابل درک نیستن و حتی روی سئو هم تأثیر منفی می‌ذارن.
از طرف دیگه، اگر کاربر مجبور باشه slug انگلیسی رو خودش وارد کنه، تجربه کاربری خوبی نخواهیم داشت؛ مخصوصاً در فروشگاه‌ها و CMSها که کاربر فقط عنوان فارسی محصول، دسته‌بندی یا مقاله رو وارد می‌کنه. این کار هم زمان‌بره و هم احتمال خطا و ناهماهنگی در URLها رو بالا می‌بره.
پس راه‌حل بهتر اینه که slug انگلیسی به‌صورت خودکار از عنوان فارسی ساخته بشه.
اما اینجا یک چالش دیگه وجود داره: تبدیل ساده حروف فارسی به لاتین همیشه خروجی طبیعی و قابل‌فهمی تولید نمی‌کنه، چون این تبدیل‌ها معمولاً بدون در نظر گرفتن تلفظ و معنی انجام می‌شن.
مثلاً ممکنه خروجی شبیه به این بشه:
لپ‌تاپ -> lptap
در حالی که برای یک URL مناسب، انتظار داریم:
لپ‌تاپ -> laptop
اینجاست که @pinooxhq/slug وارد می‌شه.
این کتابخانه برای ساخت slug مناسب محتوای فارسی، چند مرحله رو انجام می‌ده:
Normalize -> Transliterate -> Word Mapping -> Slugify
یعنی:
متن فارسی رو نرمال می‌کنه
حروف و فاصله‌های مختلف رو یکسان‌سازی می‌کنه
متن رو به Finglish تبدیل می‌کنه
برای واژه‌های رایج فارسی mapping مناسب در نظر می‌گیره
و در نهایت یک slug کوتاه، خوانا و URL-safe تولید می‌کنه
مثلاً:
لپ‌تاپ سامسونگ -> laptop-samsung
یا:
دسته‌بندی گوشی موبایل -> daste-bandi-gooshi-mobile
این موضوع فقط برای محصولات نیست؛ slug در محصولات، دسته‌بندی‌ها، مقالات، صفحات CMS و سایر URLهای داینامیک کاربرد داره و می‌تونه URLها رو خواناتر و مدیریت اون‌ها رو ساده‌تر کنه.
پروژه @pinooxhq/slug یک کتابخانه سبک و اوپن سورس هست و در Vue، React، Svelte و Vanilla JS قابل استفاده است.

npm install @pinooxhq/slug
GitHub: github.com/pinoox/slug

@DevTwitter | <Esmaeil Bahrani Fard/>
  • 👍 56
  • 👎 3
  • 🍌 1
More from @devtwitter
  1. Sep 30, 2026یکی یه دوره کامل درباره AI Harness Engineering رو Open Source کرده! و بهترین قسمت؟ کاملاً…
  2. Sep 30, 2026💥برای معرفی، ارتباط و رشد فروش نیاز به حضور قدرتمند در فضای آنلاین دارید! یک وب‌سایت حرفه…
  3. Sep 30, 2026اگر سایت یا اپی دارید که داخلش دارید از چارت های مختلفی استفاده میکنید این دو تا سایت به د…
  4. Sep 30, 2026گوگل نسبت به موج جدیدی از بهره‌برداری گسترده از یک آسیب‌پذیری امنیتی شناخته‌شده در نرم‌افز…
  5. Sep 29, 2026اولین پروژه‌ای که ترافیک واقعی گرفت، یه چیزی فهمیدم: فرق بین کدی که کار می‌کنه و کدی که sc…
  6. Sep 29, 2026این دوره‌ی ۴ ساعته‌ی Claude Code یکی از بهترین چیزهاییه که اخیراً پیدا کردم. از Context و…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →