Slugify
النصحوّل أي نص — بما فيه الصينية وعلامات النبر والرموز التعبيرية — إلى slug آمن لعناوين URL. اختر الفاصل، حالة الأحرف، التحويل CJK→بينيين وحدًّا أقصى اختياري للطول، مع معاينة مباشرة.
في هذه الصفحة
ما هي أداة Slugify؟#
تحوّل أداة Slugify عنوانًا مقروءًا بشريًّا إلى slug آمن لعناوين URL — السلسلة المختصرة الصغيرة بلا ترقيم التي تعيش في عنوان ويب بعد النطاق. تصبح How to Brew Coffee at Home ← how-to-brew-coffee-at-home؛ وCafé Münchën ← cafe-munchen؛ و你好世界 ← ni-hao-shi-jie. الـ slugs هي كيف تبني المدوّنات ومواقع التجارة الإلكترونية وأنظمة التوثيق عناوين URL مقروءة قابلة للمشاركة وودودة لـ SEO من عناوين لم تُكتب أصلًا بعنوان URL في الحسبان.
الأجزاء الصعبة هي بالضبط المحارف التي يستخدمها الناس فعلًا: اللهجات (café)، والأربطة (ß وæ)، والوصلات الطويلة وعلامات الاقتباس الذكية، وإيديوغرافات CJK التي لا تمثيل لها في ASCII أصلًا. «احذف كل ما ليس a-z» الساذج يحوّل 你好世界 إلى سلسلة فارغة، فيُنتج URL مكسور. تتعامل هذه الأداة مع الثلاثة صحيحة: تُفكِّك الحروف المُلهجة وتجرّد علامات التركيب (é ← e)، وتُخطِّط الأرباط اللاتينية غير المتفككة (ß ← ss وæ ← ae)، وتُفرِّد إيديوغرافات CJK إلى بينيين بلا نبرة (你好世界 ← ni hao shi jie) فيُنتج العنوان الصيني slugًا ذا معنى قابلاً للنطق.
كل شيء يجري محليًّا. لا يُحمَّل قاموس البينيين إلا حين يحتوي المُدخل فعلًا على CJK، فلا يدفع slug لاتيني بحت ثمنه أبدًا.
كيفية الاستخدام#
- اكتب أو الصق العنوان في جزء الإدخال على اليسار.
- اختر الفاصل — واصلة (افتراضي) أوشرطة سفلية.
- فعِّل أحرف صغيرة (مفعّل افتراضيًّا) لطيّ المُخرج إلى أحرف صغيرة؛ عطِّله إن احتجت حفظ الحالة.
- فعِّل تحويل CJK إلى بينيين (مفعّل افتراضيًّا) لتحويل أحرف CJK إلى بينيين بلا نبرة؛ عطِّله إن أردت تجريد CJK لا تفريده.
- اضبط اختياريًّا الحد الأقصى للطول (0 تعني غير محدود). حين يتجاوزه الـ slug، يُقطَع ويُقصّ أيّ فاصل لاحق معلَّق فلا ينتهي الـ URL على
-مجرّدة أبدًا. - اقرأ جزء الإخراج على اليمين — يظهر الـ slug لحظ تغيُّر المُدخل أوأيّ خيار. اضغط نسخ للالتقاطه.
يُبلغ سطر الحالة عن طول الـ slug ويُؤشّر إلى حالتَين خاصتَين: حين كان CJK مُفرَّدًا، وحين كانت النتيجة مقتطعة لتناسب حدّ الطول الأقصى.
الميزات الرئيسية#
- معالجة اللهجات والأرباط. تفكيك NFKD بالإضافة إلى خريطة توافق لاتينية صغيرة تحوّل
caféوMünchënوstraßeوœuvreإلى ASCII نظيف (cafeوmunchenوstrasseوoeuvre) بدلًا من إسقاط الأحرف تمامًا. - CJK إلى بينيين. تُفرَّد إيديوغرافات الصينية إلى بينيين بلا نبرة باستخدام قاموس مُضمَّن، فتصبح
你好世界←ni-hao-shi-jie— slug ذو معنى وقابل للنطق بدلًا من واحد فارغ أومشوّه. - حدود كلمات نظيفة. تُغلَّف أجزاء CJK بمسافات قبل تمرير الفاصل، فينفصل المُخرج المُفرَّد إلى كلمات (
ni-hao) بدلًا من اللصق (nihao). - سقف طول بقصّ نظيف. يقطع حدّ الطول الأقصى الـ slug ثم يجرّد أيّ فاصل لاحق معلَّق، فلا تحصل على URL ينتهي بـ
-أبدًا. - واصلة أوشرطة سفلية. اختر الفاصل الذي يتوقّعه منصّتك — أغلب عناوين الويب الحديثة تستخدم الواصلات، لكنّ بعض الأنظمة واصطلاحات أسماء الملفات تستخدم الشرطات السفلية.
- تحميل بينيين كسول. لا يُستورد قاموس البينيين إلا المرة الأولى التي يحتوي فيها المُدخل فعلًا على CJK، فلا يُنزِّله slug لاتيني بحت أبدًا.
- محلّي ولا يُلقي استثناء أبدًا. المُدخل الفارغ يُبلغ
empty؛ والمُدخل الذي يُختزل إلى لاشيء (مثلًا، رموز تعبيرية فقط) يُبلغno-output. تصبح الإخفاقات رسالة واضحة، لا استثناء قطعًا.
مثال عملي#
الصق العنوان من نصّ المُدخل النائب، مع كل الافتراضيات (فاصل واصلة، أحرف صغيرة مفعّلة، تفريد مفعّل):
Café Münchën — 你好世界
خطوة بخطوة:
- يُكتشَف CJK، فيُفرَّد
你好世界إلىni hao shi jie. - تُجرَّد اللهجات:
Café←Cafe، وMünchën←Munchen. - تنهار الوصلة الطويلة والمسافات إلى الفاصل.
- تُصغَّر النتيجة وتُقصّ الفواصل الابتدائية/اللاحقة.
يُظهر جزء الإخراج:
cafe-munchen-ni-hao-shi-jie
الآن اضبط الحد الأقصى للطول على 20 وأعِد التوليد. يُقطَع الـ slug وتُزال الواصلة اللاحقة المعلَّقة:
cafe-munchen-ni-hao
لاحظ أنّ اللهجات أصبحت ASCII خالصًا، وأنّ العنوان الصيني أصبح بينيين قابلًا للنطق مفصولًا إلى كلمات، وأنّ سقف الطول أنتج قطعة URL نظيفة بدلًا من واحدة تنتهي في منتصف كلمة أوعلى واصلة مجرّدة.
الأسئلة الشائعة#
لماذا يصبح عنواني الصيني بينيين بدلًا من البقاء أحرفًا؟#
لأنّ عناوين URL أكثر أمانًا وقابلية للحمل حين تستخدم ASCII. أحرف CJK في عنوان URL تتطلّب ترميزًا بالنسبة المئوية (يصبح كل 你 ← %E4%BD%A0)، غير مقروء للبشر ولأغلب أدوات التحليل. يُبقي البينيين بلا نبرة الـ slug قابلًا للنطق وذا معنى وASCII خالص — ni-hao-shi-jie عنوان URL أفضل بكثير من سلسلة علامات مئوية. إن فضّلت حفظ الأحرف الأصلية، عطِّل تحويل CJK إلى بينيين.
ماذا يحدث للرموز التعبيرية والرموز غير الأبجدية-الرقمية الأخرى؟#
تُجرَّد. الرموز التعبيرية وعلامات الاقتباس الذكية والأقواس وأغلب الترقيم لا تنجو من خط أنابيب الـ slug — ليست أحرفًا، فيُحوِّلها مرور الانهيار غير الأبجدي-الرقمي إلى فواصل. إن كان مُدخلك رموزًا تعبيرية ورموزًا فقط، يُجرَّد كل شيء وتُبلغ الأداة no-output بدلًا من إصدار slug فارغ.
هل أستخدم واصلة أوشرطة سفلية كفاصل؟#
لعناوين URL سيقرؤها البشر، استخدم واصلة — تُعامِل محرّكات البحث الواصلات كفواصل كلمات والواصلات هي الاصطلاح عبر كل منصّات الويب الحديثة تقريبًا. الشرطات السفلية مناسبة حين يكون الـ slug فعلًا اسم ملف أومُعرِّفًا تستهلكه نظام يحجز الواصلات لشيء آخر (نطاقات إصدارات، أعلام). تدعم الأداة كليهما لتطابق ما يتوقّعه هدفك.
كيف يعمل قصّ الطول الأقصى؟#
يُبنى الـ slug كاملًا أولًا، ثم يُقطَع إلى الطول المطلوب. إن وقع القطع في منتصف كلمة، تُترك الكلمة جزئية؛ وإن ترك القطع فاصلًا لاحقًا، يُقصّ ذلك الفاصل. يضمن هذا ألّا يتجاوز الـ slug الحدّ وألّا ينتهي على - أ و_ مجرّدة، وهو ما تتطلّبه حقول URL وعروض أعمدة قواعد البيانات فعلًا.
هل هذا هو ذاته ترميز URL؟#
لا، والفرق يهمّ. ترميز URL (الترميز بالنسبة المئوية) يُهرّب المحارف كي تنقل داخل عنوان URL — يصبح café ← caf%C3%A9. بينما يُفرِّد الـ slugify النصّ يطبَّع إلى أحرف وفواصل ASCII — يصبح café ← cafe. الـ slugs لقطاع المسار المقروء بشريًّا في عنوان URL؛ والترميز بالنسبة المئوية لنقل قيم اعتباطية بأمان في سلاسل الاستعلام. إن احتجت الأخير، استخدم أداة /en/encoding/url/.