Malheureusement, je rencontre toujours le problème. J’ai essayé de modifier l’ordre des expressions régulières dans les paramètres du thème, mais l’entrée la plus courte est toujours déclenchée en premier.
Bonjour @jrgong ! Avez-vous pu effectuer des téléchargements en lot à l’aide d’un fichier CSV ? J’essaie de comprendre, mais je ne suis pas tout à fait sûr d’où cliquer. Je ne suis pas développeur, au fait ![]()
Nous aussi. Je note que :
discourse,https://discourse.org
discourse meta,https://meta.discourse.org
meta discourse,https://meta.discourse.org
Nous donne :
discourse
discourse meta
meta discourse
L’ordre dans lequel ces éléments apparaissent dans les paramètres du thème (et vraisemblablement dans la base de données sous-jacente) ne semble pas faire de différence. En revanche, si vous étendez un mot déjà lié, cela prendra en compte la différence. Si vous ajoutez un mot devant, cela ne le fait pas.
Hmm, c’est un peu étrange. Tu as raison, l’ordre dans les paramètres ne devrait pas avoir d’importance, car nous trions les mots par longueur :
Je ne suis pas sûr de combien de temps il faudrait investir là-dedans, car, à ma connaissance, cette fonctionnalité est en cours de portage vers le cœur de Discourse.
Bonjour,
Je viens de remarquer que les mots transformés en liens n’ont pas le compteur de clics comme les autres liens (ce qui serait, à mon avis, une fonctionnalité intéressante). Est-ce intentionnel ou s’agit-il d’un bug ?
Cela peut-il être restreint à des catégories ou des balises spécifiques, de sorte qu’un article doit appartenir à une catégorie ou être balisé pour générer des liens ?
Est-il possible de spécifier un titre pour le lien ? Ainsi, « ghost » deviendrait « ghost (voir avertissement !) » ?
Peut-être en utilisant la syntaxe des liens Markdown :
ghost,[ghost (voir avertissement !)](https://warning.example.com)
Ou en spécifiant le titre comme troisième paramètre :
ghost,https://warning.example.com,ghost (voir avertissement !)
@Paracelsus le compteur de clics n’est pas pris en charge dans ce thème, désolé.
Ce n’est pas vraiment un bug : le thème n’est qu’un code JavaScript qui s’exécute dans votre navigateur. Il ne communique pas avec le serveur, il n’y a donc aucun moyen de stocker le nombre de clics.
Maintenant, dans Discourse, sous « Remplacer les mots » :
/admin/customize/watched_words/action/replace
Si je saisis simplement le mot, puis l’URL sans aucun markdown, cela fonctionne ! C’est donc la méthode pour que cela fonctionne sans le composant de thème autolink.
(Alors que dans le composant de thème, vous saisissez le mot ou l’expression, puis une virgule, puis le lien à utiliser, dans « Remplacer les mots surveillés », vous saisissez le mot dans un champ et UNIQUEMENT le lien dans un autre… n’essayez pas de saisir du markdown dans la chaîne de remplacement, comme je l’avais essayé initialement.)
Salut, c’est un super composant ! Merci de l’avoir créé.
Mais il y a un petit problème, il semble que la création de liens nécessite un espace après le mot spécifique, donc le composant ne fonctionne pas bien dans les instances Discourse en chinois et en japonais (peut-être aussi en coréen ? Je ne connais pas cette langue).
Je suis de langue maternelle chinoise et je parle aussi japonais. En chinois, il arrive que les gens utilisent des mots empruntés fixes dans les lettres, comme Apple, Office, BB (Blackboard), ADN, etc., dont la traduction est rarement utilisée dans la langue familière. Et nous n’ajoutons généralement pas d’espace avant/après ce type de mot lorsqu’il est entouré de chinois, dans l’écriture informelle.
Voici un exemple :
你会用Office吗?
Savez-vous utiliser la suite Office ?
C’est similaire en japonais.
革新に満ちたAppleの世界へようこそ。(copié du site officiel d’Apple Japon)
Bienvenue dans le monde d’Apple, plein de révolutions.
Je suis conscient que l’adaptation de ce composant pour ces deux langues pourrait demander beaucoup de travail, car cela pourrait entraîner des créations de liens involontaires dans les langues utilisant l’alphabet. Je signale donc simplement l’existence d’une petite imperfection. J’apprécie encore cette excellente idée de créer ce composant. ![]()
Cela fonctionne très bien. Est-il possible de l’exécuter rétroactivement, ou devez-vous rechercher manuellement tous les liens et les modifier ?
Vous devriez pouvoir refaire cuire ces publications. Vous pouvez cliquer sur la clé à molette et reconstruire le HTML. Lorsque vous voyez que cela fonctionne, vous pouvez rechercher comment refaire cuire les publications correspondantes à la tâche de cuisson.
En fait, ce thème transforme les liens des publications dynamiquement lorsqu’elles sont chargées dans le navigateur, il n’y a donc rien à faire. ![]()
Oh. Très cool. Je ne m’en étais pas rendu compte, mais c’est logique.
Le glossaire de notre logiciel de généalogie FOSS était trop étendu pour un article ou une mise en lien.
Si nous avions simplement mis en lien chaque terme du glossaire, chaque publication serait noyée dans une mer de liens bleus. Les utilisateurs seraient susceptibles d’arrêter de cliquer sur les liens. Et nous voulions une piste d’audit pour le glossaire.
J’ai donc mis en lien « Glossaire Gramps » vers cet article sur notre wiki propulsé par MediaWiki. Et j’utilise maintenant une annotation comme « (voir [terme du glossaire] dans le Glossaire Gramps) »
(Nous avons un 2e Glossaire de généalogie pour la terminologie générique au sujet de la généalogie plutôt que spécifique à notre logiciel.)
Quelque chose a-t-il été fait pour autoriser les pipes ?
J’utilise actuellement ceci comme solution de contournement :

De plus, existe-t-il un moyen d’exclure un monde de la création de liens lorsqu’il se trouve dans une classe exclue imbriquée plusieurs fois ?
Je construis un forum avec une catégorie Documentation, et je ne veux pas que les mots soient transformés en liens dans cette catégorie car ce serait redondant : les mots dans d’autres catégories seront transformés en liens et pointeront vers des sujets de cette catégorie de documentation.
De plus, les mots transformés en liens s’ouvrent dans une nouvelle fenêtre.
Donc, ceci n’a pas fonctionné :

Voici un exemple du problème auquel je suis confronté. C’est la partie d’un texte à l’intérieur d’un sujet de documentation.
Si je clique sur 22° halo, cela ouvrira une page qui renvoie vers… La même page, au même endroit.
Je peux exclure des mots dans les titres, surtout parce qu’il contient une table des matières, mais les paragraphes suivants n’ont pas de classe spécifique. Ce sont des paragraphes ordinaires.
Peut-être que le paramètre classe exclue pourrait accepter des sélecteurs CSS ?
Par exemple, d-toc-cooked > *
edit : De plus, je n’arrive pas à comprendre pourquoi cela ne fonctionne pas étant donné que mon mot est un enfant direct d’une classe exclue :
![]()
Le « 22° Halo » est toujours transformé en lien :
<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>
Est-ce parce que le code HTML de la table des matières pourrait être généré après la « transformation en lien » ?
Oui, c’est probablement le problème ici, ce sont tous deux des composants JavaScript donc vous avez une condition de concurrence et le résultat dépendra de celui qui s’exécute en premier.
J’ai ajouté une classe dans la liste autorisée HTML donc j’ai contourné le problème.
Cependant, pouvoir avoir un bouton attributs exclus pourrait permettre plus de flexibilité pour empêcher la création de liens à partir de mots, en utilisant l’attribut HTML intégré data-(n'importe quoi) puisqu’il est autorisé par défaut dans Discourse.
Exemple :
<span> text </span> → <span> text </span>
Une demande de tirage serait-elle acceptée si je parvenais à ajouter cela au composant de thème ?
Cela empêche malheureusement la création de liens pour les mots qui incluent explicitement l’un de ces caractères (en particulier le ., qui est utile pour lier les abréviations comme ID.1 ou id2.5).
Ceci est peut-être mieux corrigé dans le cœur du système, mais en attendant, voici une PR qui corrige les problèmes ci-dessus :
https://github.com/discourse/discourse-linkify-words/pull/21
Exemple de règle regex (correspondra à id1.1 à id10.100 (y compris les variations id m.n, IDm.n et ID m.n))
/(ID¦id)\\s?(([1-9]¦10)\\.([1-9]¦[1-9][0-9]¦100))/, https://example.com/id$2

