تقسيم النص إلى أعمدة متوازنة
قسّموا كتلة نصية إلى العدد الذي تختارونه من الأعمدة المتوازنة من دون عدّ الأسطر أو قصّها أو إعادة ترتيبها يدوياً.
شغّل الأداة مجانًا
تحافظ النتيجة على كل سطر بترتيبه الأصلي، وتصون الأسطر الفارغة المقصودة، وتعيد قائمة أسطر كل عمود إلى جانب نص جاهز للعرض. تفيد هذه الأداة في البرامج والقوائم والنصوص والملصقات وسائر المواد المنظمة على هيئة أسطر والتي تحتاج إلى عرض جانبي واضح. ويمكن تنفيذ العملية الحتمية نفسها مباشرة في المتصفح أو أتمتتها من خلال API.
حوّلوا قائمة طويلة إلى تخطيط متوازن
ألصقوا النص كاملاً وحددوا عدد الأعمدة اللازمة للعرض النهائي. تتعامل الأداة مع المحتوى بوصفه تسلسلاً مرتباً من الأسطر، ثم تقسّمه إلى مجموعات متجاورة لا يزيد الفرق بين أحجامها على سطر واحد. وعندما لا تكون القسمة تامة، تحصل الأعمدة الأولى على الأسطر الزائدة. فمثلاً، ينتج عن تقسيم سبعة أسطر إلى ثلاثة أعمدة مجموعات من ثلاثة أسطر وسطرين وسطرين. تجعل هذه الطريقة النتيجة قابلة للتوقع، وتتجنب اختلال المظهر الذي ينشأ من وضع كل الباقي في العمود الأخير. يتضمن كل عمود معاد موضعه الذي يبدأ من واحد، وقائمة بأسطره المنفردة، ونصاً موصولاً بمحارف السطر الجديد. استخدموا القائمة عند عرض عناصر الأسطر أو خلايا الجدول، واستخدموا قيمة النص عند إدراج عمود كامل في حقل نص عادي. يظل ترتيب القراءة الأصلي محفوظاً من العمود الأول إلى الأخير، فلا يجري فرز المادة أو تفسيرها.
تعرّفوا إلى طريقة معالجة الأسطر والمساحات الفارغة
تتعرّف الأداة إلى حدود الأسطر سواء استخدم الإدخال فواصل Unix أم نهايات أسطر Windows أم فواصل إرجاع العربة القديمة. وتوحّد المخرجات النص المجمّع لكل عمود باستخدام محارف السطر الجديد، مما يمنح البرامج النصية نتيجة مستقرة عبر أنظمة التشغيل. للأسطر الفارغة دلالة، ولذلك تُحفظ كسلاسل فارغة في قوائم الأسطر وتدخل في حساب التوازن؛ إذ قد يغيّر حذفها الفقرات أو الأبيات أو النماذج أو ملاحظات الإنتاج المنسقة بعناية. وحتى القيمة النصية الفارغة تمثل سطراً فارغاً واحداً، بما يوافق السلوك المتسق لتقسيم الحقول النصية. كما يُحترم عدد الأعمدة المطلوب بدقة. فإذا طلبتم أعمدة أكثر من عدد الأسطر، عادت الأعمدة الإضافية بقائمة أسطر فارغة ونص فارغ بدلاً من تقليل العدد بصمت. تفيد هذه الدقة عندما يكون للتخطيط المحيط عدد ثابت من اللوحات. ولا تُلف الكلمات أو تُقاس أو تُنقل بين الأسطر، لذا أعدّوا أي التفاف مطلوب قبل الاستدعاء.
اعرضوا النتيجة أو صدّروها أو أتمتوها بأمان
في واجهة ذات أعمدة متجاورة، مرّوا على الأعمدة المعادة بالترتيب وضعوا كل عمود في حاوية مساوية للآخرين في العرض. وداخل العمود، اعرضوا الأسطر من قائمته للاحتفاظ بالصفوف الفارغة الصريحة، أو اعرضوا قيمة النص في عنصر منسق مسبقاً. ويمكن لسير عمل الطباعة أن يحوّل البنية نفسها إلى أعمدة صفحات أو ملصقات أو بطاقات تذكير أو قالب لتوليد المستندات. ولأن الخوارزمية حتمية ولا تستخدم الشبكة أو قيماً عشوائية أو طوابع زمنية، فإن الإدخال المتطابق ينتج دائماً مخرجات متطابقة. لذلك تلائم أنظمة البناء ومسارات النشر والاختبارات القابلة للتكرار والتحويلات المخزنة مؤقتاً. التحقق صارم عن قصد: يجب أن يكون النص سلسلة، وأن يكون عدد الأعمدة عدداً صحيحاً لا يقل عن واحد. تفشل القيم غير الصالحة بدلاً من تقريبها أو تخمينها. يتاح المتصفح للعمل السريع، بينما تبلغ تكلفة طلب API مقدار $0.002 عندما تكون العملية جزءاً من مسار مؤتمت.
حالات الاستخدام
نسّقوا برنامج فعالية
قسّموا قائمة مرتبة من المتحدثين أو الجلسات إلى كتل متوازنة لبرنامج مدمج مطبوع أو معروض على الشاشة.
أنشئوا قائمة تحقق متعددة الأعمدة
حوّلوا المهام المنظمة بحسب الأسطر إلى عدد ثابت من اللوحات مع الاحتفاظ بكل عنصر وتسلسله الأصلي.
أعدّوا تخطيطات النشر
مرّروا مجموعات الأسطر المتوازنة إلى قالب مستند أو مولّد ملصقات أو موقع ثابت أو عرض تقديمي.
الأسئلة الشائعة
كيف توزّع الأسطر الزائدة؟
لا يزيد فرق الحجم بين الأعمدة على سطر واحد. وعندما لا تكون القسمة تامة، يحصل كل عمود من الأعمدة الأولى على سطر إضافي.
هل تُحفظ الأسطر الفارغة؟
نعم. تبقى كسلاسل فارغة وتُحسب أسطراً، فلا تضيع المسافات بين الفقرات أو الفراغات المقصودة.
ماذا يحدث إذا طلبنا أعمدة أكثر من عدد الأسطر؟
يُعاد عدد الأعمدة المطلوب. وتحتوي الأعمدة التي لم تُسند إليها أسطر على قائمة أسطر فارغة وقيمة نصية فارغة.
هل تلتف الأسطر الطويلة لتناسب عرضاً معيناً؟
لا. توازن الأداة الأسطر الموجودة فقط؛ فلا تقيس عرض الشاشة ولا تلف الكلمات ولا تغيّر نص السطر.
ما تكلفة طلب API؟
تبلغ تكلفة كل طلب API مقدار $0.002. ويمكن أيضاً تشغيل المقسّم الحتمي نفسه مباشرة في المتصفح.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/text/split-columns \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Alpha\nBravo\nCharlie\nDelta\nEcho\nFoxtrot\nGolf","column_count":3}'const res = await fetch("https://api.kit.forhosting.com/text/split-columns", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Alpha\nBravo\nCharlie\nDelta\nEcho\nFoxtrot\nGolf",
"column_count": 3
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/split-columns",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Alpha\nBravo\nCharlie\nDelta\nEcho\nFoxtrot\nGolf",
"column_count": 3
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/split-columns", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Alpha\\nBravo\\nCharlie\\nDelta\\nEcho\\nFoxtrot\\nGolf","column_count":3}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Alpha\nBravo\nCharlie\nDelta\nEcho\nFoxtrot\nGolf","column_count":3}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/split-columns", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Alpha\nBravo\nCharlie\nDelta\nEcho\nFoxtrot\nGolf",
"column_count": 3
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.split_columns",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_tokens | 20000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |