Auto-Linkify Mots

Probablement parce que les gens ne le savent pas. J’ai été référé à ce post à la recherche d’une solution pour lier les mots de recherche à des sujets et ma réaction par défaut a été d’installer ce composant. Je n’avais même pas réalisé que les mots surveillés existaient. C’est tellement cool tout ce que j’apprends sur Discourse à chaque fois que j’essaie de l’optimiser.

Si cela vous convient, je vais modifier le premier post pour informer les gens que les mots surveillés existent et qu’ils pourraient convenir d’emblée. De plus, ce thème est marqué comme officiel, donc s’il fait double emploi avec les mots surveillés, peut-être envisager de le déprécier ou de l’indiquer sur le premier post.

1 « J'aime »

J’ai une demande de fonctionnalité. Ce serait formidable si cela ne s’appliquait qu’au texte du corps et non aux titres, cela a l’air ridicule quand un mot dans un titre est lié :

Parfois, il y a trop de mots identiques à transformer en liens dans un long contenu.
Je pense qu’il serait préférable d’afficher uniquement le premier dans le contenu. Les autres pourraient être en gras, au lieu d’être des liens.

2 « J'aime »

Il semble que vous devriez pouvoir le faire en ajoutant h1, h2 et autres dans le paramètre « tags exclus » de l’extension, non ?

Merci Matt, je pense que vous voulez dire classes exclues, que je n’avais pas remarquées auparavant, mais malheureusement, celles-ci ne fonctionnent pas, donc je suppose qu’il s’agit d’un rapport de bug plutôt que d’une demande de fonctionnalité.

La capture d’écran que j’ai publiée précédemment est un h2 avec la classe anchor.

Non, je parlais des balises. Ce sont des balises HTML, pas des balises de sujet de discussion, si je comprends bien.

En effet, vous avez raison ! Merci Matt. J’étais trop focalisé sur les balises en tant que balises de discussion. J’apprécie votre aide.

1 « J'aime »

Pouvez-vous me dire s’il est possible d’importer plusieurs mots linkify en même temps ou d’utiliser l’API pour se connecter à un fichier de gestion sur Google Sheets ? J’ai une idée sur l’utilisation de ce TC pour gérer et créer plusieurs glossaires.

Je trouve ce composant de thème intéressant et utile, mais il lie les mots-clés trop souvent. Le lier correctement ne consiste qu’à lier le premier mot pour réduire le spam.

J’ai envoyé une image jointe et elle se répète 3 fois pour 1 mot-clé. J’espère que cette partie sera corrigée dans la prochaine mise à jour.

3 « J'aime »

Salut ! Merci pour ce super plugin !

Petite question : peut-il toujours trouver des mots même s’ils n’ont pas d’espaces avant ou après eux ? Je me souviens qu’il trouvait les mots sans avoir besoin d’espaces autour.

2 « J'aime »

Bonjour, y a-t-il un moyen de définir les liens sur target="_self" ? Par défaut, ils s’ouvrent tous dans un nouvel onglet (target="_blank"), mais je n’ai trouvé aucun paramètre pour changer cela.

Merci beaucoup.

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

et recherchez Ouvrir tous les liens externes dans un nouvel onglet. Il est désactivé par défaut car c’est la meilleure pratique. Vous pouvez utiliser /admin/site_settings/category/all_results?filter=external%20links pour modifier la valeur par défaut pour tous les utilisateurs.

1 « J'aime »

La préférence fonctionne pour les liens normaux dans la publication, mais pour moi, ceux créés par ce composant s’ouvrent toujours dans un nouvel onglet. La préférence modifie-t-elle le comportement des liens créés par ce composant pour vous ? Je me demande ce qui me manque.

1 « J'aime »

Oups. Désolé. Je ne l’avais pas remarqué. Vous avez raison. C’est codé en dur pour s’ouvrir dans un nouvel onglet :

Cela me semble être une demande de fonctionnalité raisonnable.

Attendez. Je n’ai vraiment pas fait attention. S’il doit y avoir une option codée en dur, ignorant les préférences de l’utilisateur, ce devrait être pour s’ouvrir dans la même fenêtre. C’est la meilleure pratique. Et si les liens “linkifiés” mènent à Discourse et non à un site externe, alors qu’ils s’ouvrent dans un nouvel onglet est un comportement encore plus inattendu.

3 « J'aime »

J’ai essayé de résoudre ce problème avec JavaScript (code ci-dessous), mais cela ne fonctionne que de temps en temps. Je pense qu’Ember.js pourrait entrer en conflit avec. Ce n’est donc pas idéal


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

Une meilleure solution serait de forker le composant de thème et/ou de soumettre une PR.

1 « J'aime »

Je ne sais pas ce que ça vaut, mais j’ai demandé à ChatGPT une façon d’ajouter une case à cocher backend pour basculer entre target="_self" et target="_blank". Voici ce qu’il a suggéré :

Code pour settings.yaml :

self_target:
  type: bool
  default: false
  client: true

Code pour 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"; // Utiliser le paramètre admin ici
	link.className = "linkify-word no-track-link";
	return link;
  };

Pensez-vous que cela pourrait fonctionner ?