هل أنت متأكد؟ هذا يفاجئني قليلاً. أعتقد أنه إذا كان تعبيرك النمطي (regex) طماعًا بما يكفي، فيجب أن تكون قادرًا على مطابقته. لاحظ أن إزالة النقطة من أحرف الحدود يكسر ربط الكلمات في نهاية الجملة.
لقد أجريت اختبارًا بسيطًا بتعبيرك النمطي أدناه على regex101.com ويبدو أنه يعمل مع أحرف الحدود الحالية، انظر regex101: build, test, and debug regex
لاحظ أنه إذا فهمت غرضك بشكل صحيح، فقد تحتاج إلى تحويل بعض مجموعات الالتقاط الخاصة بك إلى مجموعات غير التقاط باستخدام (?:)
عدم القدرة على استخدام | مزعج للغاية، أتفق معك. لاحظ أنه بالنسبة لجزء ID|id يمكنك ببساطة استخدام المعدل i لجعل التعبير النمطي غير حساس لحالة الأحرف. بالنسبة للأرقام، إذا كنت تحتاج حقًا إلى النطاق الدقيق بين 1-10 و 1-100، فهذا صعب، وتخفيفه إلى 1-19 و 1-199 سيجعل الأمر أسهل.
إليك تعبيرك النمطي مع مجموعات غير التقاط أعتقد أنها ستعمل
لا يمكن إضافة تعابير نمطية معقدة: حدث خطأ: الكلمة طويلة جدًا (الحد الأقصى 100 حرف)
لا يمكن استخدام أي حرف عشوائي كحد للكلمة: وهو الشرطة السفلية
أيضًا عدم القدرة على تحرير القواعد أو تغيير ترتيب التنفيذ أقل من المثالي
يعرض طلب السحب للمكون حدود الكلمات للمستخدم، ولا توجد مشاكل مع التعبيرات النمطية الطويلة (باستثناء عدم القدرة على استخدام |، والتي يتم معالجتها أيضًا في طلب السحب).
بخلاف ذلك، تعمل الكلمات المراقبة بشكل مثالي، وإذا كان يمكن معالجة هذه المشاكل في النواة، فأنا مع ذلك.
تم إنشاء هذا كمنشور منفصل بناءً على Auto-Linkify Words - #216 by md-misko لست متأكدًا مما إذا كانت هذه تعتبر أخطاء:\n\nالكلمات المراقبة لا تحترم اليونيكود، فهي تعامل جميع أحرف اليونيكود كحدود للكلمات (عند استخدام \b، ولكن هذا متوقع على ما أعتقد).\n\nالمزيد (تشغيل بعض حالات الاختبار على الكلمات المراقبة ووجدت هاتين):\n- الكلمة المراقبة \"\\bid\\(d+)\\b\" هي تعبير عادي غير صالح. (صحيح، لكنها لا تزال تضيف القاعدة)\n- \\bid\\s?(\\d+)\\b → https://example.com/id$1 يتم ربطها بـ https://example.com/id%241 (تضيف $1 مشفرة بعنوان URL بدلاً من إجراء الاستبدال).\n\nهل الاستبدال غير مدعوم أم أن هذا خطأ؟
مكون السمة هذا الذي أشرت إليه هو تكيف لـ Sam قمت به كحل بديل لحاجة وصفتها في موضوع آخر.
إنها مكونات سمة بسيطة تغير فقط كيفية عرض هذه الكلمات في منشور (يقوم Sam بتحويل كلمات معينة إلى روابط، وتقوم كلماتي بتحويل كلمات معينة إلى صور) بناءً على إعدادات مكون السمة، والتي يديرها المسؤولون فقط.
الميزة التي تصفها لا يمكن القيام بها في مكون سمة، بل ستحتاج إلى إضافة (plugin) لتخزين مجموعة من (الكلمة، عنوان URL للصورة) لكل مستخدم في قاعدة البيانات، ويجب إجراء تحويل الكلمة إلى صورة من جانب الخادم، عند بناء محتوى المنشور المطبوخ (بتنسيق HTML). لا يمكن القيام بهذه الأمور في مكون سمة، وهو مجرد كود من جانب الواجهة الأمامية/العميل (إذا قمت بتوظيف شخص للقيام بهذا العمل، فمن الأهمية بمكان أن يفهم هذه التفاصيل).
هذا خارج نطاق مكون السمة هذا وسيحتاج إلى عمل أكثر تعقيدًا. الاقتراح هو نشر تفاصيل كيف تريد أن تتصرف هذه الميزة في Marketplace ويمكنك توظيف شخص هنا لديه خبرة سابقة في تفاصيل Discourse الداخلية لمساعدتك.
لقد تم طرح هذا الموضوع عدة مرات في هذا الموضوع، ولكن أود التحقق مرة أخرى؛ هل هناك أي طريقة لتقييد هذا بفئة معينة أو استبعاد فئات؟ أود استخدام هذا في فئة المبتدئين لدينا لربط جميع المصطلحات الأساسية التي يحتاج المبتدئون إلى تعلمها، ولكن في مناطق أخرى، سيكون هذا مزعجًا للمستخدمين ذوي الخبرة. شكرًا!
من الجيد معرفة أن linkify يقوم بعمل واحد فقط، ولكني أحببت أن يكون هناك رابط واحد لكل منشور. قد أضطر إلى تجربة هذا اليوم، فالكلمات التي تمت مراقبتها لا تطاق في بعض الأحيان عندما تجد تطابقًا.