تحويل الكلمات تلقائيًا إلى روابط

يعمل Linkify لدي تقريبًا تمامًا بالطريقة التي أريدها:

/TBI\s*\W?(\d*)/,https://tbi.example.com/tbi/$1/

هذا يغطي “أرقام TBI” التي يدخلها المستخدمون بأشكال مختلفة كثيرة:

  • TBI 17
  • TBI-17
  • TBI17
  • TBI -17
  • TBI*17
  • إلخ.

أقدر هذه المرونة.

لسوء الحظ، لا يتعامل مع الطريقة الرسمية لإدخال هذه الأرقام:

  • TBI #17

يبدو أن لا شيء يمكنني فعله سيُطابق الرمز # (هاشتاغ، شارة، علامة الرقم، أوتوثروب، علامة الهاش، علامة البوند، رمز تيك تاك تو) بشكل صحيح. لقد جربت:

/TBI\s*#?(\d*)/,https://tbi.example.com/tbi/$1/
/TBI\s*\#?(\d*)/,https://tbi.example.com/tbi/$1/

بالطبع، ولم تنجح؛ لكن حتى wildcard كامل لا يعمل:

/TBI\s*.?(\d*)/,https://tbi.example.com/tbi/$1/

يبدو لي أن وظيفة القائمة المنبثقة للفئات قد تتولى هذا الأمر ولا تسمح لـ Linkify بإتمام عملية المطابقة الخاصة به — حتى عندما لا يختار المستخدم إحدى الفئات المعروضة.

هل هذا السلوك متوقع أم أنه خطأ؟ هل يعرف أحد طريقة لتجاوز هذه المشكلة؟

نعم، إذا قمت بفحص كود HTML المصدر، يبدو أن Discourse يضع أي شيء يبدأ بعلامة الهاشتاج في عنصر span منفصل، مما يكسر تدفق موضوع الرابط. لا أعتقد أن هناك حلاً سهلاً لهذا، آسف. :frowning: ستحتاج إلى عمل نسخة من الموضوع وتخصيصه خصيصًا لهذه الحالة، إلا إذا كان لدى شخص ما فكرة أفضل.

هذا الإضافة تعمل بشكل جيد، شكرًا لك. ومع ذلك، لا تعمل عند استخدامها مع abrify.
هل من الممكن أن يعمل الرابط أيضًا مع وسم الذي تضيفه هذه الإضافة:
GitHub - metabrainz/discourse-abbrify-words: Discourse theme component for automatically adding <abbr> to abbreviations and acronyms · GitHub.

أعتقد أن المشكلة تكمن في أن إضافة abbrify تتخطى وسوم الروابط افتراضيًا. يمكنك محاولة إصلاح ذلك عن طريق تعديل الكود وحذف السطر 16 في head_tag.html

'a': 1,

أخبرني إذا نجح الأمر أو إذا كنت بحاجة إلى مزيد من التوجيه. :slightly_smiling_face:

إعجابَين (2)

يبدو أنه يعمل، شكرًا جزيلاً.

بالمناسبة، هل هناك فرق إذا تم التعديل فقط في قالب CSS/HTML بدلاً من التعديل مباشرة من GitHub؟

نعم، يجب أن تكون حذرًا عند تحديث مكون السمة من GitHub، حيث سيؤدي ذلك إلى استبدال التغييرات المحلية في CSS/HTML.

3 إعجابات

شكرًا لك، أتساءل عما إذا كان من الممكن فعل الشيء نفسه، ولكن بإضافة فئة مختلفة بدلاً من سمة abriffy، مثل dfn data-info أو span aria-label أو غيرها من هذا النوع

على سبيل المثال، للعب بالمحتوى: attr()

نعم، بالتأكيد. يمكنك تجربة استخدام الدالة createAbbr (أو الدالة المقابلة في سمة linkify)

إعجاب واحد (1)

ممتاز حقًا. يجب أن أجرب استخدامه قليلًا. أظن أن هناك العديد من الاحتمالات هنا. هل لديك أي فكرة عن كيفية استخدام JSON و API هنا بطريقة ما؟

