في المرة الأولى التي عضتني فيها، كنت أنسخ مجموعة من الشروط والأحكام من ملف PDF إلى رد دعم. بدا الأمر جيدًا في ملف PDF. في اللحظة التي وصل فيها إلى المحرر الخاص بي، تحول إلى درج، حيث ينقطع كل سطر إلى صف جديد في منتصف الصفحة، لأن ملف PDF قد عاد بقوة إلى نهاية كل سطر مرئي. كان إصلاحه يدويًا يعني حذف سطر جديد وإضافة مسافة وتكرار ذلك أربعين مرة. لقد قمت ببناء أدوات كافية على Toolz.dev لمعرفة متى تستحق الوظيفة التشغيل الآلي، وكان هذا الجهاز يضيع وقتي بهدوء لسنوات. لذلك قمت ببناء أداة إزالة فواصل الأسطروهذا الدليل هو كل ما تعلمته عن سبب وجود المشكلة وكيفية تنظيفها بشكل صحيح.
ليرة تركية؛DR: غالبًا ما يحتوي النص المنسوخ من ملفات PDF ورسائل البريد الإلكتروني والمحطات الطرفية على فاصل أسطر في نهاية كل سطر عرض بدلاً من نهاية كل فقرة فقط. لصقها يترك خطوطًا مكسورة وممزقة. ال أداة إزالة فواصل الأسطر يحذف هذه الأسطر الجديدة وينضم إلى النص بفاصل تختاره، ويحتفظ وضع إدراك الفقرة الخاص به بالأسطر الفارغة بين الفقرات بحيث تقرأ النتيجة نثرًا، وليس سطرًا عملاقًا واحدًا. كل ذلك يعمل في متصفحك، لذلك لا يتم تحميل أي شيء.
لماذا النص المنسوخ الخاص بي مليء بفواصل الأسطر؟
الإجابة المختصرة هي أن فاصل الأسطر وفاصل الفقرات شيئان مختلفان، والكثير من البرامج تربكهما.
عند الكتابة في معالج النصوص أو المتصفح، تضغط على Enter فقط في نهاية الفقرة. يلتف النص تلقائيًا داخل الفقرة، بحيث يتم تحديد الخطوط المرئية التي تراها بسرعة من خلال عرض النافذة. لا توجد أحرف فاصل أسطر داخل الفقرة على الإطلاق. وهذا ما يسمى التغليف الناعم، ولهذا السبب يتم إعادة تدفق نفس الفقرة بشكل نظيف عند تغيير حجم النافذة.
الكثير من المصادر الأخرى تفعل العكس. يقوم ملف PDF بتخزين موضع كل سطر، لذلك عندما تنسخ النص منه، غالبًا ما يضع المستخرج حرف سطر جديد حقيقي في نهاية كل سطر يراه على الصفحة. تم تغليف رسائل البريد الإلكتروني ذات النص العادي تاريخيًا في 72 أو 76 عمودًا مع إرجاع ثابت على كل سطر، وهو تقليد يسبق الويب ولا يزال يظهر في القوائم البريدية والردود المقتبسة. تعليقات التعليمات البرمجية وملفات السجل وأي شيء مطبوع على محطة ذات عرض ثابت تفعل الشيء نفسه. في كل هذه الأمور، السطر الجديد لا يمثل نهاية الفكرة، بل يمثل نهاية السطر الفعلي الذي تصادف أنه بهذا العرض.
عندما تلصق ذلك في مكان يقوم بالتغليف الناعم، تتصادم الفكرتان. يقوم المحرر الخاص بك بالفعل بتغليف النص ليناسبه، والآن هناك عوائد صعبة إضافية تقطع الخطوط قبل أن تصل إلى الحافة. والنتيجة هي الدرج: الخطوط التي تنكسر في أماكن غريبة، وترفض إعادة التدفق، وتبدو مكسورة في كل حجم نافذة باستثناء تلك التي تم نسخها منها.
ماذا تفعل إزالة فواصل الأسطر؟
تعني إزالة فواصل الأسطر حذف أحرف الأسطر الجديدة وإعادة تجميع القطع معًا مرة أخرى بحيث تتدفق الكلمات كنص مستمر مرة أخرى. القرار الحقيقي الوحيد هو ما يجب وضعه في الفجوة التي كان يوجد بها كل سطر جديد.
في معظم الأحيان تريد مسافة واحدة، لأن السطر الجديد كان يمثل المسافة بين كلمتين عادة ما تحتويها الجملة. في بعض الأحيان لا تريد شيئًا على الإطلاق، على سبيل المثال عندما يتم تقسيم رقم طويل أو رمز رمزي عبر سطرين ويحتاج إلى إعادة الانضمام إليه بدون فجوة. وأحيانًا تريد فاصلة أو فاصل آخر، لأن الأسطر كانت في الواقع قائمة وتريدها في صف واحد كقيم مفصولة بفواصل. تمنحك الأداة كل هذه العناصر، بالإضافة إلى حقل مخصص لأي شيء آخر.
هناك حرف آخر يستحق المعرفة عنه. ينهي Windows الأسطر بحرفين، وعودة السطر متبوعة بتغذية السطر، مكتوبة كـ CRLF. يستخدم نظام Unix ونظام التشغيل macOS الحديث تغذية سطر واحد، LF. يستخدم برنامج Mac القديم جدًا إرجاع حرف واحد، CR. إذا قمت بخلط نص من مصادر مختلفة، فقد ينتهي بك الأمر بمزيج ممزق من الثلاثة، كما أن البحث والاستبدال الساذج الذي يبحث فقط عن واحد منهم يترك الآخرين خلفك. تعمل أداة إزالة فواصل الأسطر على تطبيع الثلاثة أولاً، لذلك لا يهم من أين جاء النص، حيث يتم التعامل مع كل سطر ينتهي بنفس الطريقة.
كيف يمكنني إزالة فواصل الأسطر مع الاحتفاظ بفقراتي؟
هذه هي الميزة التي تحول الأداة من أداة غير حادة إلى أداة مفيدة، لذا فهي تستحق الفهم.
إذا قمت ببساطة بحذف كل سطر جديد في المستند، فستحصل على فقرة واحدة ضخمة. يتم تشغيل جميع الجمل معًا في سطر واحد غير منقطع، وتختفي البنية التي جعلت النص قابلاً للقراءة. هذا هو ما تريده أحيانًا، لكنه ليس كذلك عادةً. ما تريده هو إزالة الفواصل العرضية داخل كل فقرة مع الحفاظ على الفواصل المتعمدة بين الفقرات.
وتميز الأداة بين الاثنين من خلال النظر إلى الأسطر الفارغة. يتم التعامل مع سطر جديد واحد على أنه فاصل عرضي داخل الفقرة ويتم إزالته. يتم التعامل مع السطر الفارغ، وهو سطرين جديدين على التوالي، على أنه حد فقرة حقيقي ويتم الاحتفاظ به. إذن المستند الذي تم كسره على هذا النحو:
The quick brown fox
jumps over the lazy dog.
A second paragraph
follows after a blank line.
يخرج كفقرتين نظيفتين بينهما سطر فارغ، بدلاً من سطر واحد طويل. هذا هو بالضبط شكل النص المنسوخ من ملف PDF أو بريد إلكتروني ملفوف، حيث تكون كل فقرة مكسورة داخليًا ولكن يتم فصل الفقرات بسطر فارغ. اترك خيار الاحتفاظ بفواصل الفقرات قيد التشغيل، وهو الخيار الافتراضي، وتقوم الأداة بالشيء الصحيح دون أي عبث إضافي.
عندما تريد حقًا كل شيء في سطر واحد، قم بإيقاف تشغيل هذا الخيار. يتم بعد ذلك استبدال كل سطر جديد في الإدخال بأكمله بالفاصل الذي اخترته، وهي الطريقة التي تقوم بها بتحويل عمود من القيم إلى صف واحد مفصول بفواصل.
أي فاصل يجب أن أختار؟
الفاصل هو السلسلة التي تحل محل كل فاصل أسطر تمت إزالته. يعتمد الاختيار الصحيح على ما تمثله الخطوط. إليك كيفية تصرف الخيارات الشائعة على نفس الإدخال المكون من ثلاثة أسطر apple، banana، cherry:
| فاصل | نتيجة | استخدامه عندما |
|---|---|---|
| فضاء | apple banana cherry |
السطور عبارة عن كلمات أو أجزاء من الجملة يجب قراءتها على أنها نثر |
| لا شئ | applebananacherry |
تم تقسيم رمز مميز واحد عبر الخطوط ويجب الانضمام مرة أخرى دون أي فجوة |
| فاصلة | apple, banana, cherry |
الأسطر هي قائمة تريدها كقيم مفصولة بفواصل |
| فاصلة منقوطة | apple; banana; cherry |
أنت بحاجة إلى فاصل قائمة لن يتعارض مع الفواصل الموجودة في البيانات |
| الأنابيب | apple | banana | cherry |
أنت تقوم ببناء صف جدول Markdown أو سجل محدد |
| مخصص | مهما كتبت | أنت بحاجة إلى نجار محدد مثل - أو علامة تبويب |
المساحة هي المساحة الافتراضية لأنها مناسبة في كثير من الأحيان أكثر من أي خيار آخر للنثر العادي. تأتي فواصل القائمة في مكانها الخاص عندما تقوم بإعادة تشكيل البيانات بدلاً من قراءتها، على سبيل المثال تحويل عمود منسوخ من جدول بيانات إلى صف واحد يمكنك لصقه في استعلام.
ماذا تفعل خيارات التنظيف؟
هناك تبديلان إضافيان يرتبان الإخراج إلى ما هو أبعد من الوصلة نفسها، وكلاهما قيد التشغيل افتراضيًا لأنهما يساعدان دائمًا تقريبًا.
يزيل القطع المسافة البيضاء في بداية ونهاية كل سطر قبل ضم الأسطر. وهذا مهم لأن النص المنسوخ يحمل في كثير من الأحيان مسافات زائدة لا يمكنك رؤيتها، ومسافة بادئة في بداية السطر لا تريد الاحتفاظ بها بمجرد أن يصبح السطر خطًا خاصًا به. بدون التشذيب، تبقى تلك المسافات الضالة على قيد الحياة عند الانضمام وتظهر كفجوات غريبة في منتصف النص المتصل.
تذهب مسافات الانهيار خطوة أخرى إلى الأمام وتقلل من أي مسافة من مسافتين أو أكثر أو علامات تبويب وصولاً إلى مسافة واحدة. بمجرد ضم الأسطر، من السهل أن ينتهي الأمر بمسافات مزدوجة حيث تلتقي المساحة الخلفية بمساحة بادئة، أو حيث يستخدم النص الأصلي مسافات لمحاذاة شيء ما. يمنحك طيها المسافة الفردية التي يتوقعها النثر. الأهم من ذلك، أن هذا لا يمس سوى المسافات وعلامات التبويب، وليس الأسطر الجديدة التي تفصل فقراتك أبدًا، لذلك لا يؤدي إلى التراجع عن الانضمام المدرك للفقرة.
يوجد أيضًا خيار إزالة الأسطر الفارغة، بشكل افتراضي، في حالة احتواء الإدخال على أسطر فارغة طائشة، فإنك لا تريد أن تصبح فجوات في الفقرات. ومع تشغيله، يتم إسقاط الأسطر الفارغة بدلاً من الاحتفاظ بها، وهو أمر مفيد لتنظيف الصادرات ذات المسافات المزدوجة.
هل القيام بذلك في المتصفح آمن؟
نعم، وهذه نقطة أهتم بها لأنها فلسفة التصميم بأكملها وراء Toolz.dev. تعمل أداة إزالة فواصل الأسطر بالكامل في متصفحك باستخدام JavaScript. تتم معالجة النص الذي تقوم بلصقه في ذاكرة الصفحة التي تنظر إليها، ولا يتم تحميله مطلقًا على الخادم. لا يوجد حساب ولا تسجيل ولا طلب شبكة يحمل المحتوى الخاص بك في أي مكان.
وهذا يهم أكثر مما يبدو لأول مرة. النص الذي يحتاج الأشخاص في أغلب الأحيان إلى إعادة التدفق هو النص الذي نسخوه من مكان خاص: عقد خارج ملف PDF، أو بريد إلكتروني داخلي، أو رسالة عميل، أو كتلة من التعليمات البرمجية. إن إرسال ذلك إلى خادم بعيد لإزالة أسطره الجديدة سيكون بمثابة تجارة خصوصية سخيفة لمثل هذه العملية التافهة. نظرًا لأن العمل محلي، فلا يوجد حد للتحميل أيضًا، لذلك يتم إعادة تدفق مستند كبير جدًا بسرعة مثل مستند قصير، وتستمر الأداة في العمل حتى لو انخفض اتصالك بعد تحميل الصفحة. إذا كنت تريد الحجة الأطول حول سبب كون المعالجة من جانب العميل هي الإعداد الافتراضي الصحيح لأدوات مساعدة مثل هذه، فقد كتبتها في خصوصية البيانات ودليل الأدوات عبر الإنترنت.
كيف يختلف هذا عن البحث والاستبدال؟
يمكنك بالطبع القيام بذلك بنفسك في أي محرر من خلال البحث والاستبدال، ولا بأس بذلك لمرة واحدة. السبب الذي يجعلني لا أزال أصل إلى الأداة المخصصة يعود إلى الأشياء الثلاثة التي يخطئ فيها البحث والاستبدال اليدوي.
أولا، مشكلة الفقرة. يؤدي الاستبدال البسيط للسطر الجديد بمسافة إلى تسوية كل شيء في سطر واحد، لأنه لا يمكنه معرفة فاصل داخل الفقرة من حدود الفقرة. للحفاظ على الفقرات يدويًا، عليك القيام برقصة من خطوتين: أولاً، استبدل السطر الجديد المزدوج بعنصر نائب، ثم استبدل الأسطر الجديدة المفردة بمسافات، ثم أعد الأسطر الجديدة المزدوجة. هذا أمر عبثي وسهل الخطأ.
ثانيا، نهايات الأسطر المختلطة. إذا كان النص الخاص بك يحتوي على مزيج من CRLF وLF وCR، فإن نمط البحث والاستبدال الواحد يفتقد بعضًا منها، وتتركك تبحث عن المتطرفين. تقوم الأداة بتطبيع الثلاثة مقدمًا.
ثالثا، تنظيف المسافات البيضاء. بعد الانضمام، عادةً ما ترغب في طي المسافات المزدوجة وتقليم الأطراف، وهو عبارة عن تمريرة استبدال واحدة أو اثنتين يتم إجراؤها بالترتيب الصحيح. تقوم الأداة بطي كل ذلك في عملية واحدة باستخدام مفاتيح تبديل مرئية، حتى تتمكن من رؤية ما يفعله كل واحد بالضبط وضبطه دون إعادة الأمر برمته.
لا شيء من هذا مستحيل باليد. إنها بطيئة وعرضة للخطأ بدرجة كافية بحيث تدفع الأداة المصممة لهذا الغرض تكاليفها في المرة الثانية أو الثالثة التي تحتاجها فيها. نفس المنطق هو السبب وراء احتفاظي برف كامل من الأدوات المساعدة النصية الصغيرة، مثل مزيل الخط المكرر لإلغاء القائمة و فارز الخط لطلب واحد، بدلاً من الوصول إلى برنامج نصي في كل مرة.
متى أريد إزالة جميع فواصل الأسطر؟
هناك حالات حقيقية لطي كل شيء في سطر واحد، وهي تستحق الاستدعاء حتى تعرف متى تقوم بإيقاف تشغيل خيار الفقرة.
أوضحها هو إعادة تشكيل البيانات. تقوم بنسخ عمود واحد من جدول البيانات ويصل كقيمة واحدة لكل سطر. تريد أن تسقط في قائمة مفصولة بفواصل في SQL IN (...) جملة أو مصفوفة التكوين. قم بإيقاف تشغيل فواصل الاحتفاظ بالفقرة، واختر فاصل الفاصلة، وسيكون لديك صفك. وينطبق الشيء نفسه على إنشاء صف جدول Markdown باستخدام فاصل الأنابيب، أو تجميع سلسلة استعلام.
آخر هو إعادة الانضمام إلى الرمز المميز الذي تم تغليفه. يجب أن يصبح عنوان URL الطويل أو النقطة الأساسية 64 أو مفتاح API الذي تم تقسيمه عبر الأسطر في البريد الإلكتروني سلسلة واحدة متواصلة بدون فاصل. قم بإيقاف تشغيل فواصل الفقرات، ولا تختار شيئًا كفاصل، ثم تندمج الأجزاء مرة أخرى في رمز مميز واحد.
القاعدة الأساسية بسيطة. إذا كنت تقوم بتنظيف النثر ليقرأه الإنسان، فاحتفظ بالفقرات. إذا كنت تعيد تشكيل النص إلى قيمة واحدة يمكن قراءتها آليًا، فأوقف تشغيلها. إن القدرة على التنقل بين الاثنين على نفس الإدخال، ومشاهدة تحديث النتيجة أثناء تقدمك، هو السبب وراء بناء كلا السلوكين في أداة واحدة بدلاً من اثنتين. وإذا كان النص المنظف متجهًا إلى مكان ما، فسوف تستمر في التحرير، والمجموعة الأوسع على الموقع، من محول القضية الى عداد الكلمات، يلتقط من حيث يتوقف هذا. بالنسبة للمجموعة الأوسع من مساعدي النصوص والتعليمات البرمجية اليومية، فإن دليل أدوات إنتاجية المطور هي خريطة جيدة، و دليل أدوات الترميز يغطي جانب التنسيق.
الأسئلة المتداولة
كيف يمكنني إزالة فواصل الأسطر من النص؟
الصق النص الخاص بك في أداة إزالة فواصل الأسطر واحتفظ بالإعدادات الافتراضية. فهو يستبدل كل فاصل أسطر داخل الفقرة بمسافة واحدة ويعرض النتيجة المرتبطة على الفور، والتي يمكنك بعد ذلك نسخها. كل شيء يحدث في متصفحك.
كيف أحتفظ بفقراتي عند إزالة فواصل الأسطر؟
اترك خيار الاحتفاظ بفواصل الفقرات قيد التشغيل، وهو الخيار الافتراضي. تقوم الأداة بعد ذلك فقط بتسوية فواصل السطر الواحد داخل كل فقرة وتحتفظ بسطر واحد فارغ بين الفقرات، وبالتالي يتم الحفاظ على بنية النص بدلاً من الانهيار في سطر واحد.
هل يمكنني ضم جميع الأسطر إلى سطر واحد؟
نعم. قم بإيقاف تشغيل خيار الاحتفاظ بفواصل الفقرات وسيتم طي الإدخال بالكامل في سطر واحد متواصل، وهو أمر مفيد لتحويل عمود من القيم إلى صف واحد مفصول بفواصل أو إعادة ربط الرمز المميز الذي تم تقسيمه عبر الأسطر.
ما الفرق بين فاصل الأسطر وعودة العربة؟
فاصل الأسطر هو حرف السطر الجديد المستخدم في أنظمة Unix وأنظمة Mac الحديثة. إرجاع السطر هو نهاية Mac الأقدم، ويستخدم Windows كليهما معًا كـ CRLF. تقوم الأداة بتطبيع الثلاثة، بحيث ينضم أي نص مصدر بنفس الطريقة بغض النظر عن مصدره.
كيف يمكنني استبدال فواصل الأسطر بفاصلة بدلاً من المسافة؟
اختر فاصل الفاصلة. يتم استبدال كل فاصل أسطر تمت إزالته بفاصلة ومسافة، مما يحول قائمة الأسطر إلى قائمة مفصولة بفواصل. يتيح لك الخيار المخصص استخدام أي أداة ربط تريدها، مثل علامة التبويب أو الشرطة.
لماذا لا يزال الإخراج يحتوي على مسافات مزدوجة؟
يحدث ذلك عندما تنتهي الأسطر بالفعل بمسافات قبل ضمها. قم بتشغيل خيار طي المسافات لتقليل أي تشغيل للمسافات أو علامات التبويب إلى مسافة واحدة، وقم بتشغيل القطع لإزالة المسافات في نهايات الأسطر أولاً. كلاهما قيد التشغيل افتراضيًا.
هل تؤدي إزالة فواصل الأسطر إلى تغيير الكلمات الموجودة في النص الخاص بي؟
لا. تقوم الأداة بإزالة أحرف السطر الجديد فقط، وإذا سألت، تقوم بترتيب المسافات البيضاء. يتم ترك الكلمات وعلامات الترقيم وترتيبها تمامًا كما كانت، وبالتالي لا يتغير معنى النص.
هل من الآمن لصق نص خاص هنا؟
نعم. تتم جميع عمليات المعالجة بالكامل في متصفحك باستخدام JavaScript. لا يتم تحميل النص أو تخزينه مطلقًا، وتستمر الأداة في العمل بدون اتصال بالشبكة بمجرد تحميل الصفحة، مما يجعلها آمنة للعقود ورسائل البريد الإلكتروني والتعليمات البرمجية.



