Die Reftagger-Bibliothek ermöglicht es dir, Bibelstellen auf deinem Discourse-Forum in Links mit einer Hover-Vorschau umzuwandeln.
Auf Wunsch von @outofthebox haben wir eine Theme-Komponente basierend auf diesem Code erstellt.
Ich habe eine Einstellung hinzugefügt, mit der du die gewünschte Übersetzung auswählen kannst, und die Komponente erweitert die Content-Security-Policy, damit die Reftagger-Bibliothek eingebunden werden kann.
@RGJ, unsere Community liebt diese Funktion. Vielen Dank, dass du sie sicher und anpassbar entwickelt hast. Ich schätze deine Großzügigkeit, diese Arbeit mit der Discourse-Community zu teilen.
Wir nutzen das jetzt seit etwa 18 Monaten, und es hat sich als absolut zuverlässig erwiesen. Schön zu sehen, dass es weiter verbessert und noch leichter zugänglich gemacht wurde!
Ich würde gerne eine ähnliche Komponente sehen, bei der benutzerdefinierte Schlüsselwörter und Vorschauen definiert werden können.
Das wäre zum Beispiel super nützlich, um ein Glossar zu erstellen.
Ich schätze es sehr, dass du und alle anderen, die zur ursprünglichen Diskussion auf Meta beigetragen haben, sich dafür eingesetzt habt, wie man dieses Feature zum Laufen bringt!
Hallo zusammen, Reftagger hat ein paar Monate lang einwandfrei funktioniert und ist dann einfach stehen geblieben. Es erstellt zwar weiterhin automatisch einen externen Link für das Format Buch/Kapitel/Vers, lädt aber keine Hover-Vorschau mehr.
Es funktioniert jetzt wieder. Reftagger ist offenbar auf ein anderes CDN (reftagger.bibliacdn.com) umgestiegen, das in der Content-Security-Policy freigegeben werden musste. Ich habe es hinzugefügt und eine neue Version des Theme-Komponenten veröffentlicht. Alles, was Sie tun müssen, ist die Komponente zu aktualisieren.
Ich greife einen älteren Thread auf. Ich habe diese Theme-Komponente installiert und es passieren zwei Dinge.
Erstens die Meldung, dass die Komponente aktualisiert werden muss. [Admin-Hinweis] Das Theme ‘Reftagger’ enthält Code, der aktualisiert werden muss. (id:discourse.script-tag-discourse-plugin) (Mehr erfahren)
Zweitens hängt dies möglicherweise mit dem ersten Hinweis zusammen, dass die Komponente aktualisiert werden muss. Referenzen werden nicht markiert und Seiten scheinen zu hängen und zeigen den Ladekreis im Browser-Tab an.
Wäre es möglich, diese Komponente zu aktualisieren?
Ich habe mit ChatGPT einige Fortschritte gemacht und funktionierende RefTagger für beide, Logos RefTagger und Blue Letter Bible, erstellt.
Wenn diese in eine Theme-Komponente für die allgemeine Nutzung gebündelt werden könnten, wäre das großartig. Wenn nicht, ist die Theme-Komponente einfach zu erstellen. Sie müssen nur den Code für die von Ihnen bevorzugte Option nehmen und in den JS-Tab einer neuen Theme-Komponente einfügen. Sie müssen den Standardcode im JS-Tab von Discourse entfernen.
Wenn jemand Feedback zur Verbesserung hat, ist dies willkommen. Meine Fähigkeiten reichen nur bis zur Anleitung des LLM.
Verwendung von 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);
});
});
});
Verwendung von 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[oaicite:6]{index=6}
}
});
});
});