Auto-Linkify Mots

Linkify fonctionne presque exactement comme je le souhaite :

/TBI\s*\W?(\d*)/,https://tbi.example.com/tbi/$1/

Cela couvre les « numéros TBI » saisis par les utilisateurs sous de nombreuses formes différentes :

  • TBI 17
  • TBI-17
  • TBI17
  • TBI -17
  • TBI*17
  • etc.

J’aime cette flexibilité.

Malheureusement, cela ne gère pas la manière canonique de saisir ces numéros :

  • TBI #17

Il semble que rien de ce que je puisse faire ne permette de faire correspondre correctement le # (dièse, antislash, signe dièse, octothorp, symbole de jeu de tic-tac-toe, signe de livre). J’ai essayé

/TBI\s*#?(\d*)/,https://tbi.example.com/tbi/$1/
/TBI\s*\#?(\d*)/,https://tbi.example.com/tbi/$1/

bien sûr, mais cela ne fonctionne pas ; même un joker complet ne fonctionne pas :

/TBI\s*.?(\d*)/,https://tbi.example.com/tbi/$1/

Il me semble que la fonctionnalité de menu contextuel de catégorie prend le relais et empêche Linkify de faire son travail de correspondance — même lorsque l’utilisateur ne choisit aucune des catégories proposées.

Est-ce un comportement attendu ou un bug ? Quelqu’un connaît-il un moyen de contourner ce problème ?

Oui, si vous inspectez le code source HTML, Discourse semble placer tout ce qui est précédé d’un dièse dans un élément span séparé, ce qui rompt le flux du thème linkify. Je ne pense pas qu’il y ait de solution facile pour cela, désolé. :frowning: Vous devrez probablement bifurquer le thème et le personnaliser spécifiquement pour ce cas, à moins que quelqu’un n’ait une meilleure idée.

Ce plug fonctionne bien, merci. Cependant, il ne fonctionne pas en combinaison avec abrify.
Est-il possible que le lien fonctionne également avec la balise ajoutée par ce plugin :
GitHub - metabrainz/discourse-abbrify-words: Discourse theme component for automatically adding <abbr> to abbreviations and acronyms · GitHub.

Je pense que le problème vient du fait que le plugin abbrify ignore les balises lien par défaut. Vous pouvez essayer de le corriger en modifiant le code et en supprimant la ligne 16 dans head_tag.html :

'a': 1,

Faites-moi savoir si cela a fonctionné ou si vous avez besoin de plus d’aide. :slightly_smiling_face:

2 « J'aime »

Cela semble fonctionner, merci beaucoup.

Au fait, est-ce que cela fait une différence si cela édite uniquement dans le modèle CSS/HTML au lieu de directement depuis GitHub ?

Oui, vous devez faire attention lors de la mise à jour du composant de thème depuis GitHub, car cela écrasera vos modifications locales dans le CSS/HTML.

3 « J'aime »

Merci, je me demande s’il est possible de faire la même chose, mais en ajoutant une classe différente à la place de l’attribut abriffy, par exemple dfn data-info ou span aria-label ou un autre de ce type

par exemple pour jouer avec le contenu : attr()

Oui, tout à fait. Tu peux essayer de jouer avec la fonction createAbbr (ou avec la fonction correspondante dans le thème linkify)

1 « J'aime »

Vraiment bien. Je vais devoir y jouer un peu.
Je suppose qu’il y a beaucoup de possibilités ici. Avez-vous une idée de la façon d’utiliser JSON et l’API d’une certaine manière ?

Par exemple, pour pouvoir afficher des mots abréviés et d’autres données sur WordPress via l’API ?

Je ne suis pas sûr de ce que vous voulez dire. Pourriez-vous être plus précis sur ce que vous essayez d’accomplir ? Les composants de thème s’exécutent dans Discourse, il n’existe pas d’API pour les utiliser ailleurs. Cependant, vous devriez, dans la plupart des cas, pouvoir utiliser le code JavaScript en le copiant simplement ailleurs et en modifiant les parties spécifiques à Discourse.

Existe-t-il un moyen d’exclure le contenu des oneboxes de la création de liens ?

1 « J'aime »

Vous pouvez essayer d’ajouter la balise <aside> dans les paramètres des balises ignorées. Bien que je ne sois pas certain que tous les oneboxes soient placés à l’intérieur de <aside>. Nous pourrions peut-être avoir besoin d’un filtre basé sur le nom de classe,

@sam, qu’en pensez-vous ? :arrow_double_up: Cela semblerait être un comportement par défaut raisonnable (pas de lien automatique dans les oneboxes).

4 « J'aime »

Un paramètre de filtre basé sur les classes semble parfait ; par défaut, nous devrions exclure une boîte.

7 « J'aime »

D’accord, je vais essayer de soumettre une PR la semaine prochaine.

2 « J'aime »

Bonjour, j’ai installé avec succès ce composant de thème pour mon thème par défaut Light aujourd’hui. Cependant, cela ne fonctionne pas pour moi.

J’ai essayé des expressions régulières et les mots liés par défaut (discourse et meta). Aucun des deux n’a fonctionné.

J’ai installé la version v2.3.0.beta2 +256. Avez-vous des conseils pour déboguer ce problème ? Merci d’avance :slight_smile:

1 « J'aime »

Nous avons récemment effectué un refactoring du code, et il est possible que vous deviez mettre à jour votre Discourse (ce qui est d’ailleurs pratique, puisque la version 2.4 vient tout juste d’être publiée :slightly_smiling_face:)

6 « J'aime »

La fonctionnalité de liaison automatique dans les oneboxes devrait désormais être désactivée par défaut. @jrgong Pourriez-vous mettre à jour votre thème et l’essayer ?

1 « J'aime »

Il semble que cela n’ait pas été résolu ? Je pensais pouvoir créer une sauvegarde en exportant le composant depuis l’interface d’administration, mais l’export n’inclut pas les paramètres personnalisés.

Une idée : Et si le paramètre, avec toutes ses lignes, se transformait en zone de texte éditable au double-clic ? Similaire aux éditeurs Modifier CSS/HTML ? Cela faciliterait grandement la sauvegarde/exportation ainsi que l’importation d’une liste d’éléments, un élément par ligne.

Avant :

Au double-clic :

Sur un autre sujet : vous remarquerez peut-être certaines expressions régulières étranges, mais vous ne pouvez pas utiliser | dans ces champs de paramètres. Peut-être que cela pourrait être résolu avec la proposition ci-dessus.

3 « J'aime »

Re-bonjour mon pote ! Comment penses-tu transformer des mots/liens (via le plugin linkify/abrify) en image(s) ?

Probablement pas possible avec le plugin actuel, mais cela ne devrait pas être difficile de modifier le plugin pour générer des balises au lieu de .

1 « J'aime »