Componente tema Reftagger

La libreria Reftagger ti consente di convertire i riferimenti biblici presenti sul tuo forum Discourse in link con un’anteprima al passaggio del mouse.

Su richiesta di @outofthebox, abbiamo creato un componente del tema basato su questo codice.

Ho aggiunto un’impostazione che ti permette di selezionare la traduzione desiderata e il componente estende la policy di sicurezza dei contenuti per includere la libreria Reftagger.

Repository qui.

13 Mi Piace

@RGJ, our community loves this feature. Thank you for developing in a secure and customizable manner. I appreciate your generosity in sharing this work back to the Discourse community.

5 Mi Piace

We’ve been using that for the last 18 months or so, and it’s worked like a charm. Happy to see it improved and made more easily available!

3 Mi Piace

Wow, that’s super cool.

I would love to see a similar component in which custom keywords and previews can be defined.
That would be super useful to create a glossary for example

1 Mi Piace

There is the auto abbrify words theme component which does such a thing.

3 Mi Piace

I really appreciate you and everyone who contributed to the original conversation on Meta about how to make this feature work!

2 Mi Piace

Ciao a tutti, Reftagger funzionava perfettamente per alcuni mesi, e poi ha smesso di funzionare. Genera ancora automaticamente un collegamento esterno per il formato libro/capitolo/versetto, ma non carica l’anteprima al passaggio del mouse.

Sembra anche che sia aggiornato. Avete qualche idea?

1 Mi Piace

Quale versione di Discourse stai utilizzando?

1 Mi Piace

Come posso trovare queste informazioni?

Dovrebbe essere da qualche parte nella dashboard di amministrazione in /admin

Dice semplicemente che è aggiornato:

1 Mi Piace

Per me sembra funzionare bene su Discourse 2.7.7 (almeno su Safari).

Funziona di nuovo ora.
Reftagger sembra essere passato a un CDN diverso (reftagger.bibliacdn.com), che doveva essere inserito nella whitelist della policy di sicurezza dei contenuti. L’ho aggiunto e ho pubblicato una nuova versione del componente del tema. Tutto quello che devi fare è aggiornare il componente.

3 Mi Piace

Eccolo, grazie signore :slightly_smiling_face:

1 Mi Piace

Ciao Richard,

Sto riesaminando un vecchio thread. Ho installato questo componente del tema e stanno succedendo due cose.

La prima è il messaggio che il componente necessita di un aggiornamento.
[Avviso Admin] Il tema ‘Reftagger’ contiene codice che necessita di un aggiornamento. (id:discourse.script-tag-discourse-plugin) (Scopri di più)

La seconda potrebbe essere correlata al primo avviso in cui il componente necessita di un aggiornamento. I riferimenti non vengono contrassegnati e le pagine sembrano bloccarsi mostrando il cerchio di caricamento nella scheda del browser.

Sarebbe possibile aggiornare questo componente?

Ho fatto dei progressi con questo usando ChatGPT e ho dei reftagger funzionanti sia per Logos RefTagger che per Blue Letter Bible.

Se questi potessero essere raggruppati in un componente tematico per l’uso della community, sarebbe fantastico, altrimenti il componente tematico serve semplicemente a realizzarlo. Devi solo prendere il codice per quello che preferisci e inserirlo nella scheda JS di un nuovo componente tematico. Devi rimuovere il codice predefinito che si trova nella scheda JS di Discourse.

Se qualcuno ha feedback su come migliorare, è ben accetto. Le mie capacità si limitano a guidare l’LLM.

Usando Logos RefTagger:

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

export default apiInitializer("0.1", (api) => {
  // 1. Define RefTagger settings on window BEFORE loading the script
  window.refTagger = {
    settings: {
      bibleVersion: "ESV",       // e.g. default Bible version
      tagChapters: true,         // tag chapter references as well
      convertHyperlinks: false,  // don’t retag existing links
      roundCorners: true,
      socialSharing: [ ],
    }
  };

  // 2. Hook into Discourse post rendering:
  api.decorateCooked((element) => {
    // Load the external RefTagger script (if not already loaded)
    loadScript("https://api.reftagger.com/v2/RefTagger.js").then(() => {
      // Run the tagging on the new content element
      window.refTagger.tag(element);
    });
  });
});

Usando BLB ScriptTagger:

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

export default apiInitializer("0.1", (api) => {
  // Optionally set BLB ScriptTagger settings before loading (defaults shown)
  window.BLB ||= {};                   // ensure global BLB object exists
  window.BLB.Tagger ||= {};
  window.BLB.Tagger.Translation = "NKJV";        // default translation version
  window.BLB.Tagger.HyperLinks = "all";          // tag even already-linked refs
  window.BLB.Tagger.TargetNewWindow = true;      // links open in new tab
  // … (other settings like DarkTheme, etc., as needed)

  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();  // re-scan new content for verses:contentReference
        }
      });
  });
});

Questo è stato risolto ora.

Questo non riesco a riprodurlo, nemmeno prima di risolvere il problema sopra menzionato, che era solo un avviso, non un errore.

3 Mi Piace

Molto grato per l’aggiornamento!

2 Mi Piace