لفّ كل سطر بنص
الصق alpha وbeta وgamma في ثلاثة أسطر لتحصل على "alpha" و"beta" و"gamma"، إذ يُحاط كل سطر افتراضيًا بعلامتي اقتباس مزدوجتين مستقيمتين. ويمكنك استخدام وسوم HTML أو النقاط أو الأقواس، حتى 64 محرفًا لكل جهة. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- alpha beta gamma
- المُدخَل
- alpha beta gamma
- النص
- "alpha" "beta" "gamma"
- البادئة
- "
- اللاحقة
- "
لفّ كل سطر من لصقٍ واحد بالبادئة نفسها واللاحقة نفسها عمل يومي لمن يقتبس السجلات، أو يوسّم عناصر قائمة، أو يبني صفوفًا مفصولة، أو يحوّل عمود كلمات إلى قيم بين علامتي اقتباس. تأخذ هذه الأداة أي كتلة نص غير فارغة، وتقسمها عند أسطر جديدة مُطبَّعة، وتضع البادئة المختارة قبل كل سطر واللاحقة بعده. افتراضيًا تُلفّ كل سطر بعلامتي اقتباس مزدوجتين مستقيمتين، فيصير العمود قائمة مقتبسة بلا إعداد إضافي. يمكنكم التحويل إلى علامات خلفية أو وسوم HTML أو نقاط markdown أو أقواس أو أي سلسلة قصيرة تحتاجونها.
ماذا يعني لفّ كل سطر ومتى يفيد
تستطيع معظم المحررات لفّ التحديد كله بزوج واحد من علامات الاقتباس، لكن ذلك يترك فواصل الأسطر الداخلية كما هي ولا يضع بادئة ولاحقة على كل صف. قصد البحث عن لفّ كل سطر بنص مختلف: لديكم عنصر واحد في كل سطر وتريدون الزينة نفسها على كل عنصر. بعد فحص الإدخال تُطبَّع فواصل الأسطر من CRLF في Windows ومن CR الكلاسيكي في Mac إلى شكل LF واحد، ثم تُقسم السلسلة عند كل LF، ويُوصل كل جزء ناتج على هيئة بادئة زائد السطر الأصلي زائد لاحقة.
يمكنكم بدلًا من ذلك إرسال نقطة markdown كبادئة ولاحقة فارغة، أو وسوم HTML للفتح والإغلاق، أو قوسًا أيسر وفاصلة إغلاق لقائمة قيم. أحرف داخل السطر لا تتغير أبدًا؛ الحواف وحدها تستقبل الزوائد. تبقى الأسطر الفارغة بعد القسمة.
افتراضيًا تصير بادئة زائد لاحقة، وهذا صحيح عندما تريدون تزيين كل صف مرئي. يغطي التصميم أعمالًا يومية مثل اقتباس عمود، أو لفّ أسطر سجل لتذكرة، أو تحويل قائمة تحقق إلى ترميز موسوم، دون فتح بحث واستبدال كامل في بيئة تطوير.
نصائح عملية وحدود وعمليات بحث ذات صلة
استخدموا هذه القدرة عندما يكون قصد البحث لفّ كل سطر بنص، أو إضافة بادئة ولاحقة لكل سطر، أو اقتباس كل سطر عبر الإنترنت، أو لفّ الأسطر بوسوم HTML. الصقوا عمود أسماء وأبقوا علامات الاقتباس الافتراضية لإنتاج قائمة مقتبسة. الأسطر المفردة الشديدة الطول ما زالت تُعد سطرًا واحدًا لكل منها؛ لا تلفّ الأداة حسب عرض الأحرف.
تُعامل مصادر HTML وMarkdown سلاسل خامًا؛ أزيلوا الوسوم أولًا إن أردتم أسطر النثر الظاهرة فقط. هذه الصفحة ليست لفّ وثيقة كاملة يمس أول حرف وآخر حرف من اللصق كله، وليست ترقيم أسطر، وليست قص حواف الأسطر، وليست إعادة صياغة بالذكاء الاصطناعي. فضّلوا إضافة أرقام الأسطر عندما يجب على المراجعين الاستشهاد بالفهارس؛ وفضّلوا قص حواف الأسطر عندما تحتاجون إزالة المسافات فقط؛ وفضّلوا هذه القدرة عندما فصل الناس العناصر أصلًا بالأسطر وتحتاجون الزينة نفسها على كل عنصر.
عند تعليم الطلاب أو استقبال المراجعين اعرضوا العينة نفسها بعلامات اقتباس ثم بوسوم حتى يروا أن الحواف وحدها تتغير وأن جسم السطر الأصلي يبقى كما هو.
حالات الاستخدام
تزيين مقتطفات السجل للتذاكر
لفّوا كل سطر سجل بعلامة مختارة أو بجزء سياج شفرة حتى يبقى لصق الدعم محاذيًا للسطر وسهل الاستشهاد في تقرير خطأ.
الأسئلة الشائعة
ماذا يفعل لفّ كل سطر تحديدًا؟
أحرف الداخل لا تتغير. افتراضيًا تُوضع علامة اقتباس مزدوجة مستقيمة على جانبي كل سطر.
هل يمكن إضافة بادئة فقط أو لاحقة فقط؟
نعم. مرّروا سلسلة فارغة في الجانب الذي لا تريدونه.
ماذا يحدث إذا وصل حقل النص فارغًا؟
قدّموا سلسلة غير فارغة فيها حرف واحد على الأقل ليس مسافة.
ماذا يحدث للأسطر الفارغة؟
تُحاط هي أيضًا افتراضيًا، فيصبح السطر الفارغ زوجًا من علامات الاقتباس. وإذا أردت الإبقاء على الفراغات بين الفقرات ففعّل الخيار الذي يترك الأسطر الفارغة كما هي.
هل يمكن وضع كل سطر داخل وسوم HTML؟
نعم. اكتب الوسم الافتتاحي بادئةً والوسم الختامي لاحقةً، كما في عناصر القوائم. ويبقى محتوى كل سطر دون تغيير، ولا يُضاف شيء إلا عند طرفيه.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/str/wrap-each-line \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"alpha\nbeta\ngamma"}'const res = await fetch("https://api.kit.forhosting.com/str/wrap-each-line", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "alpha\nbeta\ngamma"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/wrap-each-line",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "alpha\nbeta\ngamma"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/wrap-each-line", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"alpha\\nbeta\\ngamma"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"alpha\nbeta\ngamma"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/wrap-each-line", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "alpha\nbeta\ngamma"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.wrap_each_line",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
يُرفض الإدخال الفارغ أو المكوّن من مسافات فقط بخطأ invalid_input واضح حتى لا يبدو نموذج فارغ كلفّ ناجح. المسار منطق سلاسل حتمي خالص—بلا شبكة، بلا بذور عشوائية، بلا اعتماد على الساعة—لذلك يُعيد مُشغّل المتصفح المجاني وواجهة API المدفوعة مسبقًا نفس JSON في كل استدعاء.
ماذا يعني لفّ كل سطر ومتى يفيد
القيم الافتراضية تستخدم علامة اقتباس مزدوجة مستقيمة على الجانبين، فتصير ثلاثة أسماء ثلاثة أسماء مقتبسة جاهزة للصق في JSON أو CSV أو ملف إعداد. عندما تكون skip_empty بقيمة true يبقى سطر طوله صفر فارغًا فتبقى فجوات الفقرات بينما تُلفّ أسطر المحتوى. الإدخال الكامل الفارغ أو المكوّن من مسافات فقط خطأ قاطع: لا وثيقة ملفوفة ذات معنى لإعادتها، وعلى المستدعين معاملته invalid_input لا نجاحًا بصفر أسطر.
كيف تستدعون API وما الذي تحتويه الاستجابة
إذا مرّرتم سلسلة فارغة صريحة في جانب واحد يبقى ذلك الجانب فارغًا فيمكنكم الإضافة في البداية فقط أو في النهاية فقط. إذا آل الجانبان إلى سلسلتين فارغتين يُرفض الاستدعاء، لأن اللفّ بلا شيء ليس لفًّا. فضّلوا إرسال الجسم متعدد الأسطر خامًا بدل جمعه مسبقًا عندما تريدون دلالة حقيقية لكل سطر. أرسلوا جسم JSON فيه حقل string إلزامي اسمه text (أسماء بديلة input وvalue وstring وs وcontent وbody). أضيفوا اختياريًا prefix (أسماء بديلة pre وleft) وsuffix (أسماء بديلة post وright) كسلسلتين لا تتجاوز كل منهما أربعة وستين حرفًا، وskip_empty (أسماء بديلة skip_blank وignore_empty وskip_blanks) كقيمة boolean. عند إغفال prefix أو suffix يأخذ كل منهما افتراضيًا علامة اقتباس مزدوجة مستقيمة. يجب أن تكون قيمة text غير فارغة بعد قص المسافات العامة وألا تتجاوز مئة ألف حرف حتى لا تستنفد طلبية واحدة ذاكرة Worker أو المتصفح بلصق ضخم. عند النجاح تعيد الاستجابة input كما أُرسل أصلًا، وtext كنتيجة ملفوفة بالكامل موصولة بـ LF، وprefix وsuffix كالزوائد الفعلية، وskip_empty كالراية الفعلية، وline_count كعدد الأجزاء بعد القسمة، وwrapped_count كعدد الأجزاء التي استقبلت الزوائد فعلًا، وlines كمصفوفة مرتبة للسلاسل الملفوفة، وmessage كملخص إنجليزي قصير. فشل التحقق—غياب text، أو قيمة ليست string، أو حمولة مفرطة، أو محتوى فارغ بعد القص العام، أو زائدة ليست string أو أطول من الحد، أو الزائدتان فارغتين، أو skip_empty ليست boolean—يعيد invalid_input ولا يُحاسب أبدًا. السعر $0.002 ثابت لكل طلب ناجح بوحدة item. عند الدمج أكّدوا على text أو lines للمحتوى الملفوف، وعلى wrapped_count عندما تعمل skip_empty، وعاملوا invalid_input خطأً من العميل في النماذج الفارغة لا حدث فوترة.
نصائح عملية وحدود وعمليات بحث ذات صلة
عيّنوا prefix إلى علامة أكبر من ومسافة مع suffix فارغ لتحويل الملاحظات إلى اقتباس كتلي من markdown. عيّنوا prefix إلى وسم عنصر قائمة للفتح وsuffix إلى وسم الإغلاق المطابق لبناء صفوف ترميز. فحوصات الذهاب والإياب للاختبارات يسيرة: أرسلوا ثلاثة أسطر قصيرة وتوقعوا ثلاثة أسطر مقتبسة مع line_count ثلاثة وwrapped_count ثلاثة؛ أرسلوا سطرًا فارغًا بين كلمتين مع skip_empty true وتوقعوا بقاء السطر الأوسط فارغًا؛ أرسلوا عمدًا سلسلة فارغة أو مسافات فقط لتأكيد invalid_input والرسالة التي تطلب سلسلة غير فارغة؛ أرسلوا prefix فارغًا وsuffix فارغًا معًا لتأكيد رفض الفراغين. انتبهوا إلى فواصل الأسطر الختامية المقصودة: LF أخير ينشئ جزءًا أخيرًا فارغًا يُلفّ ما لم تكن skip_empty بقيمة true. المهام الفاشلة التي تعيد invalid_input لا تستهلك الرصيد المدفوع مسبقًا، فيبقى التحقق من النماذج واختبارات CI السلبية رخيصة.
حالات التكامل
اقتباس عمود لـ JSON أو CSV أو SQL
الصقوا قيمة في كل سطر ولفّوا كل صف بعلامتي اقتباس حتى تكون القائمة جاهزة لملف إعداد أو استيراد جدول أو قائمة IN دون تحرير كل صف يدويًا.
وسم الأسطر كـ HTML أو markdown
حوّلوا قائمة تحقق إلى وسوم عنصر قائمة، أو قدّموا للملاحظات علامة اقتباس كتلي، مع إبقاء الفواصل الفارغة فارغة عندما تكون skip_empty مفعّلة.
أسئلة تقنية
كيف تُعامل الأسطر الفارغة؟
افتراضيًا يصير السطر الفارغ prefix زائد suffix. اضبطوا skip_empty على true لترك أسطر الطول صفر فارغة فتبقى الفواصل البيضاء بيضاء.
هل أداة لفّ كل سطر مجانية؟
أداة المتصفح مجانية وتعمل محليًا. تستعمل استدعاءات API رصيد KIT المدفوع مسبقًا بمقدار $0.002 لكل طلب ناجح؛ والمهام الفاشلة لا تُحاسب أبدًا.