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ólico · Leitura diária · Claro
Leituras de domingo
Protestante · Leituras de domingo · Escuro
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ê.
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
Funciona em qualquer plano do WordPress que permita HTML personalizado — Gutenberg, Elementor e o Editor Clássico são todos suportados.
Passos
- Edite o post, página ou área de widget onde a leitura deve aparecer.
- 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".
- Cole o trecho abaixo.
- 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
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
- Edite a página onde deseja o widget.
- Clique em "+" e insira um bloco "Código".
- Garanta que "Exibir fonte" esteja DESLIGADO e o tipo seja HTML.
- 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
Use a incorporação por iframe para o resultado mais consistente. O Editor do Wix isola scripts de terceiros.
Passos
- No Editor do Wix clique em Adicionar (+) → Código de Incorporação → HTML Embed.
- Escolha "Código" e cole o trecho de iframe.
- Redimensione o espaço reservado para o tamanho desejado.
- 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
Use um módulo HTML personalizado ou um artigo em modo HTML. Garanta que editor e filtros de texto não removam scripts.
Passos
- Vá em Extensões → Módulos → Novo → Personalizado.
- No editor clique em "Alternar Editor" para entrar no HTML puro.
- Cole o trecho, atribua o módulo a uma posição e salve.
- 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
Use um Bloco Personalizado com formato Full HTML. Habilite Full HTML para o papel que insere o widget.
Passos
- Vá em Estrutura → Layout de blocos → Biblioteca de blocos → Adicionar.
- Defina Formato de texto como "Full HTML".
- Cole o trecho no corpo e salve.
- 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
Coloque o trecho em qualquer lugar dentro de <body>. Funciona com HTML puro, GitHub Pages, Netlify, Cloudflare Pages, Vercel etc.
Passos
- Abra seu arquivo HTML em qualquer editor.
- Cole o trecho dentro de <body>.
- 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
Renderize o <div> marcador em qualquer componente e carregue o script uma vez via useEffect para evitar SSR.
Passos
- Crie um componente BibleWidget (trecho abaixo).
- Importe onde quiser no app.
- 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
Use next/script com strategy="afterInteractive". Funciona no App Router (marque como "use client") e no Pages Router.
Passos
- Crie um Client Component (App Router) ou qualquer componente (Pages Router) que use next/script.
- Renderize o div marcador ao lado do Script.
- 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
Mesmo padrão do React: adicione o script dentro de onMounted (ou mounted() na Options API) e renderize o template marcador.
Passos
- Crie um componente single-file (trecho abaixo).
- Importe onde quiser no app.
- 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).
| Atributo | Valores | Notas |
|---|---|---|
| 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.
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
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