Visualizações em linha de PDF

O que você quer dizer? Este é um componente de desktop.

Apenas para esclarecer - eu sei que as pré-visualizações de PDF embutidas ainda são suportadas no Discourse.

Minha pergunta é especificamente sobre o componente de tema em si - ele atualmente gera avisos de descontinuação no console nas versões recentes do Discourse.

Isso exigiria um PR para atualizar o uso da API descontinuada (por exemplo, API de plugin / ganchos Ember), ou já há trabalho em andamento para modernizá-lo?

1 curtida

Como está marcado como #oficial, é razoável supor que será atualizado antes que seja tarde demais.

4 curtidas

Uma postagem foi dividida em um novo tópico: Sistema de bloqueio semelhante ao Scribd

Sim, meu PR de recurso acima corrige a API obsoleta. No entanto, ele precisa de mais trabalho, e eu estive muito ocupado para analisá-lo novamente.

1 curtida

Estou desapontado que a visualização de um pdf em um dispositivo móvel não seja permitida. Estou esperando migrar meu site phpBB para o Discourse, porque o phpBB é desajeitado - mas, eu fiz um hack em um recurso no meu fórum usando pdf.js que me permite incorporar pdfs. E o pdf.js permite que você amplie e mova - embora não seja tão robusto quanto no desktop, é útil na garagem para escanear um manual sem ter que voltar para dentro de casa. Este exemplo não é o de um manual, mas demonstra o princípio: Bulletin #361 - A Diesel in America

O Facebook está comendo meu almoço, e principalmente com dispositivos móveis - estou esperando reconquistar usuários com uma integração do Discourse. Mas perder o pdf no aparelho não é uma vitória para mim.

-Dan

3 curtidas

Parece que os PDFs não estão sendo renderizados no Brave no Mac OS (pelo menos nas versões 25 até 26.2)…

1 curtida

Console mostra aviso de descontinuação 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.
(匿名) @ deprecate.js:72
s.computed @ handlers.js:10
(匿名) @ deprecate.js:108
s.computed @ handlers.js:10
(匿名) @ deprecate.js:116
s.computed @ handlers.js:10
(匿名) @ index.js:75
(匿名) @ index.js:110
s.computed @ handlers.js:10
(匿名) @ 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
(匿名) @ 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
(匿名) @ compat.js:22
X @ index.js:416
i.get @ compat.js:21
(匿名) @ initialize-for-pdf-preview.js:10
eH @ plugin-api.gjs:3363
initialize @ initialize-for-pdf-preview.js:9
i.initialize @ app.js:265
(匿名) @ 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
(匿名) @ 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
(匿名) @ start-app.js:18
await in (匿名)
(匿名) @ discourse-boot.js:13
(匿名) @ discourse-boot.js:1
loader.js:46 Lazy dependencies loading...

Submeti um PR adicionando suporte móvel e integração com PDF.js a este componente
há mais de 5 semanas, mas ainda não recebi nenhum feedback. Como outros podem achar
isso útil, estou compartilhando meu fork aprimorado:

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

Principais melhorias:

  • Suporte para dispositivos móveis (remove o bloco móvel)
  • Renderização com PDF.js com navegação de página e controles de zoom
  • Miniaturas na visualização em modo “Nova Guia”
  • Funciona com PDFs sem a classe .attachment (ótimo para migrações)
  • Pinçar para aplicar zoom no celular

Estou rodando isso em 59plymouth.net há mais de 2 meses com
conteúdo phpBB convertido - funciona muito bem tanto no desktop quanto no celular.

Instalação: Admin → Aparência → Temas → Instalar do Git → cole a URL acima

O PR ainda está aberto se os mantenedores quiserem revisar: Add PDF.js integration with mobile support by shortmort37 · Pull Request #49 · discourse/discourse-pdf-previews · GitHub

5 curtidas

E aí, pessoal,

Estou usando o componente e acabei de notar isso quando fiz login como administrador:
image

2 curtidas

A descrição dessa PR no GitHub parece fantástica! :star_struck: Eu também dependo desse componente para muitas coisas e em vários sites Discourse, e adoraria que ele funcionasse no mobile tão bem quanto no desktop. Espero que a equipe possa analisar a PR em breve.

(Também vi o aviso do admin e desativei o componente por enquanto)

em 2026.7.0-latest +288

github.com/discourse/discourse-pdf-previews

Sobre Licença

Verificação de atualizações, última verificação: 9 minutos atrás


removido Default para que não haja temas onde este componente esteja instalado

1 curtida

@tpetrov isso agora está corrigido :+1:

5 curtidas

Olá @tobiaseigen — o aviso do administrador que você viu é quase certamente o aviso de depreciação discutido acima; ele vem da chamada mais antiga de detecção de dispositivos móveis no componente original. Meu fork adota uma abordagem diferente: em vez de corrigir essa chamada, ele remove a restrição para dispositivos móveis por completo (o objetivo principal era permitir que os PDFs fossem renderizados em dispositivos móveis), então esse caminho de código depreciado foi totalmente removido. Desde então, também integrei as alterações mais recentes do repositório principal em meu branch, então ele está atualizado.

Se quiser testá-lo, ele pode ser instalado diretamente do git em:
https://github.com/shortmort37/discourse-pdf-previews
— usando o branch feature/pdfjs-mobile-support (há um campo de branch na opção “avançado” da caixa de diálogo de instalação).

Uma dica dos meus próprios testes: após a instalação, execute “Verificar atualizações” no componente uma vez e depois faça um recarregamento forçado — o Discourse armazena em cache o JS do tema compilado, e essa etapa garante que você esteja executando o código atualizado.

Aviso justo: este é meu fork pessoal com recursos adicionais (renderização PDF.js, navegação por páginas, zoom, miniaturas no modo de nova aba) em vez do componente oficial, e meu PR para integrar essas alterações no repositório principal (#49) ainda está aberto e aguardando revisão. Fico feliz em responder a qualquer dúvida.