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

@danekhollas

للأسف لا تزال لدي المشكلة. حاولت تغيير ترتيب التعبيرات النمطية (regex) في إعدادات السمة، ومع ذلك لا يزال الإدخال “الأقصر” يُفعَّل أولاً.

مرحبًا @jrgong! هل تمكنت من إجراء عمليات رفع جماعية باستخدام ملف CSV؟ أحاول فهم الأمر لكنني لست متأكدًا تمامًا من المكان الذي يجب النقر عليه. أنا لست مطورًا btw :smiley:

أنا أستخدم هذا :slight_smile:

https://meta.discourse.org/t/discourse-linkify-google-sheets/163985/4

نحن كذلك. نلاحظ أن:

discourse,https://discourse.org
discourse meta,https://meta.discourse.org
meta discourse,https://meta.discourse.org

يعطينا:

discourse
discourse meta
meta discourse

يبدو أن الترتيب الذي تظهر به هذه العناصر في إعدادات السمة (وربما قاعدة البيانات الكامنة وراءها) لا يُحدث فرقًا. بل إن الأمر يعتمد على ما إذا قمت بتوسيع كلمة مُرَّبطَة بالفعل، فسيتم التقاط الفرق. أما إذا أضفت كلمة في المقدمة، فلن يحدث ذلك.

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

ها، هذا غريب بعض الشيء. أنت محق، لا يجب أن يكون ترتيب الإعدادات مهماً، لأننا نرتب الكلمات حسب الطول:

غير متأكد من مقدار الوقت الذي يجب استثماره في هذا الأمر، إذ أنه حسب علمي هذه الميزة قيد النقل إلى نواة Discourse.

4 إعجابات

مرحبًا،

لاحظت للتو أن الكلمات التي تم تحويلها إلى روابط لا تحتوي على عداد النقرات مثل الروابط الأخرى (وهو ما أعتبره ميزة لطيفة). هل هذا مقصود أم أنه مجرد خطأ؟

إعجابَين (2)

هل يمكن تقييد ذلك لفئات أو وسوم محددة، بحيث يجب أن يكون المنشور ضمن فئة معينة أو مُوسومًا به لتوليد الروابط؟

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

هل من الممكن تحديد عنوان للرابط؟ بحيث يتحول “ghost” إلى “ghost (انظر التحذير!)”؟

ربما باستخدام صيغة روابط Markdown:

