Widget-Installationsanleitung
Erfahren Sie, wie Sie die Tageslesung oder die Sonntagslesungen in wenigen Minuten auf Ihrer Website einbinden.
Ausprobieren
Live-Demo
Sehen Sie genau, wie das Widget aussieht, bevor Sie es einbauen. Ändern Sie Tradition, Sprache, Theme und Größe — die Vorschau aktualisiert sich sofort.
Katholisch · Tageslesung · Hell
Sonntagslesungen
Protestantisch · Sonntagslesungen · Dunkel
Möchten Sie alle Optionen ausprobieren?
Mit dem interaktiven Generator kombinieren Sie Tradition, Sprache, Thema, Größe und Optionen — und der Einbettungscode wird für Sie kopiert.
Schnellstart
Die Fünf-Minuten-Installation
Der schnellste Weg: Snippet einfügen, speichern, fertig. Wählen Sie unten Ihre Plattform für eine Schritt-für-Schritt-Anleitung.
Empfohlen — Script-Einbettung
Selbstanpassendes Iframe. Funktioniert auf jeder modernen Website.
<script src="https://sundaybiblereadings.com/widgets/embed.js" async></script>
<div data-sbr-widget="daily-reading"
data-locale="auto"
data-tradition="catholic"
data-theme="light"
data-size="medium"></div>Alternative — Iframe-Einbettung
Nutzen, wenn keine Drittanbieter-Skripte erlaubt sind.
<iframe
src="https://sundaybiblereadings.com/widgets/embed/daily-reading?locale=auto&tradition=catholic&theme=light&size=medium"
width="100%"
height="320"
loading="lazy"
style="border:0;overflow:hidden;width:100%;"
title="Sunday Bible Readings"></iframe>Installationsanleitungen
Schritt für Schritt für jede Plattform
Wählen Sie Ihr CMS oder Framework. Jede Anleitung enthält Code zum Kopieren, häufige Fehler und eine Erfolgs-Checkliste.
WordPress
Funktioniert in jedem WordPress-Tarif, der eigenes HTML erlaubt — Gutenberg, Elementor und der Classic Editor werden unterstützt.
Schritte
- Bearbeiten Sie den Beitrag, die Seite oder den Widget-Bereich, wo die Lesung erscheinen soll.
- Im Block-Editor auf "+" klicken und "Eigenes HTML" wählen. In Elementor ein "HTML"-Widget ziehen. Im Classic Editor zur Registerkarte "Text" wechseln.
- Snippet einfügen.
- Speichern / veröffentlichen. Das Widget erscheint sofort.
Für Sidebars und Footer: Design → Widgets → Eigenes HTML.
Wenn Ihr Theme Footer-Skripte erfordert, platzieren Sie das <script> dort und das <div data-sbr-widget="..."> an der gewünschten Stelle.
Beispielcode
<script src="https://sundaybiblereadings.com/widgets/embed.js" async></script>
<div data-sbr-widget="daily-reading"
data-locale="auto"
data-tradition="catholic"
data-theme="light"
data-size="medium"></div>Häufige Fehler
- In einen normalen Absatzblock einfügen — WordPress maskiert das HTML.
- Cache-Plugins (WP Rocket, W3 Total Cache) liefern alte Seite — Cache leeren.
- Sicherheits-Plugins entfernen <script> — Skripte von sundaybiblereadings.com erlauben.
Erfolgs-Checkliste
- Eigenes HTML / Code-Block verwendet (kein Absatz).
- Cache geleert.
- Widget im Frontend sichtbar (nicht nur im Editor).
Squarespace
Squarespace 7.1 unterstützt Widgets über den "Code"-Block. Bezahltarife können das Script sitewide injizieren.
Schritte
- Bearbeiten Sie die Seite, wo das Widget hin soll.
- Klicken Sie "+" und fügen Sie einen "Code"-Block ein.
- Stellen Sie sicher, dass "Quelltext anzeigen" AUS ist und der Typ HTML lautet.
- Snippet einfügen und speichern.
Für alle Seiten: Einstellungen → Erweitert → Code-Injektion → Footer und nur den <script>-Tag einmal einfügen. Dann <div data-sbr-widget="..."> auf einzelne Seiten setzen.
Beispielcode
<script src="https://sundaybiblereadings.com/widgets/embed.js" async></script>
<div data-sbr-widget="daily-reading"
data-locale="auto"
data-tradition="catholic"
data-theme="light"
data-size="medium"></div>Häufige Fehler
- Kostenloser Tarif deaktiviert Code-Blöcke.
- "Quelltext anzeigen" aktiviert — HTML wird als Text gedruckt.
- Snippet in einen Markdown-Block packen.
Erfolgs-Checkliste
- Seite gespeichert und veröffentlicht.
- Code-Block enthält HTML, nicht reinen Text.
- Mobile Vorschau zeigt das Widget.
Wix
Verwenden Sie die iframe-Einbettung für ein konsistentes Ergebnis. Der Wix-Editor sandboxt Drittanbieter-Skripte.
Schritte
- Im Wix-Editor: Hinzufügen (+) → Einbettungscode → HTML Embed.
- "Code" wählen und das iframe-Snippet einfügen.
- Platzhalter grob auf die gewünschte Größe ziehen.
- Veröffentlichen.
Bei Wix Business / VIP geht das Script via Einstellungen → Eigener Code → Hinzufügen → Body-Ende.
Beispielcode
<iframe
src="https://sundaybiblereadings.com/widgets/embed/daily-reading?locale=auto&tradition=catholic&theme=light&size=medium"
width="100%"
height="320"
loading="lazy"
style="border:0;overflow:hidden;width:100%;"
title="Sunday Bible Readings"></iframe>Häufige Fehler
- "Website-Adresse" statt "Code" wählen.
- iframe zu klein — Höhe auf 320px oder mehr setzen.
- Vergessen zu veröffentlichen (Speichern reicht nicht).
Erfolgs-Checkliste
- HTML-Embed-Element hinzugefügt.
- iframe-Höhe ≥ 320px am Desktop.
- Seite veröffentlicht.
Joomla
Verwenden Sie ein Modul Eigenes HTML oder einen Artikel im HTML-Modus. Editor und Textfilter dürfen Skripte nicht entfernen.
Schritte
- Erweiterungen → Module → Neu → Eigene.
- Im Editor "Editor umschalten" klicken, um in den rohen HTML-Modus zu wechseln.
- Snippet einfügen, Modul einer Position zuweisen und speichern.
- System → Konfiguration → Textfilter und die Benutzergruppe auf "Keine Filterung" setzen.
Beispielcode
<script src="https://sundaybiblereadings.com/widgets/embed.js" async></script>
<div data-sbr-widget="daily-reading"
data-locale="auto"
data-tradition="catholic"
data-theme="light"
data-size="medium"></div>Häufige Fehler
- TinyMCE entfernt <script> — Editor vor dem Einfügen umschalten.
- Standardtextfilter blockiert iframe / script — pro Gruppe anpassen.
- Modul falscher Template-Position zugewiesen.
Erfolgs-Checkliste
- Modul veröffentlicht und sichtbarer Position zugewiesen.
- Textfilter entfernt keine Skripte für die Gruppe.
- Widget auf den konfigurierten Seiten sichtbar.
Drupal
Verwenden Sie einen Custom Block mit Format Full HTML. Full HTML muss für die Rolle aktiviert sein, die das Widget platziert.
Schritte
- Struktur → Block layout → Custom block library → Add custom block.
- Textformat auf "Full HTML" setzen.
- Snippet in den Body einfügen und speichern.
- Block in einer beliebigen Region platzieren.
Beispielcode
<script src="https://sundaybiblereadings.com/widgets/embed.js" async></script>
<div data-sbr-widget="daily-reading"
data-locale="auto"
data-tradition="catholic"
data-theme="light"
data-size="medium"></div>Häufige Fehler
- Basic HTML — entfernt iframe und script.
- Vergessen, den Block nach dem Erstellen zu platzieren.
- Aggressive CSP-Module blockieren sundaybiblereadings.com.
Erfolgs-Checkliste
- Format Full HTML verwendet.
- Block in sichtbarer Region.
- Cache neu aufgebaut (admin/config/development/performance).
Static HTML
Snippet beliebig innerhalb von <body> einfügen. Funktioniert mit reinem HTML, GitHub Pages, Netlify, Cloudflare Pages, Vercel usw.
Schritte
- HTML-Datei in einem Editor öffnen.
- Snippet innerhalb von <body> einfügen.
- Speichern und hochladen.
Beispielcode
<!doctype html>
<html lang="en">
<body>
<script src="https://sundaybiblereadings.com/widgets/embed.js" async></script>
<div data-sbr-widget="daily-reading"
data-locale="auto"
data-tradition="catholic"
data-theme="light"
data-size="medium"></div>
</body>
</html>Häufige Fehler
- In <head> einfügen — das Script braucht das DOM.
- Über HTTP hosten — Mixed-Content blockiert das Widget.
Erfolgs-Checkliste
- Snippet in <body>.
- Seite über HTTPS ausgeliefert.
- Seite nach Upload neu geladen.
React
Rendern Sie das Marker-<div> in einer Komponente und laden Sie das Script einmal in useEffect, damit es nicht im SSR läuft.
Schritte
- Komponente BibleWidget erstellen (Snippet unten).
- Überall in der App importieren.
- Script nur einmal einbinden, auch wenn die Komponente mehrfach gemountet wird.
Beispielcode
import { useEffect } from "react";
export function BibleWidget() {
useEffect(() => {
const id = "sbr-widget-loader";
if (document.getElementById(id)) return;
const s = document.createElement("script");
s.id = id;
s.src = "https://sundaybiblereadings.com/widgets/embed.js";
s.async = true;
document.body.appendChild(s);
}, []);
return (
<div
data-sbr-widget="daily-reading"
data-locale="auto"
data-tradition="catholic"
data-theme="auto"
data-size="medium"
/>
);
}Häufige Fehler
- document.createElement im SSR aufrufen — in useEffect verpacken.
- Script mehrfach hinzufügen — vorhandene id prüfen.
- Strenge CSP ohne https://sundaybiblereadings.com in frame-src/script-src.
Erfolgs-Checkliste
- Script genau einmal hinzugefügt.
- Komponente rendert das Marker-Div.
- Keine Hydration-Warnungen in der Konsole.
Next.js
Verwenden Sie next/script mit strategy="afterInteractive". Funktioniert im App Router (Komponente als "use client" markieren) und im Pages Router.
Schritte
- Client Component (App Router) oder beliebige Komponente (Pages Router) erstellen, die next/script umhüllt.
- Marker-Div neben Script rendern.
- Komponente importieren und platzieren.
Beispielcode
// app/components/BibleWidget.tsx — App Router (Client Component)
"use client";
import Script from "next/script";
export default function BibleWidget() {
return (
<>
<Script
src="https://sundaybiblereadings.com/widgets/embed.js"
strategy="afterInteractive"
/>
<div
data-sbr-widget="sunday-readings"
data-locale="auto"
data-tradition="catholic"
data-theme="auto"
data-size="medium"
/>
</>
);
}Häufige Fehler
- "use client" im App Router vergessen.
- strategy="beforeInteractive" — das Widget braucht das DOM.
- Datei auf Seitenebene importieren, ohne sie als Client zu markieren.
Erfolgs-Checkliste
- Komponente als Client markiert (App Router).
- Script wird pro Seite nur einmal gerendert.
- Produktions-Build mountet das Widget weiterhin.
Vue / Nuxt
Gleiches Muster wie React: Script in onMounted (oder mounted() in Options API) anhängen und Marker-Template rendern.
Schritte
- Single-File-Komponente erstellen (Snippet unten).
- Überall in der App importieren.
- In Nuxt bei Bedarf <ClientOnly> verwenden, um SSR zu überspringen.
Beispielcode
<!-- BibleWidget.vue -->
<template>
<div
data-sbr-widget="daily-reading"
data-locale="auto"
data-tradition="catholic"
data-theme="auto"
data-size="medium"
/>
</template>
<script setup>
import { onMounted } from "vue";
onMounted(() => {
if (document.getElementById("sbr-widget-loader")) return;
const s = document.createElement("script");
s.id = "sbr-widget-loader";
s.src = "https://sundaybiblereadings.com/widgets/embed.js";
s.async = true;
document.body.appendChild(s);
});
</script>Häufige Fehler
- Script im SSR-Kontext laden — useOnMounted verwenden.
- Mehrere Kopien des Script-Tags mounten.
Erfolgs-Checkliste
- Script-ID-Prüfung verhindert Duplikate.
- Widget rendert nach Hard-Reload.
- Funktioniert im Nuxt Universal-Modus.
Anpassen
Jede Option erklärt
Die Anpassung erfolgt über data-*-Attribute am Marker-Div (oder über Query-Parameter im iframe-src).
| Attribut | Werte | Hinweise |
|---|---|---|
| data-sbr-widget | daily-readingsunday-readings | Erforderlich. Wählt das anzuzeigende Widget. |
| data-locale | autoenesptfritdepl | "auto" erkennt die Browsersprache, Fallback ist Englisch. |
| data-tradition | catholicprotestantorthodox | Steuert die Bibelreferenzen und Linkziele. |
| data-theme | lightdarkauto | "auto" folgt dem Systemfarbschema des Besuchers. |
| data-size | smallmediumlarge | Beeinflusst Typografie und Iframe-Starthöhe. |
| data-logo | 10 | Kopfzeile mit Buchsymbol anzeigen. |
| data-desc | 10 | Kurze Reflexion / Beschreibung anzeigen. |
Einbettungsbeispiele
Script vs. Iframe
Beide sind kostenlos. Wählen Sie, was zu Ihrem CMS passt.
Script-Einbettung (empfohlen)
Ein winziges Loader-Script findet jedes data-sbr-widget auf der Seite, fügt ein responsives Iframe ein und passt die Größe automatisch an — ohne Layout-Sprünge.
Empfohlen für: WordPress, Squarespace (kostenpflichtig), statisches HTML, React, Next.js, Vue.
Iframe-Einbettung
Ein einzelnes <iframe> mit fester Starthöhe. Kein JavaScript auf Ihrer Seite nötig.
Empfohlen für: Wix, eingeschränkte Joomla/Drupal-Instanzen, strenge CSP, E-Mails (Iframes werden entfernt — verlinken Sie die kanonische Seite).
Kompatibilität
Browser-Unterstützung
Alle Evergreen-Browser der letzten zwei Hauptversionen.
IE 11 wird nicht unterstützt. Mobile Safari, Chrome Android und Firefox Android werden unterstützt.
Fehlerbehebung
Häufige Probleme beheben
Nach Symptom suchen. Falls etwas fehlt, schreiben Sie uns — wir ergänzen es.
Best Practices
Wo das Widget platzieren
Barrierefreiheit
- Mit Tastatur navigierbare Links und CTA-Buttons.
- Semantisches HTML (article, header, footer).
- Farbkontrast auf WCAG AA in beiden Themes getestet.
- Mit Screenreadern nutzbar — Titel und Meta werden vorgelesen.
Performance
- Loader-Script ist klein und asynchron.
- Iframe wird lazy geladen (loading="lazy").
- Größenanpassung via postMessage — kein Layout-Sprung.
- Standardmäßig responsiv; kein zusätzliches CSS nötig.
Namensnennung
- Die Widgets sind vollständig kostenlos.
- Der Footer "Powered by Sunday Bible Readings" muss sichtbar bleiben.
- Der Link führt zur passenden kanonischen Seite.
- Entfernen oder Verbergen der Namensnennung ist nicht gestattet.
Aktualisierungen
Einrichten und vergessen
Die Widgets zeigen immer die aktuellen Lesungen. Sie müssen Ihre Seite nicht neu deployen oder das Snippet anpassen. Täglich wird die Tageslesung geladen; wöchentlich die Lesungen des nächsten Sonntags.
FAQ
Häufige Fragen
Hilfe