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

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

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

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

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

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

إعجابَين (2)

يبدو أنه يجب أن تكون قادرًا على القيام بذلك عن طريق إضافة h1 و h2 وغيرها إلى إعداد “العلامات المستبعدة” في الامتداد، أليس كذلك؟

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

لقطة الشاشة التي نشرتها سابقًا هي h2 بفئة anchor.

لا، كنت أعني العلامات. هذه علامات HTML، وليست علامات موضوعات الخطاب، على حد فهمي.

بالتأكيد، أنت على حق! شكراً لك يا مات. كنت أركز كثيراً على أن تكون العلامات علامات خطاب. أقدر مساعدتك.

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

هل يمكنك إخباري ما إذا كان من الممكن استيراد كلمات متعددة للربط في نفس الوقت أو استخدام واجهة برمجة التطبيقات (API) للاتصال بملف إدارة على Google Sheets؟ لدي فكرة حول استخدام هذا TC في إدارة وإنشاء مسارد متعددة.

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

لقد أرسلت صورة مرفقة وتتكرر 3 مرات لكلمة رئيسية واحدة. آمل أن يتم إصلاح هذا الجزء في التحديث القادم.

3 إعجابات

مرحباً! شكراً على الإضافة الرائعة!

سؤال سريع: هل لا يزال بإمكانه مطابقة الكلمات حتى لو لم تكن هناك مسافات قبلها أو بعدها؟ أتذكر أنه كان يطابق دون الحاجة إلى مسافات حول الكلمة.

إعجابَين (2)

مرحباً، هل هناك طريقة لتعيين الروابط على target=“_self”؟ بشكل افتراضي، تفتح جميعها في علامة تبويب جديدة (target=“_blank”)، ولكن لم أتمكن من العثور على أي إعداد لتغيير ذلك.

شكراً جزيلاً

https://meta.discourse.org/my/preferences/interface

وابحث عن Open all external links in a new tab. يتم تعطيله افتراضيًا لأنه أفضل ممارسة. يمكنك استخدام /admin/site_settings/category/all_results?filter=external%20links لتغيير الإعداد الافتراضي لجميع المستخدمين.

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

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

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

عفوًا. آسف. لم ألاحظ ذلك. أنت على حق. تم ترميزها بشكل ثابت على الفراغ:

يبدو هذا طلب ميزة معقولًا بالنسبة لي.

انتظر. لم أكن أدفع حقًا الانتباه. إذا كان هناك خيار مبرمج بشكل ثابت، يتجاهل تفضيلات المستخدم، فيجب أن يكون الفتح في نفس النافذة. هذا هو أفضل ممارسة. وإذا كانت الروابط المربوطة تذهب إلى Discouse وليس إلى مكان خارجي، فإنها سلوك غير متوقع أكثر أن تفتح في علامة تبويب جديدة.

3 إعجابات

لقد حاولت إصلاح هذا باستخدام JavaScript (الكود أدناه)، ولكنه يعمل بشكل متقطع فقط. أعتقد أن Ember.js قد يتعارض معه. لذا فهو ليس مثاليًا

	window.addEventListener("load", function() {
		document.querySelectorAll("a.linkify-word.no-track-link").forEach(function(link) {
			link.removeAttribute("target");
		});
	});

سيكون الحل الأفضل هو عمل نسخة من مكون السمة و/أو تقديم طلب سحب (PR).

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

لا أعرف ما قيمته، لكنني سألت ChatGPT عن طريقة لإضافة مربع اختيار في الخلفية للتبديل بين target=“_self” و target=“_blank”. إليك ما اقترحه:

الكود الخاص بـ settings.yaml:

self_target:
  type: bool
  default: false
  client: true

الكود الخاص بـ initialize-discourse-linkify.js:

  let createLink = function (text, url) {
	let link = document.createElement("a");
	link.innerHTML = text;
	link.href = url;
	link.rel = "nofollow";
	link.target = settings.self_target ? "_self" : "_blank"; // استخدم الإعداد الإداري هنا
	link.className = "linkify-word no-track-link";
	return link;
  };

هل تعتقد أن هذا قد ينجح؟