Guia de instalação de widgets

Aprenda como adicionar a Leitura de hoje ou as Leituras de domingo ao seu site em poucos minutos.

Experimente

Demo ao vivo

Veja exatamente como o widget fica antes de instalar. Mude tradição, idioma, tema e tamanho — a pré-visualização atualiza na hora.

Católica
Claro

Católico · Leitura diária · Claro

Protestante
Escuro

Protestante · Leituras de domingo · Escuro

Ortodoxa
Claro

Ortodoxo · Leitura diária · Claro

Quer experimentar todas as opções?

O criador interativo permite combinar tradição, idioma, tema, tamanho e opções — e copia o código de incorporação para você.

Abrir o criador

Início rápido

Instalação em cinco minutos

O caminho mais rápido: cole o trecho, salve, pronto. Escolha sua plataforma abaixo para um guia passo a passo.

Recomendado — incorporação por script

Iframe que se redimensiona automaticamente. Funciona em qualquer site moderno.

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

Alternativa — incorporação por iframe

Use quando scripts de terceiros não forem permitidos.

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

Guias de instalação

Passo a passo para cada plataforma

Escolha seu CMS ou framework. Cada guia inclui código para copiar, erros comuns e uma checklist.

WordPress

Fácil
2 min

Funciona em qualquer plano do WordPress que permita HTML personalizado — Gutenberg, Elementor e o Editor Clássico são todos suportados.

Passos

  1. Edite o post, página ou área de widget onde a leitura deve aparecer.
  2. No editor de blocos clique em "+" e escolha "HTML personalizado". No Elementor arraste um widget "HTML". No Editor Clássico mude para a aba "Texto".
  3. Cole o trecho abaixo.
  4. Salve / publique. O widget aparece imediatamente no front-end.

Para barras laterais e rodapés, use Aparência → Widgets → HTML personalizado.

Se o tema exigir scripts no rodapé, coloque o <script> em "Scripts do rodapé" e o <div data-sbr-widget="..."> onde quiser exibir o widget.

Código de exemplo

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

Erros comuns

  • Colar em um bloco de parágrafo — o WordPress escapará o HTML.
  • Plugins de cache (WP Rocket, W3 Total Cache) servindo página antiga — limpe o cache após publicar.
  • Plugins de segurança removendo <script> — permita scripts de sundaybiblereadings.com.

Checklist de sucesso

  • Bloco HTML / Código usado (não parágrafo).
  • Cache limpo.
  • Widget visível no front-end (não só no editor).

Squarespace

Fácil
2 min

O Squarespace 7.1 suporta widgets por meio do bloco "Código". Planos pagos também permitem injetar o script em todo o site.

Passos

  1. Edite a página onde deseja o widget.
  2. Clique em "+" e insira um bloco "Código".
  3. Garanta que "Exibir fonte" esteja DESLIGADO e o tipo seja HTML.
  4. Cole o trecho e salve.

Para usar em todas as páginas vá em Configurações → Avançado → Injeção de Código → Rodapé e cole apenas a tag <script> uma vez. Depois coloque o <div data-sbr-widget="..."> nas páginas.

Código de exemplo

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

Erros comuns

  • Usar o plano gratuito, que desativa blocos de Código.
  • Deixar "Exibir fonte" ativado — imprime o HTML como texto.
  • Envolver o trecho em um bloco Markdown.

Checklist de sucesso

  • Página salva e publicada.
  • Bloco de Código contém HTML, não texto puro.
  • A pré-visualização mobile ainda mostra o widget.

Wix

Fácil
3 min

Use a incorporação por iframe para o resultado mais consistente. O Editor do Wix isola scripts de terceiros.

Passos

  1. No Editor do Wix clique em Adicionar (+) → Código de Incorporação → HTML Embed.
  2. Escolha "Código" e cole o trecho de iframe.
  3. Redimensione o espaço reservado para o tamanho desejado.
  4. Publique.

No Wix Business / VIP pode-se usar o script em Configurações → Código personalizado → Adicionar → Final do body.

Código de exemplo

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