ghost,[ghost (انظر التحذير!)](https://warning.example.com)

أو تحديد العنوان كمعلمة ثالثة:

ghost,https://warning.example.com,ghost (انظر التحذير!)

@Paracelsus عذرًا، عداد النقرات غير مدعوم في هذا السمة.

ليست خطأ برمجيًا في الحقيقة، فالسمة هي مجرد كود جافا سكريبت يعمل في متصفحك. لا يتواصل مع الخادم، لذا لا توجد طريقة لتخزين عدد النقرات.

إعجابَين (2)

الآن في Discourse ضمن استبدال الكلمات:
/admin/customize/watched_words/action/replace

إذا قمت بإدخال الكلمة فقط ثم أدرجت الرابط دون أي تنسيق نصي (Markdown)، فستعمل! إذن هذه هي الطريقة لجعلها تعمل دون مكون “الربط التلقائي” في السمة.

(بينما في مكون السمة تكتب الكلمة أو العبارة ثم فاصلة ثم الرابط المراد استخدامه، في استبدال الكلمات الخاضعة للمراقبة تكتب الكلمة في حقل واحد والرابط فقط في حقل آخر… لا تحاول إدخال تنسيق نصي (Markdown) في سلسلة الاستبدال كما حاولت في البداية.)

4 إعجابات

مرحباً، هذه مكونة رائعة! شكراً لك على إنجاز هذا.

لكن هناك مشكلة صغيرة، يبدو أن الربط يتطلب مسافة بعد الكلمة المحددة، لذا فإن المكونة لا تعمل بشكل جيد في منصات Discourse الصينية واليابانية (وربما الكورية أيضاً؟ لا أعرف هذه اللغة).

أنا متحدث أصلي باللغة الصينية، وأتحدث اليابانية أيضاً. في الصينية، يحدث أن يستخدم الناس بعض الكلمات المستعارة الثابتة في الكتابة، مثل Apple، Office، BB (Blackboard)، DNA، إلخ، والتي نادراً ما تستخدم ترجمتها في اللغة المألوفة. وعادة لا نضيف مسافة قبل/بعد هذا النوع من الكلمات عندما تكون محاطة بالصينية، في الكتابة غير الرسمية.

هذا مثال:

你会用Office吗؟
هل تعرف كيف تستخدم مجموعة Office؟

الأمر مشابه في اليابانية.

革新に満ちたAppleの世界へようこそ。(مقتبس من الموقع الرسمي لشركة Apple Japan)
مرحباً بك في عالم Apple المليء بالثورات.

أدرك أن تكييف هذه المكونة لهاتين اللغتين قد يتطلب الكثير من العمل، لأن هذا قد يؤدي إلى ربط غير مقصود في اللغات التي تستخدم الأبجدية. لذا، أنا فقط أشير إلى وجود عيب صغير. أقدر مرة أخرى هذه الفكرة الرائعة لجعل هذه المكونة. :smiley_cat:

إعجابَين (2)

هذا يعمل بشكل رائع. هل من الممكن تشغيله بأثر رجعي، أم تحتاج إلى البحث في جميع الروابط يدويًا وتغييرها؟

يجب أن تكون قادرًا على إعادة خبز تلك المشاركات. يمكنك النقر فوق المفتاح الربط وإعادة بناء HTML. عندما ترى أنها تعمل، يمكنك البحث عن كيفية إعادة خبز مهمة rake للمشاركات المطابقة.

في الواقع، هذا القالب يربط المنشورات ديناميكيًا عند تحميلها في المتصفح، لذا لا داعي لفعل أي شيء. :slight_smile:

3 إعجابات

أوه. رائع جدًا. لم أكن أدرك ذلك، لكن هذا منطقي.

3 إعجابات

كان مسرد برامج الأنساب مفتوحة المصدر لدينا واسعًا جدًا بحيث لا يمكن نشره أو ربطه.

لو قمنا فقط بربط كل مصطلح في المسرد، لكان كل منشور سيغرق في بحر من الروابط الزرقاء. من المحتمل أن يتوقف المستخدمون عن النقر على الروابط. وكنا نريد مسار تدقيق للمسرد.

لذلك قمت بربط “مسرد جرامبس” بهذا المقال في ويكي MediaWiki الخاص بنا. والآن أستخدم تعليقًا مثل “(انظر [مصطلح المسرد] في مسرد جرامبس)”.

(لدينا مسرد أنساب ثانٍ للمصطلحات العامة لموضوع الأنساب بدلاً من المصطلحات الخاصة ببرنامجنا.)

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

هل تم عمل شيء للسماح بالروابط؟

أنا حاليًا أستخدم هذا كحل بديل:
image


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

لذلك، هذا لم ينجح:
image

إليك مثال للمشكلة التي أواجهها. هذا هو جزء من نص داخل موضوع توثيق.

إذا نقرت على 22° halo، فسيفتح صفحة تربط بـ… نفس الصفحة، في نفس المكان.
يمكنني استبعاد الكلمات في العناوين، خاصة لأنها تحتوي على جدول محتويات، ولكن الفقرات التالية لا تحتوي على فئة محددة. إنها فقرات عادية.


ربما يمكن أن يقبل إعداد الفئة المستبعدة محددات CSS؟
على سبيل المثال، d-toc-cooked > *


تعديل: أيضًا أفشل في فهم سبب عدم عمل هذا بما أن كلمتي هي طفل مباشر لفئة مستبعدة:

image

لا يزال “22° Halo” قابلاً للربط:

<h3 id="toc-h3-22-halo" data-d-toc="toc-h3-22-halo" class="d-toc-post-heading">
    <a name="h-22-halo-7" class="anchor" href="#h-22-halo-7"></a>
    <a href="https://discourse.canapin.com/t/ice-halos-information-and-list/28#h-22-halo-7" rel="nofollow" target="_blank" class="linkify-word no-track-link">22° Halo</a>
</h3>

هل هذا لأن كود جدول المحتويات HTML قد يتم إنشاؤه بعد “الربط”؟

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

نعم، هذه على الأرجح هي المشكلة هنا، كلاهما مكونان من JavaScript لذا لديك حالة سباق وستعتمد النتيجة على أيهما يعمل أولاً.

4 إعجابات

لقد أضفت فئة إلى القائمة البيضاء لـ HTML لذلك تحايلت على المشكلة.

ومع ذلك، فإن القدرة على استبعاد سمات زر يمكن أن تسمح بمزيد من المرونة لمنع الكلمات التي يتم تحويلها إلى روابط، باستخدام السمة المضمنة data-(anything) لـ HTML نظرًا لأنها مسموح بها افتراضيًا في Discourse.

مثال:
<span> text </span><span> text </span>

هل سيتم قبول طلب الدفع إذا تمكنت من إضافة هذا إلى مكون السمة؟

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

هذا يمنع للأسف ربط الكلمات التي تتضمن صراحة أيًا من هذه (خاصةً النقطة . ، وهي مفيدة في ربط الاختصارات مثل ID.1 أو id2.5).

ربما يكون من الأفضل إصلاح هذا في النواة، ولكن في الوقت الحالي إليك طلب سحب يصلح المشكلات المذكورة أعلاه:

https://github.com/discourse/discourse-linkify-words/pull/21

قاعدة تعبير نمطي نموذجية (ستطابق id1.1 إلى id10.100 (بما في ذلك الاختلافات id m.n و IDm.n و ID m.n))

/(ID¦id)\\s?(([1-9]¦10)\\.([1-9]¦[1-9][0-9]¦100))/, https://example.com/id$2