أدوات النص واليومية · مجموعة أدوات النص
كيف تقوم مولدات البزاقة بطي اللكنات: NFD شرح التحلل
· كيف يعمل
url-slugs تحويل النص جافا سكريبت
يشرح كيف يقوم تحليل Unicode المتعارف عليه بفصل الحرف الأساسي عن لهجته بحيث يصبح "Café Crème" "cafe-creme" بدلاً من caf-cr-me، وحيث يفشل التحليل وحده.
caf-cr-me - الخلل الشائع الذي يشوه الأسماء، وسبب حدوثه
يمكن لروتين الارتداد الضعيف أن يحول `Café Crème` إلى `caf-cr-me` عندما يحذف كل حرف خارج نطاق ASCII الضيق. تختفي العلامات المرئية، ولكن تختفي معها الأحرف الأساسية، مما يترك URL الذي لم يعد يشبه عنوان المقالة. ويتجلى هذا الضرر بشكل خاص في الأسماء والأماكن والفئات التحريرية المتكررة.
ToolAcre يأخذ مسارًا مختلفًا في `slugify`. يقوم أولاً بتطبيع الإدخال، ثم يزيل نطاقًا محددًا من علامات التجميع مع الاحتفاظ بالأحرف الناتجة. وبعد ذلك فقط يتم تصغير النص وفواصل الأشكال. الترتيب هو السبب في أن `Café Crème` يصبح `cafe-creme` بدلاً من جزء به حروف متحركة مفقودة.
حرف واحد، تمثيلان - كيف يمكن أن تكون é نقطة رمز واحدة أو حرف e متبوعًا بلكنة حادة مجمعة
يمكن أن يحتوي النص الذي يبدو متطابقًا على تسلسلات داخلية مختلفة. قد يصل `é` كحرف واحد مركب مسبقًا، أو كحرف عادي `e` متبوعًا بعلامة حادة مجمعة. لا يستطيع محرر المحتوى عادةً معرفة التمثيل الذي جاء من CMS أو مستند أو حافظة، ومع ذلك يمكن لمرشح كل حرف على حدة أن يتعامل مع المدخلين بشكل مختلف.
يكون هذا الاختلاف الخفي مهمًا عندما تتعرف قاعدة الاستبدال على نموذج واحد دون الآخر. ToolAcre يتجنب كتابة بديل منفصل لكل تهجئة تم تركيبها مسبقًا. يمنح التطبيع خط الأنابيب الارتزاق نموذجًا متوسطًا أكثر اتساقًا، لذا يمكن إزالة علامات التشكيل المدعومة بخطوة واحدة لاحقة بينما تظل الأحرف الأساسية متاحة لـ URL.
نموذج التطبيع د - كيف يعيد التحلل القانوني كتابة كل حرف معلم إلى حرف أساسي بالإضافة إلى علامات الجمع
يستدعي التنفيذ `.normalize("NFD")` قبل أي عمل بأحرف صغيرة أو فاصلة. بالنسبة للأحرف التي تحتوي على تحليل أساسي تمت معالجته بواسطة وقت التشغيل JavaScript، ينتج عن ذلك حرف أساسي متبوعًا بعلامة دمج واحدة أو أكثر. لا تحتفظ الوظيفة بالكتالوج الخاص بها للتهجئة الفرنسية أو الإسبانية ولا تقوم بفحص الكلمات بشكل دلالي.
يقول المخطط التفصيلي إن NFD يعيد كتابة كل حرف معلّم، لكن المصدر يدعم عبارة أضيق. يعتمد التحليل على الحرف، ويغطي تعبير الإزالة التالي نقاط التعليمات البرمجية من `U+0300` إلى `U+036F`. لذلك، يجب أن تصف المقالة السلوك الموضح بواسطة الكود بدلاً من الوعد بإزالة التمييز الشامل لكل برنامج نصي أو علامة.
NFD يحلل الأحرف المدعومة؛ لا يعد التنفيذ بفصل كل حرف معلّم
بعد التسوية، `slugify` يطبق `/[̀-ͯ]/g` ويستبدل كل علامة مطابقة بسلسلة فارغة. في الشكل المتحلل لـ `é`، لا يتطابق `e` مع هذا النطاق، بينما تتطابق العلامة الحادة. تؤدي إزالة العلامة فقط إلى ترك الحرف الأساسي القابل للقراءة والذي كان من الممكن أن يتجاهله النهج السابق ASCII فقط.
يعد هذا طيًا مميزًا، وليس تمريرة عامة لتنظيف النص. يتم وضع التعبير العادي بشكل متعمد قبل قاعدة الفواصل، مما يسمح للحرف الأساسي بالمشاركة كحرف لاحقًا. إذا حدثت إزالة العلامة بعد انهيار عمليات التشغيل غير المدعومة بالفعل، فقد تؤثر العلامة المتحللة على موضع الفاصل وتنتج سبيكة ثابتة أقل دقة.
بقية خط الوصلات الثابتة - الحروف الصغيرة، والطي غير الأبجدي الرقمي إلى واصلات مفردة، وتقليم الفواصل البادئة والزائدة، وإسقاط الرموز التعبيرية
يقوم خط الأنابيب المتبقي بتصغير النص الذي تمت تسويته ويستبدل كل تشغيل ليس حرفًا أو رقمًا Unicode بالفاصل الذي تم تكوينه، والذي يكون افتراضيًا واصلة. يقوم التعبير الثاني بقص الفواصل المتكررة من كلا الطرفين. وبالتالي تختفي الرموز التعبيرية وعلامات الترقيم كمحتوى، بينما تصبح الأحرف المجاورة غير المدعومة حدًا واحدًا بدلاً من عدة واصلات.
يصف المخطط التفصيلي طيًا غير أبجدي رقمي، لكن النمط الفعلي يستخدم هروب خاصية Unicode، وليس أبجدية ASCII فقط. يمكن أن تظل الحروف المكتوبة بنصوص غير لاتينية في الشكل الثابت بعد الكتابة بأحرف صغيرة. يؤكد التكوين عدم وجود خطوة للترجمة الصوتية: تتم إزالة الرموز، ولكن لا تتم إعادة كتابة الحروف المحتجزة تلقائيًا كتهجئة لاتينية تقريبية.
يحتفظ الجزء المتبقي من خط الأنابيب الثابت هذا بالحروف والأرقام من أي برنامج نصي أثناء استبدال عمليات التشغيل الأخرى بالفاصل المختار
اتبع `Café Crème & Co. — Été 2024!` خلال التنفيذ. NFD يفصل الأحرف المحركة المدعومة إلى أحرف وعلامات أساسية. يترك تعبير إزالة العلامة `Cafe Creme & Co. — Ete 2024!`، وتنتج الأحرف الصغيرة `cafe creme & co. — ete 2024!` قبل معالجة علامات الترقيم.
تصبح العمليات التي لا تحتوي على أحرف أو أرقام بعد ذلك واصلات، مما ينتج عنه تسلسل ذو معنى `cafe-creme-co-ete-2024` بعد اقتطاع الفواصل البادئة والزائدة. لا تتلقى علامة العطف والنقطة والشرطة وعلامة التعجب أسماء منطوقة أو بدائل مخصصة. إنها تعمل فقط كحدود بين عمليات تشغيل الأحرف والأرقام في هذا التحويل.
ما لا يستطيع التحليل فعله - الحروف مثل ø وł وß وæ ليس لها لهجة يمكن تجريدها وتحتاج إلى جدول تحويل صوتي
التحلل ليس الترجمة الصوتية. لا تزال الأحرف مثل `ø` و`ł` و`ß` و`æ` أحرف Unicode بعد خط الأنابيب هذا، لذا يحتفظ بها عامل التصفية المعتمد على الخاصية بدلاً من استشارة جدول لـ `o` أو `l` أو `ss` أو `ae`. قد يكون الادعاء بأن المستخدمين بحاجة إلى جدول الترجمة الصوتية بمثابة نصيحة تصميمية مفيدة في مكان آخر، ولكن لا يوجد مثل هذا الجدول في هذه الأداة.
يشرح هذا التمييز أيضًا سبب كون النتيجة عبارة عن سبيكة مشروع صالحة دون أن تكون ASCII فقط. يجب على المحررين الذين يتطلب نظام النشر الخاص بهم ASCII التحقق من قيد النظام المنفصل قبل استخدام المخرجات. ToolAcre يَعِد بطي مميز لنطاق التحلل والعلامات المطبق؛ فهو لا يعد بالتهجئة المدركة للغة أو التحويل العكسي أو الإخراج اللاتيني لكل عنوان.
الأحرف التي لا تحتوي على علامات قابلة للإزالة تظل أحرفًا؛ لا تحتوي هذه الأداة على جدول الترجمة الصوتية
تعتبر الوجبات الجاهزة الموثوقة إجرائية: التطبيع أولاً، وإزالة علامات الدمج المدعومة، والأحرف الصغيرة، وانهيار عمليات التشغيل غير المدعومة، وقص الفواصل. كل مرحلة لديها مسؤولية واحدة مرئية، ويحافظ تسلسلها على الحروف الأساسية قبل التخلص من علامات الترقيم. وهذا يكفي لمنع فشل `caf-cr-me` الشائع دون اختراع قواعد اللغة التي لا يحتوي عليها المصدر.
الصق العنوان العملي في محول حالة النص وحدد خيار الارتفاع الثابت لفحص النتيجة النهائية في مربع النص نفسه. إذا كان العنوان يتضمن أحرفًا خارج حالات التشكيل الموضحة، فراجع الإخراج مقابل النظام الأساسي الوجهة. يوفر المحول تحويلاً يمكن التنبؤ به من جانب المتصفح، بينما يظل المحرر مسؤولاً عن اصطلاحات المسار.