Composant de thème Reftagger

La bibliothèque Reftagger vous permet de convertir les références bibliques sur votre forum Discourse en liens avec un aperçu au survol.

À la demande de @outofthebox, nous avons créé un composant de thème basé sur ce code.

J’ai ajouté un paramètre qui vous permet de sélectionner la traduction que vous souhaitez utiliser, et le composant étend la politique de sécurité du contenu pour autoriser l’inclusion de la bibliothèque Reftagger.

Dépôt ici.

13 « J'aime »

@RGJ, notre communauté adore cette fonctionnalité. Merci de l’avoir développée de manière sécurisée et personnalisable. J’apprécie votre générosité à partager ce travail avec la communauté Discourse.

5 « J'aime »

Nous l’utilisons depuis environ 18 mois et cela a fonctionné à merveille. Nous sommes ravis de le voir amélioré et plus facilement accessible !

3 « J'aime »

Wow, c’est super cool.

J’aimerais beaucoup voir un composant similaire permettant de définir des mots-clés et des aperçus personnalisés.
Ce serait super utile pour créer un glossaire, par exemple.

1 « J'aime »

Il existe un composant de thème auto abbrify words qui fait exactement cela.

3 « J'aime »

Je vous remercie sincèrement, ainsi que tous ceux qui ont contribué à la conversation originale sur Meta concernant la mise en œuvre de cette fonctionnalité !

2 « J'aime »

Bonjour à tous, Reftagger fonctionnait parfaitement pendant quelques mois, puis il s’est simplement arrêté. Il génère toujours automatiquement un lien externe pour le format livre/chapitre/verset, mais il ne charge plus l’aperçu au survol.

Il semble également à jour. Des idées ?

1 « J'aime »

Quelle version de Discourse utilisez-vous ?

1 « J'aime »

Comment puis-je trouver ces informations ?

Cela devrait se trouver quelque part dans le tableau de bord d’administration à /admin.

Il indique simplement qu’il est à jour :

1 « J'aime »

Ça semble fonctionner correctement sur Discourse 2.7.7 (du moins sur Safari) pour moi.

Ça fonctionne à nouveau maintenant.
Reftagger est apparemment passé à un autre CDN (reftagger.bibliacdn.com), qui devait être autorisé dans la politique de sécurité du contenu. Je l’ai ajouté et j’ai publié une nouvelle version du composant de thème. Tout ce que vous avez à faire, c’est mettre à jour le composant.

3 « J'aime »

Là, c’est fait, merci monsieur :slightly_smiling_face:

1 « J'aime »

Salut Richard,

Je déterre un vieux fil de discussion. J’ai installé ce composant de thème et deux choses se produisent.

Premièrement, le message indiquant que le composant doit être mis à jour.
[Avis d’administration] Le thème ‘Reftagger’ contient du code qui doit être mis à jour. (id:discourse.script-tag-discourse-plugin) (en savoir plus)

Deuxièmement, cela pourrait être lié à la première notification où le composant doit être mis à jour. Les références ne sont pas étiquetées et les pages semblent se bloquer en affichant le cercle de chargement dans l’onglet du navigateur.

Serait-il possible de faire mettre à jour ce composant ?

J’ai fait des progrès avec cela en utilisant ChatGPT et j’ai des reftaggers fonctionnels pour les deux en utilisant Logos RefTagger et Blue Letter Bible.

Si ceux-ci pouvaient être regroupés dans un composant de thème pour une utilisation par la communauté, c’est génial, sinon le composant de thème est simplement à faire. Il vous suffit de prendre le code de celui que vous préférez et de le mettre dans l’onglet JS d’un nouveau composant de thème. Vous devez supprimer le code par défaut qui se trouve dans l’onglet JS de Discourse.

Si quelqu’un a des commentaires sur la façon d’améliorer, c’est bienvenu. Mes compétences ne vont que jusqu’à guider le LLM.

Utilisation de Logos RefTagger :

import { apiInitializer } from "discourse/lib/api";
import loadScript from "discourse/lib/load-script";

export default apiInitializer("0.1", (api) => {
  // 1. Définir les paramètres de RefTagger dans window AVANT de charger le script
  window.refTagger = {
    settings: {
      bibleVersion: "ESV", // par exemple, version biblique par défaut
      tagChapters: true, // marquer également les références de chapitre
      convertHyperlinks: false, // ne pas retaguer les liens existants
      roundCorners: true,
      socialSharing: [],
    },
  };

  // 2. Se connecter au rendu des posts de Discourse :
  api.decorateCooked((element) => {
    // Charger le script externe RefTagger (s'il n'est pas déjà chargé)
    loadScript("https://api.reftagger.com/v2/RefTagger.js").then(() => {
      // Exécuter le marquage sur le nouvel élément de contenu
      window.refTagger.tag(element);
    });
  });
});

Utilisation de BLB ScriptTagger :

import { apiInitializer } from "discourse/lib/api";
import loadScript from "discourse/lib/load-script";

export default apiInitializer("0.1", (api) => {
  // Optionnellement, définir les paramètres de BLB ScriptTagger avant le chargement (valeurs par défaut indiquées)
  window.BLB ||= {}; // s'assurer que l'objet global BLB existe
  window.BLB.Tagger ||= {};
  window.BLB.Tagger.Translation = "NKJV"; // version de traduction par défaut
  window.BLB.Tagger.HyperLinks = "all"; // marquer même les références déjà liées
  window.BLB.Tagger.TargetNewWindow = true; // les liens s'ouvrent dans un nouvel onglet
  // ... (autres paramètres comme DarkTheme, etc., selon les besoins)

  api.decorateCooked((elem) => {
    loadScript("https://www.blueletterbible.org/assets/scripts/blbToolTip/BLB_ScriptTagger-min.js")
      .then(() => {
        if (window.BLB && window.BLB.Tagger) {
          window.BLB.Tagger.pageInit(); // réanalyser le nouveau contenu pour les versets
        }
      });
  });
});

Ceci est maintenant résolu.

Je ne peux pas reproduire cela, même avant de résoudre le problème ci-dessus - qui n’était qu’un avertissement, pas une erreur.

3 « J'aime »

Très reconnaissant pour la mise à jour !

2 « J'aime »