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

@danekhollas

Unfortunately I still have the issue. I tried changing the order of the regexes in the theme settings, yet the “shorter” entry is still triggered first.

Hello @jrgong! Were you able to do bulk uploads using a CSV file? Trying to figure it out but I’m not quite sure where to click. I am not a developer btw :smiley:

I am using this :slight_smile:

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

So do we. I note that:

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

Gives us:

discourse
discourse meta
meta discourse

The order that these are in the Theme Settings (and presumably the database beneath) doesn’t seem to make a difference. Rather, if you extend an existing linkified word, it will pick up the difference. If you add a word in front, it doesn’t.

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

Hmm, that’s a bit strange. You’re right, the order in the settings shouldn’t matter, because we sort the words by length:

Not sure how much time should be invested in this since AFAIK this feature is being ported to Discourse core.

4 إعجابات

Hi,

Just noticed that the linkified words don’t have that click counter as other links have (which would be a nice feature to have, in my opinion). Is it on purpose or just a bug?

إعجابَين (2)

can this be restricted to specific categories/tags so that a post would have to be in the category or tagged to generate links?

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

Is it possible to specify a title for the link? So “ghost” becomes “ghost (see warning!)”?

Possibly using markdown link syntax:

ghost,[ghost (see warning!)](https://warning.example.com)

Or specifying the title as a third parameter:

ghost,https://warning.example.com,ghost (see warning!)

@Paracelsus the click counter is not supported in this theme, sorry.

Not really a bug, the theme is only a JavaScript code running in your browser. It doesn’t talk to the server so there’s no way to store the number of clicks.

إعجابَين (2)

Now in discourse under replace words:
/admin/customize/watched_words/action/replace

If I just enter the word and then just put the URL without any markdown, it works! So that is how to get it to work without the autolink theme component.

(Whereas in the theme component you put the word/phrase then a comma then the link to use, in watched word replace you enter the word in one field and JUST the link in another… do not try to enter markdown in the replacement string like I originally tried.)

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