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
Hell

Katholisch · Tageslesung · Hell

Protestantisch
Dunkel

Protestantisch · Sonntagslesungen · Dunkel

Orthodox
Hell

Orthodox · Tageslesung · Hell

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.

Generator öffnen

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

Einfach
2 min

Funktioniert in jedem WordPress-Tarif, der eigenes HTML erlaubt — Gutenberg, Elementor und der Classic Editor werden unterstützt.

Schritte

  1. Bearbeiten Sie den Beitrag, die Seite oder den Widget-Bereich, wo die Lesung erscheinen soll.
  2. Im Block-Editor auf "+" klicken und "Eigenes HTML" wählen. In Elementor ein "HTML"-Widget ziehen. Im Classic Editor zur Registerkarte "Text" wechseln.
  3. Snippet einfügen.
  4. 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

Einfach
2 min

Squarespace 7.1 unterstützt Widgets über den "Code"-Block. Bezahltarife können das Script sitewide injizieren.

Schritte

  1. Bearbeiten Sie die Seite, wo das Widget hin soll.
  2. Klicken Sie "+" und fügen Sie einen "Code"-Block ein.
  3. Stellen Sie sicher, dass "Quelltext anzeigen" AUS ist und der Typ HTML lautet.
  4. 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

Einfach
3 min

Verwenden Sie die iframe-Einbettung für ein konsistentes Ergebnis. Der Wix-Editor sandboxt Drittanbieter-Skripte.

Schritte

  1. Im Wix-Editor: Hinzufügen (+) → Einbettungscode → HTML Embed.
  2. "Code" wählen und das iframe-Snippet einfügen.
  3. Platzhalter grob auf die gewünschte Größe ziehen.
  4. 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

Mittel
4 min

Verwenden Sie ein Modul Eigenes HTML oder einen Artikel im HTML-Modus. Editor und Textfilter dürfen Skripte nicht entfernen.

Schritte

  1. Erweiterungen → Module → Neu → Eigene.
  2. Im Editor "Editor umschalten" klicken, um in den rohen HTML-Modus zu wechseln.
  3. Snippet einfügen, Modul einer Position zuweisen und speichern.
  4. 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

Mittel
5 min

Verwenden Sie einen Custom Block mit Format Full HTML. Full HTML muss für die Rolle aktiviert sein, die das Widget platziert.

Schritte

  1. Struktur → Block layout → Custom block library → Add custom block.
  2. Textformat auf "Full HTML" setzen.
  3. Snippet in den Body einfügen und speichern.
  4. 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

Einfach
1 min

Snippet beliebig innerhalb von <body> einfügen. Funktioniert mit reinem HTML, GitHub Pages, Netlify, Cloudflare Pages, Vercel usw.

Schritte

  1. HTML-Datei in einem Editor öffnen.
  2. Snippet innerhalb von <body> einfügen.
  3. 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

Einfach
3 min

Rendern Sie das Marker-<div> in einer Komponente und laden Sie das Script einmal in useEffect, damit es nicht im SSR läuft.

Schritte

  1. Komponente BibleWidget erstellen (Snippet unten).
  2. Überall in der App importieren.
  3. 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

Einfach
3 min

Verwenden Sie next/script mit strategy="afterInteractive". Funktioniert im App Router (Komponente als "use client" markieren) und im Pages Router.

Schritte

  1. Client Component (App Router) oder beliebige Komponente (Pages Router) erstellen, die next/script umhüllt.
  2. Marker-Div neben Script rendern.
  3. 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

Einfach
3 min

Gleiches Muster wie React: Script in onMounted (oder mounted() in Options API) anhängen und Marker-Template rendern.

Schritte

  1. Single-File-Komponente erstellen (Snippet unten).
  2. Überall in der App importieren.
  3. 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).

AttributWerteHinweise
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.

Chrome
Firefox
Safari
Edge
Brave

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

    Platzieren Sie die Tageslesung auf der Startseite, nahe dem Anfang.
    Platzieren Sie die Sonntagslesungen in der Nähe der Gottesdienstzeiten.
    Lassen Sie genug Abstand um das Widget.
    Vermeiden Sie versteckte Tabs und geschlossene Akkordeons — das Widget kann dort seine Höhe nicht messen.
    Verwenden Sie ein Widget oberhalb und eines unterhalb der Falz, wenn beide relevant sind.
    Testen Sie auf Desktop und Mobil, bevor Sie es ankündigen.

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

Brauchen Sie Hilfe?