Wavecast Radio

El reproductor de pie fijo (<podcast-footer>) debe estar presente en la plantilla base de tu sitio para la persistencia entre páginas.

Añadir el Pie de Página

Añade este elemento justo antes de </body> en layouts/_default/baseof.html:

<p/oddhpdaaxoctt-daaapcs--ratttes-uustfrre-obbrfooovotl-eoeip>trneekrrism>d-a=pn"eeprnomtdacnaesntt-footer"

Atributos de Framework

Los atributos data-turbolinks-permanent, data-turbo-permanent y hx-preserve aseguran que el pie sobreviva a la navegación al usar estos frameworks:

FrameworkAtributoQué hace
Turbolinksdata-turbolinks-permanentEvita que Turbolinks reemplace el pie en la navegación
Turbodata-turbo-permanentEvita que Turbo Drive transforme/reemplace el pie
htmxhx-preserveIndica a htmx que preserve el elemento durante intercambios DOM

Si no usas ninguno de estos frameworks, omite esos atributos: el pie persistirá mediante sessionStorage para cargas de página vanilla.

Cómo Funciona la Persistencia

El reproductor sobrevive a las navegaciones usando múltiples estrategias:

  1. Ganchos de framework: data-turbolinks-permanent / data-turbo-permanent / hx-preserve mantienen vivo el elemento DOM del pie durante navegaciones SPA
  2. Respaldo sessionStorage: Estado guardado en sessionStorage en beforeunload, restaurado en la siguiente carga
  3. HTML vanilla: Las cargas de página tradicionales restauran posición, volumen, silencio y velocidad desde sessionStorage

Estado Guardado

CampoDescripción
currentTimePosición de reproducción en segundos
pausedSi el audio estaba pausado
volumeNivel de volumen (0–1)
mutedEstado de silencio
playbackRateVelocidad de reproducción

Reglas de Restauración de Posición

  • Coincidencia exacta de URL: La posición solo se restaura cuando el src guardado coincide con el del elemento actual
  • Protección de antigüedad: Posiciones de más de 1 hora se descartan
  • Estimación en pausa: Si el audio estaba pausado, la posición se restaura tal cual
  • Estimación en reproducción: Si estaba reproduciendo, el tiempo transcurrido desde el guardado se añade
  • Diferido a loadedmetadata: La posición se establece solo después de que el navegador informe que la duración es conocida

Integración con Alternancia de Tema

Si tu sitio tiene un toggle de tema claro/oscuro, asegúrate de que las propiedades CSS del pie respondan a tu cambio de tema. El elemento <podcast-footer> responde automáticamente a estos selectores:

[.h}dttahmSteleam[l-edEet-alchdtteaaromr-erektpe=hrs"peodomdiadeunrc=ctka"te"sdog]tarr-rapfkadoo"podo]lsctiaepcasroat,dl-cvofaasosrotiqt-auefberol,oeetslerdree{ptreomdaucotsocrurroesponde

Si tu tema usa nombres de atributos diferentes, añade tus propias reglas:

b}b}ooddy--y--.pp.ppdoodooaddaddrccrcckaakaasssspttptto--o--dppdppcllcllaaaaaasyysyyteetee-rr-rrf--p--obtlbtogeaget:xy:xetetr#:r#:11{e#{e#1e1ee0e02e2ee0e0;e;e00;;

Ejemplo: Sección de Pie en baseof.html Completa

<<!h/Dt<<hOmh/b/tCle<<<ho{<<bmTamt!ed{!p/olYldei-ay-oddhpd>Pa>tt-d>b-daaxoyEnal>lctt-d>gecoRaaapch=c>oces--rat"h{nkptttesm{a{tr-uustl{re"ofrre->sbnmdobbrf.eliauooovoStodictl-eoi=conteip>tt"k"orneeeudrkrr.t"e.ism>Lftldd-aa-i}e=pnn8th}"eeg"le{pprnu>ea{iomta"dedag.ecne..naeC.dsno}ttd}}-e{}f{o}o}.t"Se>irt"e.Title}}{{end}}</title>

Próximos Pasos