Vista previa de PDF en línea

¿A qué te refieres? Este es un componente de #escritorio.

Para aclarar: sé que las previsualizaciones de PDF en línea todavía son compatibles con Discourse.

Mi pregunta es específicamente sobre el componente de tema en sí: actualmente muestra advertencias de obsolescencia en la consola en las versiones recientes de Discourse.

¿Sería necesario un PR para actualizar el uso de la API obsoleta (por ejemplo, la API de complementos / ganchos de Ember), o ya hay trabajo en curso para modernizarlo?

2 Me gusta

Dado que está marcado como official, es razonable suponer que se actualizará antes de que sea demasiado tarde.

4 Me gusta

Una publicación fue dividida en un nuevo tema: Sistema de restricción similar a Scribd

Sí, mi PR de función anterior soluciona la API obsoleta. Sin embargo, necesita más trabajo, y he estado demasiado ocupado para volver a mirarla.

1 me gusta

Estoy decepcionado de que no se permita la visualización de un pdf en un dispositivo móvil. Espero migrar mi sitio phpBB a Discourse, porque phpBB es torpe, pero he modificado una función en mi foro usando pdf.js que me permite incrustar pdfs. Y pdf.js te permite hacer zoom y desplazarte; aunque no es tan robusto como en el escritorio, es útil en el garaje para escanear un manual sin tener que volver corriendo a la casa. Este ejemplo no es el de un manual, pero demuestra el principio: Boletín #361 - Un Diésel en América

Facebook me está quitando terreno, y principalmente con dispositivos móviles; espero recuperar usuarios con una integración de Discourse. Pero perder el pdf en el dispositivo de mano no es una victoria para mí.

-Dan

3 Me gusta

Parece que los PDF no se están renderizando en Brave en Mac OS (al menos en la versión 25 hasta la 26.2)…

1 me gusta

La consola muestra una advertencia de desaprobación de discourse.static-viewport-initialization.