Erros comuns

  • Escolher "Endereço do site" em vez de "Código".
  • Deixar o iframe baixo demais — defina altura ≥ 320px.
  • Esquecer de publicar (Salvar não basta).

Checklist de sucesso

  • Elemento HTML Embed adicionado.
  • Altura do iframe ≥ 320px no desktop.
  • Site publicado.

Joomla

Médio
4 min

Use um módulo HTML personalizado ou um artigo em modo HTML. Garanta que editor e filtros de texto não removam scripts.

Passos

  1. Vá em Extensões → Módulos → Novo → Personalizado.
  2. No editor clique em "Alternar Editor" para entrar no HTML puro.
  3. Cole o trecho, atribua o módulo a uma posição e salve.
  4. Verifique Sistema → Configuração Global → Filtros de Texto e defina o grupo como "Sem Filtragem".

Código de exemplo

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

Erros comuns

  • TinyMCE removendo <script> — desative o editor antes de colar.
  • Filtro padrão bloqueando iframe / script — ajuste por grupo.
  • Módulo atribuído à posição errada.

Checklist de sucesso

  • Módulo publicado e em posição visível.
  • Filtro de texto não remove scripts para o grupo.
  • Widget visível nas páginas configuradas.

Drupal

Médio
5 min

Use um Bloco Personalizado com formato Full HTML. Habilite Full HTML para o papel que insere o widget.

Passos

  1. Vá em Estrutura → Layout de blocos → Biblioteca de blocos → Adicionar.
  2. Defina Formato de texto como "Full HTML".
  3. Cole o trecho no corpo e salve.
  4. Coloque o bloco em qualquer região.

Código de exemplo

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

Erros comuns

  • Usar Basic HTML — remove iframe e script.
  • Esquecer de colocar o bloco após criar.
  • Módulos CSP agressivos bloqueando sundaybiblereadings.com.

Checklist de sucesso

  • Formato Full HTML usado.
  • Bloco em região visível.
  • Cache reconstruído (admin/config/development/performance).

Static HTML

Fácil
1 min

Coloque o trecho em qualquer lugar dentro de <body>. Funciona com HTML puro, GitHub Pages, Netlify, Cloudflare Pages, Vercel etc.

Passos

  1. Abra seu arquivo HTML em qualquer editor.
  2. Cole o trecho dentro de <body>.
  3. Salve e envie.

Código de exemplo

<!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>

Erros comuns

  • Colar dentro de <head> — o script precisa do DOM.
  • Servir por HTTP — regras de conteúdo misto bloqueiam o widget.

Checklist de sucesso

  • Trecho dentro de <body>.
  • Site servido por HTTPS.
  • Página recarregada após o envio.

React

Fácil
3 min

Renderize o <div> marcador em qualquer componente e carregue o script uma vez via useEffect para evitar SSR.

Passos

  1. Crie um componente BibleWidget (trecho abaixo).
  2. Importe onde quiser no app.
  3. Garanta que o script seja adicionado uma única vez, mesmo se o componente montar várias vezes.

Código de exemplo

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"
    />
  );
}

Erros comuns

  • Chamar document.createElement no SSR — envolva em useEffect.
  • Adicionar o script várias vezes — verifique id existente.
  • CSP estrita sem https://sundaybiblereadings.com em frame-src/script-src.

Checklist de sucesso

  • Script adicionado uma única vez.
  • Componente renderiza o div marcador.
  • Sem avisos de hidratação no console.

Next.js

Fácil
3 min

Use next/script com strategy="afterInteractive". Funciona no App Router (marque como "use client") e no Pages Router.

Passos

  1. Crie um Client Component (App Router) ou qualquer componente (Pages Router) que use next/script.
  2. Renderize o div marcador ao lado do Script.
  3. Importe e use o componente onde quiser.

Código de exemplo

// 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"
      />
    </>
  );
}

Erros comuns

  • Esquecer "use client" no App Router.
  • Usar strategy="beforeInteractive" — o widget precisa do DOM.
  • Importar o arquivo no nível da página sem marcá-lo como cliente.

Checklist de sucesso

  • Componente marcado como cliente (App Router).
  • Script renderizado apenas uma vez por página.
  • Build de produção ainda monta o widget.

