Componente de tema Reftagger

The Reftagger library allows you to convert bible references on your Discourse forum into links with a hover-preview.

By request of @outofthebox we made a theme component based on this code.

I’ve added a setting that allows you to select the translation you want to use, and the component extends the content security policy to allow for the reftagger library to be included.

Repository here.

13 Me gusta

@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 Me gusta

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 Me gusta

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 me gusta

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

3 Me gusta

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

2 Me gusta

Hello everyone, Reftagger was working swimmingly for a few months, and then it just stopped. It will still automatically generate an external link for the book/chapter/verse format, but it will not load the hover preview.

It appears to be up to date too. Any ideas?

1 me gusta

What Discourse version are you running?

1 me gusta

How can I find this info?

It should be somewhere in the admin dashboard at /admin

It just says that it is up to date:

1 me gusta

Seems to be working fine on Discourse 2.7.7 (at least in Safari) for me.

It’s working again now.
Reftagger apparently switched to a different CDN (reftagger.bibliacdn.com) which had to be whitelisted in the content security policy. I have added it and pushed a new version of the theme component. All you need to do is update the component.

3 Me gusta

There it is, thank you sir :slightly_smiling_face:

1 me gusta

Hola Richard,

Estoy revisando un hilo antiguo. Instalé este componente de tema y están sucediendo dos cosas.

Primero es el mensaje de que el componente necesita actualizarse.
[Aviso de administrador] El tema ‘Reftagger’ contiene código que necesita actualizarse. (id:discourse.script-tag-discourse-plugin) (aprender más)

Segundo puede estar relacionado con el primer aviso, donde el componente necesita actualizarse. Las referencias no se están etiquetando y las páginas parecen quedarse colgadas mostrando el círculo de carga en la pestaña del navegador.

¿Sería posible actualizar este componente?

He avanzado un poco con esto usando ChatGPT y tengo reftaggers funcionales para ambos usando Logos RefTagger y Blue Letter Bible.

Si estos pudieran incluirse en un componente de tema para uso de la comunidad, sería genial. Si no, el componente de tema es simplemente para hacer. Solo necesita tomar el código de cualquiera que prefiera y colocarlo en la pestaña JS de un nuevo componente de tema. Debe eliminar el código predeterminado que se encuentra en la pestaña JS de Discourse.

Si alguien tiene comentarios sobre cómo mejorar, son bienvenidos. Mis habilidades solo llegan hasta guiar al 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 los ajustes de RefTagger en window ANTES de cargar el script
window.refTagger = {
settings: {
bibleVersion: “ESV”, // p. ej. versión bíblica predeterminada
tagChapters: true, // etiquetar también las referencias de capítulos
convertHyperlinks: false, // no volver a etiquetar enlaces existentes
roundCorners: true,
socialSharing: ,
}
};

// 2. Engancha la renderización de publicaciones de Discourse:
api.decorateCooked((element) => {
// Carga el script externo de RefTagger (si aún no está cargado)
loadScript(“https://api.reftagger.com/v2/RefTagger.js”).then(() => {
// Ejecuta el etiquetado en el nuevo elemento de contenido
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) => {
// Opcionalmente, establezca la configuración de BLB ScriptTagger antes de cargar (se muestran los valores predeterminados)
window.BLB ||= {}; // asegúrese de que exista el objeto global BLB
window.BLB.Tagger ||= {};
window.BLB.Tagger.Translation = “NKJV”; // versión de traducción predeterminada
window.BLB.Tagger.HyperLinks = “all”; // etiquetar incluso las referencias ya enlazadas
window.BLB.Tagger.TargetNewWindow = true; // los enlaces se abren en una nueva pestaña
// … (otras configuraciones como DarkTheme, etc., según sea necesario)

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-escanear nuevo contenido para versículos:contentReference[oaicite:6]{index=6}
}
});
});
});

Esto se ha resuelto ahora.

Esto no puedo reproducirlo, incluso antes de resolver el problema anterior, que era solo una advertencia, no un error.

3 Me gusta

¡Muy agradecido por la actualización!

2 Me gusta