تحويل النص إلى slug
تأخذ أداة تحويل النص إلى slug هذه عنوانًا أو عبارة غير فارغة وتُعيد slug واحدًا ملائمًا لعنوان URL: يُصغَّر كل حرف، وتُزال النبرات وعلامات التشكيل الأخرى، وتُربَط الكلمات بشرطات حتى تكون النتيجة آمنة لأجزاء المسار، وروابط أنظمة إدارة المحتوى الدائمة، ومسارات المواقع الثابتة.
شغّل الأداة مجانًا
ال slugs هي الشكل اليومي لعناوين URL لتدوينات المدونات، ومسارات المنتجات، وصفحات التوثيق، وعناصر خرائط الموقع التي يجب أن تبقى مقروءة بلا مسافات أو ترقيم أو ضوضاء غير لاتينية. أطعمها عناوين مسافيّة، أو عناوين إسبانية أو فرنسية بنبرات، أو ترقيمًا مختلطًا، أو نصًا تسويقيًا صاخبًا، ويعيد المحرك بناء slug واحد حتمي بشرطات. لا شيء يُخمَّن من نموذج، ولا شيء يُجلَب عبر الشبكة، ولا شيء يعتمد على الساعة أو بذور عشوائية. يفشل المدخل الفارغ والسلاسل المكوّنة من ترقيم فقط برمز invalid_input واضح حتى لا يبدو نموذج فارغ كتحويل ناجح. استخدمها مجانًا في المتصفح لتحضير المحتوى وفحوص السيو وتنظيف البيانات، أو استدعِ واجهة برمجة التطبيقات (API) بتكلفة $0.002 لكل طلب ناجح عندما يحتاج التكامل المستمر أو خطوط أنابيب أنظمة إدارة المحتوى أو العروض التعليمية ال slug نفسه في كل مرة.
طريقة الاستخدام
أدخل القيم في النموذج أعلاه. تتحقق الأداة منها قبل الحساب ثم تعرض النتيجة في الصفحة نفسها.
راجع بياناتك
اتبع التسميات والوحدات الموضحة بجانب كل حقل. إذا كانت قيمة مفقودة أو خارج النطاق، توضح الصفحة الحقل الذي يحتاج إلى تصحيح.
أعد الحساب أو نفّذه آليًا
استخدم أداة الويب للفحوص الفردية، واستخدم الواجهة البرمجية عند دمج الإمكانية نفسها في سير عمل آلي.
حالات الاستخدام
احصل على النتيجة الآن
أدخل مجموعة من القيم وشاهد النتيجة من دون إعداد جدول بيانات أو برنامج نصي.
قارن السيناريوهات
غيّر قيمة واحدة في كل مرة وأعد الحساب لمعرفة ما الذي يؤثر في النتيجة.
أتمت العمل المتكرر
استخدم الواجهة البرمجية عندما تحتاج إلى تشغيل الحساب نفسه داخل منتجك أو سير عملك.
الأسئلة الشائعة
كم يكلّف محوّل النص إلى slug؟
هو مجاني في متصفحك على هذه الصفحة. وعبر واجهة برمجة التطبيقات (API) يكلّف الطلب الناجح $0.002؛ ولا تُفرض رسوم على المدخلات غير الصالحة.
كيف يُبنى ال slug من عنوان؟
يزيل المحرك النبرات عبر NFD في يونيكود، ويصغّر الحروف، ويستبدل السلاسل غير الأبجدية الرقمية بشرطات، ويقتص الشرطات البادئة أو اللاحقة.
ماذا يحدث إذا كان النص فارغًا؟
يُرفض الإدخال برمز invalid_input. لا تنتج السلاسل الفارغة أو المكوّنة من مسافات فقط أو ترقيم فقط slug.
هل تحوّل هذه الأداة حرفيًا نصوصًا غير لاتينية؟
تزيل النبرات اللاتينية وتحتفظ بحروف وأرقام ASCII. تصبح الأحرف خارج a-z و0-9 بعد إزالة النبرات شرطات وقد تترك نتيجة فارغة إن لم يتبقَّ شيء أبجدي رقمي.
هل النتيجة حتمية؟
نعم. العنوان نفسه يعطي دائمًا ال slug نفسه. لا يوجد سلوك مرتبط بشبكة أو عشوائية أو تاريخ في التحويل.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/str/slugify \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello World — Café Ñandú!"}'const res = await fetch("https://api.kit.forhosting.com/str/slugify", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello World — Café Ñandú!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/slugify",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello World — Café Ñandú!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/slugify", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello World — Café Ñandú!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello World — Café Ñandú!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/slugify", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Hello World — Café Ñandú!"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.slugify",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_chars | 100000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |