Componente de tema Reftagger

La biblioteca Reftagger le permite convertir referencias bíblicas en su foro Discourse en enlaces con una vista previa al pasar el cursor.

A solicitud de @outofthebox, creamos un componente de tema basado en este código.

He añadido una configuración que le permite seleccionar la traducción que desea utilizar, y el componente amplía la directiva de seguridad de contenido para permitir que se incluya la biblioteca Reftagger.

Repositorio aquí.

13 Me gusta

@RGJ, a nuestra comunidad le encanta esta función. Gracias por desarrollarla de manera segura y personalizable. Agradezco tu generosidad al compartir este trabajo con la comunidad de Discourse.

5 Me gusta

Hemos estado usando eso durante los últimos 18 meses aproximadamente, y ha funcionado a la perfección. ¡Nos alegra verlo mejorado y más accesible!

3 Me gusta

¡Vaya, eso es súper genial.

Me encantaría ver un componente similar en el que se puedan definir palabras clave y vistas previas personalizadas.
Eso sería muy útil para crear, por ejemplo, un glosario.

1 me gusta

Existe el componente de tema auto abbrify words que hace exactamente eso.

3 Me gusta

¡Realmente aprecio a ti y a todos los que contribuyeron a la conversación original en Meta sobre cómo hacer que esta función funcione!

2 Me gusta

¡Hola a todos! Reftagger funcionó perfectamente durante unos meses y luego simplemente dejó de hacerlo. Aún genera automáticamente un enlace externo para el formato libro/capítulo/versículo, pero no carga la vista previa al pasar el cursor.

Parece que también está actualizado. ¿Alguna idea?

1 me gusta

¿Qué versión de Discourse estás ejecutando?

1 me gusta

¿Cómo puedo encontrar esta información?

Debería estar en algún lugar del panel de administración en /admin.

Solo dice que está actualizado:

1 me gusta

Parece que funciona bien en Discourse 2.7.7 (al menos en Safari) para mí.

Ya está funcionando de nuevo.
Parece que Reftagger cambió a una CDN diferente (reftagger.bibliacdn.com), la cual tenía que ser incluida en la política de seguridad de contenido. La he añadido y he publicado una nueva versión del componente del tema. Solo necesitas actualizar el componente.

3 Me gusta

Ahí está, gracias, señor :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