Vue / Nuxt

Fácil
3 min

Mesmo padrão do React: adicione o script dentro de onMounted (ou mounted() na Options API) e renderize o template marcador.

Passos

  1. Crie um componente single-file (trecho abaixo).
  2. Importe onde quiser no app.
  3. No Nuxt, use <ClientOnly> para pular o SSR se preferir.

Código de exemplo

<!-- 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>

Erros comuns

  • Carregar o script no contexto SSR — use onMounted.
  • Montar várias cópias do script.

Checklist de sucesso

  • Verificação de id evita duplicatas.
  • Widget renderiza após recarregar.
  • Funciona no modo universal do Nuxt.

Personalizar

Todas as opções, explicadas

Toda personalização ocorre via atributos data-* no div marcador (ou parâmetros de consulta no src do iframe).

AtributoValoresNotas
data-sbr-widget
daily-readingsunday-readings
Obrigatório. Define qual widget renderizar.
data-locale
autoenesptfritdepl
"auto" detecta o idioma do navegador, com inglês como fallback.
data-tradition
catholicprotestantorthodox
Controla as referências bíblicas e os destinos dos links.
data-theme
lightdarkauto
"auto" combina com o esquema de cor do sistema.
data-size
smallmediumlarge
Afeta a escala tipográfica e a altura inicial do iframe.
data-logo
10
Mostrar o cabeçalho com ícone do livro.
data-desc
10
Mostrar a breve reflexão / descrição.

Exemplos de incorporação

Script vs iframe

Ambos são gratuitos. Escolha o que se encaixa no seu CMS.

Incorporação por script (recomendada)

Um pequeno script descobre cada data-sbr-widget na página, injeta um iframe responsivo e o redimensiona automaticamente, sem mudanças de layout.

Recomendado para: WordPress, Squarespace (pago), HTML estático, React, Next.js, Vue.

Incorporação por iframe

Um único <iframe> com altura inicial fixa. Não exige JavaScript no seu site.

Recomendado para: Wix, Joomla/Drupal restritos, ambientes com CSP estrita, e-mails (que removem iframes — use o link canônico).

Compatibilidade

Suporte de navegadores

Todos os navegadores modernos das duas últimas versões principais.

Chrome
Firefox
Safari
Edge
Brave

IE 11 não é suportado. Safari mobile, Chrome Android e Firefox Android são suportados.

Solução de problemas

Resolva problemas comuns

Busque pelo sintoma. Se algo não estiver aqui, fale conosco e adicionaremos.

Boas práticas

Onde colocar o widget

    Coloque a Leitura de hoje na página inicial, próximo ao topo.
    Coloque as Leituras de domingo perto dos horários de culto.
    Dê espaço ao redor do widget para não apertar o conteúdo.
    Evite abas ocultas e acordeões fechados — o widget não consegue medir a altura ali.
    Use um widget acima da dobra e outro abaixo quando ambos forem relevantes.
    Teste em desktop e mobile antes de divulgar.

Acessibilidade

  • Links e botões navegáveis por teclado.
  • HTML semântico (article, header, footer).
  • Contraste de cor testado para WCAG AA em ambos os temas.
  • Funciona com leitores de tela — título e meta são anunciados.

Desempenho

  • Script carregador pequeno e assíncrono.
  • Iframe carregado de forma preguiçosa (loading="lazy").
  • Redimensiona via postMessage — sem mudanças de layout.
  • Responsivo por padrão; não exige CSS extra.

Atribuição

  • Os widgets são totalmente gratuitos.
  • O rodapé "Powered by Sunday Bible Readings" deve permanecer visível.
  • O link leva à página canônica apropriada.
  • Não é permitido remover nem ocultar a atribuição.

Atualizações

Configure e esqueça

Os widgets sempre exibem as leituras mais recentes. Você não precisa reimplantar o site, atualizar nada nem editar o trecho. A cada dia o widget puxa a leitura do dia; a cada semana, as leituras do domingo mais próximo.

Perguntas

Perguntas frequentes

Suporte

Precisa de ajuda?