Auto-Linkify Words

おそらく、人々が知らないからでしょう。私はリンク検索語をトピックにリンクのソリューションを探していて、この投稿に紹介されました。そして、私の最初の反応はこのコンポーネントをインストールすることでした。監視単語が存在することにさえ気づきませんでした。それを最適化しようとするたびに、Discourseについてどれだけ多くを学べるかは素晴らしいことです。

よろしければ、監視単語が存在し、すぐに使える可能性があることを人々に知らせるために、最初の投稿を編集します。また、このテーマは公式としてマークされているため、監視単語の重複である場合は、廃止を検討するか、最初の投稿にその旨を示すことを検討してください。

「いいね!」 1

機能リクエストがあります。これは本文テキストにのみ適用され、見出しには適用されないようにしていただけると素晴らしいです。見出しの単語が1つだけリンクされていると、奇妙に見えます。

長いコンテンツでは、同じリンク化単語が多すぎることがあります。
コンテンツの最初のものだけを表示するのが良いと思います。他はリンクの代わりに太字にすることができます。

「いいね!」 2

拡張機能の「除外タグ」設定に h1h2 などを追加すれば、それが可能になるのではないでしょうか?

マット、ありがとうございます。おそらく excluded classes のことだと思いますが、なぜか気づきませんでした。残念ながら、これは機能しないため、機能リクエストではなくバグレポートになると思います。

先ほど投稿したスクリーンショットは、アンカークラスを持つh2です。

いいえ、タグのことです。私の理解では、それらはHTMLタグであり、ディスコースのトピックタグではありません。

おっしゃる通りです!ありがとうございます、マットさん。ディスコースタグにこだわりすぎていました。ご協力に感謝いたします。

「いいね!」 1

一度に複数のリンク化単語をインポートすることは可能ですか、それともGoogleスプレッドシート上の管理ファイルに接続するためにAPIを使用できますか?このTCを使用して複数の用語集を管理および作成するアイデアがあります。

このテーマコンポーネントは興味深く便利だと思いますが、キーワードが多すぎます。スパムを減らすために、最初の単語のみを正しく添付します。

キーワード1つに対して画像が3回添付されていました。次のアップデートで修正されることを願っています。

「いいね!」 3

こんにちは!素晴らしいプラグインをありがとうございます!

簡単な質問ですが、単語の前後にスペースがなくても単語を一致させることができますか?単語の周りにスペースがなくても一致したことを覚えています。

「いいね!」 2

こんにちは、リンクを target=“_self” に設定する方法はありますか?デフォルトではすべて新しいタブで開かれます (target=“_blank”) が、これを変更する設定が見つかりませんでした。

よろしくお願いします。

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

「すべての外部リンクを新しいタブで開く」を検索します。これはベストプラクティスではないため、デフォルトではオフになっています。すべてのユーザーのデフォルトを変更するには、/admin/site_settings/category/all_results?filter=external%20links を使用できます。

「いいね!」 1

この設定は、投稿内の通常のリンクには機能しますが、このコンポーネントによって作成されたリンクは常に新しいタブで開きます。この設定は、このコンポーネントによって作成されたリンクの動作をあなたにとって変更しますか?何が足りないのか不思議です。

「いいね!」 1

おっと。すみません。気づきませんでした。おっしゃる通りです。これはハードコーディングされていて、blankになっています。

これはもっともな機能リクエストだと思います。

待ってください。本当に注意を払っていませんでした。ユーザーの設定を無視してハードコーディングされたオプションがある場合、それは同じウィンドウで開くべきです。それがベストプラクティスです。そして、リンク化されたリンクが外部ではなくDiscourseに移動する場合、新しいタブで開くのはさらに予期しない動作です。

「いいね!」 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;
  };

これは機能すると思いますか?