Componente de tema Reftagger

A biblioteca Reftagger permite converter referências bíblicas em seu fórum Discourse em links com uma prévia ao passar o mouse.

A pedido de @outofthebox, criamos um componente de tema baseado neste código.

Adicionei uma configuração que permite selecionar a tradução desejada, e o componente estende a política de segurança de conteúdo para permitir a inclusão da biblioteca Reftagger.

Repositório aqui.

13 curtidas

@RGJ, nossa comunidade ama esse recurso. Obrigado por desenvolver de forma segura e personalizável. Agradeço sua generosidade em compartilhar esse trabalho de volta para a comunidade do Discourse.

5 curtidas

Temos usado isso nos últimos 18 meses ou mais, e tem funcionado perfeitamente. Ficamos felizes em ver que foi melhorado e ficou mais acessível!

3 curtidas

Uau, isso é super legal.

Eu adoraria ver um componente semelhante no qual palavras-chave e pré-visualizações personalizadas possam ser definidas.
Isso seria super útil para criar um glossário, por exemplo.

1 curtida

Existe o componente de tema auto abbrify words que faz exatamente isso.

3 curtidas

Agradeço muito a você e a todos que contribuíram para a conversa original no Meta sobre como fazer esse recurso funcionar!

2 curtidas

Olá a todos, o Reftagger funcionou perfeitamente por alguns meses e, de repente, parou. Ele ainda gera automaticamente um link externo para o formato livro/capítulo/verso, mas não carrega a prévia ao passar o mouse.

Parece que ele está atualizado também. Alguma ideia?

1 curtida

Qual versão do Discourse você está usando?

1 curtida

Como posso encontrar essas informações?

Deve estar em algum lugar no painel de administração em /admin

Ele apenas diz que está atualizado:

1 curtida

Parece estar funcionando bem no Discourse 2.7.7 (pelo menos no Safari) para mim.

Está funcionando novamente agora.
Aparentemente, o Reftagger mudou para um CDN diferente (reftagger.bibliacdn.com), que precisava ser incluído na política de segurança do conteúdo. Eu o adicionei e publiquei uma nova versão do componente do tema. Tudo o que você precisa fazer é atualizar o componente.

3 curtidas

Aqui está, obrigado, senhor :slightly_smiling_face:

1 curtida

Olá Richard,

Revisando um tópico antigo. Instalei este componente de tema e duas coisas estão acontecendo.

Primeiro é a mensagem de que o componente precisa ser atualizado.
[Aviso do Admin] O tema ‘Reftagger’ contém código que precisa ser atualizado. (id:discourse.script-tag-discourse-plugin) (saiba mais)

Segundo pode estar relacionado à primeira notificação onde o componente precisa ser atualizado. As referências não estão sendo marcadas e as páginas parecem travar mostrando o círculo de carregamento na aba do navegador.

Seria possível atualizar este componente?

Fiz alguns progressos com isso usando o ChatGPT e tenho reftaggers funcionando para ambos usando Logos RefTagger e Blue Letter Bible.

Se isso puder ser incluído em um componente de tema para uso da comunidade, ótimo. Se não, o componente de tema é simplesmente para fazer. Você só precisa pegar o código de qualquer um que preferir e colocá-lo na aba JS de um novo componente de tema. Você precisa remover o código padrão que está na aba JS do Discourse.

Se alguém tiver feedback sobre como melhorar, é bem-vindo. Minhas habilidades vão apenas até guiar o LLM.

Usando Logos RefTagger:

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

export default apiInitializer(“0.1”, (api) => {
// 1. Defina as configurações do RefTagger na janela ANTES de carregar o script
window.refTagger = {
settings: {
bibleVersion: “ESV”, // e.g. versão padrão da Bíblia
tagChapters: true, // marcar também as referências de capítulos
convertHyperlinks: false, // não marcar links existentes
roundCorners: true,
socialSharing: ,
}
};

// 2. Enganche na renderização de posts do Discourse:
api.decorateCooked((element) => {
// Carregue o script externo RefTagger (se ainda não foi carregado)
loadScript(“https://api.reftagger.com/v2/RefTagger.js”).then(() => {
// Execute a marcação no novo elemento de conteúdo
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, defina as configurações do BLB ScriptTagger antes de carregar (padrões mostrados)
window.BLB ||= {}; // garanta que o objeto global BLB exista
window.BLB.Tagger ||= {};
window.BLB.Tagger.Translation = “NKJV”; // versão de tradução padrão
window.BLB.Tagger.HyperLinks = “all”; // marcar até mesmo referências já vinculadas
window.BLB.Tagger.TargetNewWindow = true; // links abrem em nova aba
// … (outras configurações como DarkTheme, etc., conforme necessário)

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(); // reanalisar novo conteúdo para versículos:contentReference[oaicite:6]{index=6}
}
});
});
});

Isso foi resolvido agora.

Isso eu não consigo reproduzir, mesmo antes de resolver o problema acima - que foi apenas um aviso, não um erro.

3 curtidas

Muito grato pela atualização!

2 curtidas