على سبيل المثال، لإظهار كلمات abriffy وبيانات أخرى على ووردبريس عبر API؟

لست متأكدًا مما تقصده. هل يمكنك أن تكون أكثر تحديدًا بشأن ما تحاول تحقيقه؟ تعمل مكونات السمة داخل Discourse، ولا توجد واجهة برمجة تطبيقات (API) لاستخدامها في أماكن أخرى. لكن يجب أن تكون قادرًا في الغالب على استخدام كود JavaScript ببساطة عن طريق نسخه إلى مكان آخر وتعديل الأجزاء الخاصة بـ Discourse.

هل توجد أي طريقة لاستبعاد المحتوى في oneboxes من التحويل إلى روابط؟

إعجاب واحد (1)

يمكنك تجربة إضافة وسم <aside> في إعدادات الوسوم المتخطاة. على الرغم من أنني لست متأكدًا من أن جميع الصناديق المدمجة (oneboxes) موضوعة داخل وسم <aside>. ربما نحتاج إلى فلتر يعتمد على اسم الفئة،

@sam ما هي أفكارك حول هذا؟ :arrow_double_up: يبدو هذا سلوكًا افتراضيًا معقولاً (عدم إنشاء روابط تلقائية داخل الصناديق المدمجة).

4 إعجابات

إعداد الفلترة القائم على الفئات يبدو مثاليًا، ويجب افتراضيًا استبعاد مربع واحد

7 إعجابات

حسناً، سأحاول تقديم طلب دمج (PR) الأسبوع المقبل.

إعجابَين (2)

مرحبًا، لقد قمت بتثبيت مكون هذا السمة بنجاح لسمة Light الافتراضية اليوم. ومع ذلك، لا يعمل بالنسبة لي.

لقد جربت التعبير النمطي (regex) وكلمات الروابط الافتراضية (discourse و meta). لم ينجح أي منهما.

لدي v2.3.0.beta2 +256 مثبتًا. هل توجد أي نصائح لتصحيح هذا الخطأ من فضلك؟ شكرًا مقدّمًا :slight_smile:

إعجاب واحد (1)

لقد قمنا مؤخرًا بإعادة هيكلة الكود، وقد تحتاج إلى تحديث منصة Discourse الخاصة بك (وهو أمر مريح في كل الأحوال، حيث تم إصدار الإصدار 2.4 للتو :slightly_smiling_face:)

6 إعجابات

يجب الآن تعطيل ربط الروابط تلقائيًا في الصناديق الأحادية بشكل افتراضي. @jrgong هل يمكنك تحديث نسختك من الثيم وتجربتها؟

إعجاب واحد (1)

يبدو أن هذه المشكلة لم تُحل بعد؟ ظننت أنه يمكنني إنشاء نسخة احتياطية عن طريق تصدير المكون من واجهة المسؤول، لكن التصدير لا يشمل الإعدادات المخصصة.

فكرة: ماذا لو تحول الإعداد مع جميع صفوفه إلى منطقة نصية قابلة للتحرير عند النقر المزدوج؟ مشابهة لمحررات تحرير CSS/HTML؟ هذا سيجعل من السهل عمل نسخة احتياطية/تصدير وكذلك استيراد قائمة عناصر بصف واحد في كل سطر.

قبل:

عند النقر المزدوج:

بمناسبة أخرى: قد ترى بعض التعبيرات النمطية (Regex) الغريبة هناك، لكن لا يمكنك استخدام | في حقول الإعدادات هذه. ربما يمكن حل ذلك أيضًا مع الاقتراح المذكور أعلاه.

3 إعجابات

مرحباً مجدداً يا صديقي! كيف تظن أنه يمكن تحويل الكلمات أو الروابط (باستخدام إضافة linkify أو abrify) إلى صورة أو صور؟

ربما لا يكون ذلك ممكنًا مع الإضافة الحالية، لكنه لا ينبغي أن يكون من الصعب تعديل الإضافة لإنتاج وسوم img بدلاً من وسوم a.

إعجاب واحد (1)