log_manager.js:98 [Gemini Nexus] Background Service Worker Started
index.js:4  Gemini Nexus v4.2.3 Ready 
runtime.ts:81 DEPRECATION: Importing `inject` from `@ember/service` is deprecated. Please import `service` instead. [deprecation id: importing-inject-from-ember-service] This will be removed in ember-source 7.0.0. See https://deprecations.emberjs.com/id/importing-inject-from-ember-service for more details.
(anonymous) @ deprecate.js:72
s.<computed> @ handlers.js:10
(anonymous) @ deprecate.js:108
s.<computed> @ handlers.js:10
(anonymous) @ deprecate.js:116
s.<computed> @ handlers.js:10
(anonymous) @ index.js:75
(anonymous) @ index.js:110
s.<computed> @ handlers.js:10
(anonymous) @ index.js:115
s.<computed> @ handlers.js:10
r @ handlers.js:19
l @ deprecate.js:189
k @ index.js:31
p @ index.js:126
o @ index.js:31
n @ runtime.ts:81
<static_initializer> @ external-link-confirm.gjs:18
(anonymous) @ external-link-confirm.gjs:18
app.js:297 ℹ️ Discourse v2026.1.0-latest — https://github.com/discourse/discourse/commits/1c90b0dd85 — Ember v6.6.0
deprecated.js:52 DEPRECATION NOTICE: Accessing `site.mobileView` or `site.desktopView` during the site initialization can lead to errors and inconsistencies when the browser window is resized. Please move these checks to a component, transformer, or API callback that executes during page rendering. [deprecated since Discourse 3.5.0.beta9-dev] [deprecation id: discourse.static-viewport-initialization] [info: https://meta.discourse.org/t/367810]
d @ deprecated.js:52
get mobileView @ site.js:123
(anonymous) @ compat.js:22
X @ index.js:416
i.get @ compat.js:21
(anonymous) @ initialize-for-pdf-preview.js:10
eH @ plugin-api.gjs:3363
initialize @ initialize-for-pdf-preview.js:9
i.initialize @ app.js:265
(anonymous) @ index.js:379
e.each @ index.js:183
e.walk @ index.js:112
e.each @ index.js:59
e.topsort @ index.js:65
_runInitializer @ index.js:392
runInstanceInitializers @ index.js:377
_bootSync @ instance.js:116
didBecomeReady @ index.js:784
invoke @ index.js:262
flush @ index.js:180
flush @ index.js:334
_end @ index.js:762
_boundAutorunEnd @ index.js:499
Promise.then
(anonymous) @ index.js:18
flush @ index.js:29
_scheduleAutorun @ index.js:928
_ensureInstance @ index.js:919
schedule @ index.js:618
f @ index.js:343
waitForDOMReady @ index.js:512
init @ index.js:412
_ @ core.js:97
create @ core.js:599
(anonymous) @ start-app.js:18
await in (anonymous)
(anonymous) @ discourse-boot.js:13
(anonymous) @ discourse-boot.js:1
loader.js:46 Lazy dependencies loading...

Envié una PR agregando soporte móvil e integración con PDF.js a este componente hace más de 5 semanas, pero aún no he recibido ningún comentario. Como a otros les puede resultar útil, comparto mi bifurcación mejorada:

https://github.com/shortmort37/discourse-pdf-previews

Mejoras clave:

  • Soporte para dispositivos móviles (elimina el bloqueo móvil)
  • Renderizado con PDF.js con navegación de páginas y controles de zoom
  • Vistas previas en miniatura en el modo “Nueva pestaña”
  • Funciona con PDFs que carecen de la clase .attachment (genial para migraciones)
  • Pellizcar para hacer zoom en dispositivos móviles

He estado ejecutando esto en 59plymouth.net durante más de 2 meses con contenido de phpBB convertido; funciona muy bien tanto en escritorio como en móvil.

Instalación: Administrador → Apariencia → Temas → Instalar desde Git → pegar la URL de arriba

La PR todavía está abierta si los mantenedores quieren revisarla: Add PDF.js integration with mobile support by shortmort37 · Pull Request #49 · discourse/discourse-pdf-previews · GitHub

6 Me gusta

Hola a todos,

Estoy usando el componente y acabo de notar esto cuando inicié sesión como administrador:
image

2 Me gusta

¡La descripción de ese PR en GitHub se ve fantástica! :star_struck: También dependo de este componente para numerosas cosas y en numerosos sitios de Discourse, y me encantaría que funcionara en móvil tan bien como en escritorio. Espero que el equipo pueda revisar el PR pronto.

(También he visto el aviso de administrador y he desactivado el componente por ahora)

en 2026.7.0-latest +288

github.com/discourse/discourse-pdf-previews

Acerca de Licencia

Se ha comprobado si hay actualizaciones, última comprobación: hace 9 minutos


Se eliminó Default para que no haya temas en los que esté instalado este componente

1 me gusta

@tpetrov esto ya está corregido :+1:

6 Me gusta

Hola @tobiaseigen: la notificación de administrador que viste es casi con certeza la advertencia de obsolescencia mencionada en la discusión anterior; proviene de la llamada antigua de detección de dispositivos móviles en el componente original. Mi bifurcación adopta un enfoque diferente: en lugar de parchear esa llamada, elimina por completo la restricción para móviles (el objetivo principal era permitir que los PDF se renderizaran en dispositivos móviles), por lo que esa ruta de código obsoleta ha desaparecido por completo. Además, he fusionado los últimos cambios del repositorio principal en mi rama, así que está actualizada.

Si quieres probarlo, se instala desde git en:
https://github.com/shortmort37/discourse-pdf-previews
— usando la rama feature/pdfjs-mobile-support (hay un campo de rama bajo la opción “avanzada” en el cuadro de diálogo de instalación).

Un consejo basado en mis propias pruebas: después de instalarlo, ejecuta “Buscar actualizaciones” en el componente una vez y luego haz una actualización forzada (hard-refresh). Discourse almacena en caché el JS del tema compilado, y este paso se asegura de que estés ejecutando el código actual.

Advertencia: esta es mi bifurcación personal con funciones adicionales (renderizado con PDF.js, navegación por páginas, zoom, miniaturas en modo de nueva pestaña) en lugar del componente oficial, y mi PR para integrar estos cambios en el repositorio principal (#49) sigue abierta y pendiente de revisión. Estoy encantado de responder cualquier pregunta.