Auto-Linkify Parole

Probabilmente perché la gente non lo sa, mi è stato rimandato a questo post cercando una soluzione per collegare parole di ricerca ad argomenti e la mia reazione predefinita è stata quella di installare questo componente. Non mi ero nemmeno reso conto che esistessero le parole chiave monitorate. È fantastico quanto imparo su Discourse ogni volta che cerco di ottimizzarlo.

Se sei d’accordo, modificherò il primo post per far sapere alla gente che esistono le parole chiave monitorate e che potrebbero essere una soluzione pronta all’uso. Inoltre, questo tema è contrassegnato come ufficiale, quindi se è un duplicato di parole chiave monitorate, forse considera di deprecandolo o di indicarlo nel primo post.

1 Mi Piace

Ho una richiesta di funzionalità. Sarebbe meraviglioso se potessimo applicarla solo al testo del corpo e non alle intestazioni, sembra sciocco quando una parola in un’intestazione è collegata:

A volte, ci sono troppe parole linkify uguali in contenuti lunghi.
Penso che sarebbe meglio visualizzare solo la prima nel contenuto. Le altre potrebbero essere in grassetto, invece di link.

2 Mi Piace

Sembra che dovresti essere in grado di farlo aggiungendo h1, h2 e altri alle impostazioni "tag esclusi" nell’estensione, no?

Grazie Matt, penso che tu intenda classi escluse, che in qualche modo non avevo notato prima, ma sfortunatamente queste non funzionano, quindi immagino che questo sia un bug report piuttosto che una richiesta di funzionalità.

Lo screenshot che ho pubblicato in precedenza è un h2 con classe anchor.

No, intendevo i tag. Quelli sono tag HTML, non tag di argomento di discussione, per quanto ne so.

Hai perfettamente ragione! Grazie Matt. Ero troppo concentrato sui tag come tag di discussione. Apprezzo il tuo aiuto.

1 Mi Piace

È possibile importare più parole linkify contemporaneamente o utilizzare l’API per connettersi a un file di gestione su Google Sheets? Ho un’idea su come utilizzare questo TC per gestire e creare più glossari.

Trovo questo componente tematico interessante e utile, ma collega le parole chiave troppe volte, collegarlo correttamente è solo collegare la prima parola per ridurre lo spam.

Ho inviato un’immagine allegata e si ripete 3 volte per 1 parola chiave. Spero che questa parte venga corretta nel prossimo aggiornamento.

3 Mi Piace

Ciao! Grazie per l’ottimo plugin!

Una domanda veloce: può ancora trovare corrispondenze con parole anche se non hanno spazi prima o dopo di esse? Ricordo che una volta trovava corrispondenze senza bisogno di spazi attorno alla parola.

2 Mi Piace

Ciao, c’è un modo per impostare i link su target=“_self”? Per impostazione predefinita, si aprono tutti in una nuova scheda (target=“_blank”), ma non sono riuscito a trovare alcuna impostazione per cambiare questo.

Grazie mille

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

e cerca Apri tutti i link esterni in una nuova scheda. È disattivato per impostazione predefinita perché è la best practice. Puoi usare /admin/site_settings/category/all_results?filter=external%20links per cambiare l’impostazione predefinita per tutti gli utenti.

1 Mi Piace

L’impostazione funziona per i link normali nel post, ma per me quelli creati da questo componente si aprono sempre in una nuova scheda. L’impostazione cambia il comportamento dei link creati da questo componente per te? Mi chiedo cosa mi stia sfuggendo.

1 Mi Piace

Ops. Scusa. Non me ne ero accorto. Hai ragione. È codificato in modo fisso su blank:

Mi sembra una richiesta di funzionalità ragionevole.

Aspetta. Davvero non stavo prestando attenzione. Se ci deve essere un’opzione codificata in modo fisso, che ignora le preferenze dell’utente, dovrebbe essere quella di aprire nella stessa finestra. Questa è la best practice. E se i link linkificati vanno a Discourse e non a un sito esterno, allora è un comportamento ancora più inaspettato che si aprano in una nuova scheda.

3 Mi Piace

Ho provato a risolvere questo problema con JavaScript (codice sotto), ma funziona solo occasionalmente. Credo che Ember.js possa entrare in conflitto con esso. Quindi non è l’ideale

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

Una soluzione migliore sarebbe quella di eseguire il fork del componente del tema e/o inviare una PR.

1 Mi Piace

Non so quanto valga, ma ho chiesto a ChatGPT un modo per aggiungere una casella di controllo backend per passare da target="_self" a target="_blank". Ecco cosa ha suggerito:

Codice per settings.yaml:

self_target:
  type: bool
  default: false
  client: true

Codice per 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"; // Usa l'impostazione dell'amministratore qui
	link.className = "linkify-word no-track-link";
	return link;
  };

Pensi che possa funzionare?