Aperçus PDF en ligne

Qu’entendez-vous par là ? Ceci est un composant de #bureau.

Pour clarifier - je sais que les aperçus PDF en ligne sont toujours pris en charge dans Discourse.

Ma question concerne spécifiquement le composant de thème lui-même - il génère actuellement des avertissements de dépréciation dans la console sur les versions récentes de Discourse.

Cela nécessiterait-il une PR pour mettre à jour l’utilisation de l’API dépréciée (par exemple, l’API de plugin / les hooks Ember), ou des travaux sont-ils déjà en cours pour le moderniser ?

1 « J'aime »

Puisqu’il est marqué comme #officiel, il est raisonnable de supposer qu’il sera mis à jour avant qu’il ne soit trop tard.

4 « J'aime »

Un sujet a été divisé en un nouveau sujet : Système de verrouillage similaire à Scribd

Oui, ma PR de fonctionnalité ci-dessus corrige l’API dépréciée. Cependant, elle nécessite plus de travail, et j’ai été trop occupé pour y regarder à nouveau.

1 « J'aime »

Je suis déçu que la visualisation d’un pdf sur un appareil mobile ne soit pas autorisée. J’espère migrer mon site phpBB vers Discourse, car phpBB est lourd - mais j’ai piraté une fonctionnalité dans mon forum en utilisant pdf.js qui me permet d’intégrer des pdf. Et pdf.js vous permet de zoomer et de vous déplacer - bien que ce ne soit pas aussi robuste que sur le bureau, c’est utile dans le garage pour scanner un manuel sans avoir à retourner à la maison. Cet exemple n’est pas celui d’un manuel, mais démontre le principe : Bulletin #361 - A Diesel in America

Facebook me mange mon déjeuner, et principalement avec des appareils mobiles - j’espère reconquérir des utilisateurs avec une intégration Discourse. Mais perdre le pdf sur le portable n’est pas une victoire pour moi.

-Dan

3 « J'aime »

Il semble que les PDF ne s’affichent pas dans Brave sur Mac OS (du moins de la version 25 à la 26.2)…

1 « J'aime »

La console affiche un avertissement de dépréciation 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...

J’ai soumis une Pull Request (PR) ajoutant la prise en charge mobile et l’intégration de PDF.js à ce composant il y a plus de 5 semaines, mais je n’ai pas encore reçu de retour. Puisque d’autres pourraient trouver cela utile, je partage ma version améliorée (fork) :

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

Principales améliorations :

  • Prise en charge des appareils mobiles (supprime le blocage mobile)
  • Rendu PDF.js avec navigation par page et commandes de zoom
  • Aperçus miniatures en mode “Nouvel Onglet”
  • Fonctionne avec les PDF ne possédant pas la classe .attachment (utile pour les migrations)
  • Pincer pour zoomer sur mobile

Je l’utilise sur 59plymouth.net depuis plus de 2 mois avec du contenu phpBB converti - cela fonctionne très bien sur ordinateur et mobile.

Installation : Admin → Apparence → Thèmes → Installer depuis Git → coller l’URL ci-dessus

La PR est toujours ouverte si les mainteneurs souhaitent l’examiner : Add PDF.js integration with mobile support by shortmort37 · Pull Request #49 · discourse/discourse-pdf-previews · GitHub

5 « J'aime »

Salut tout le monde,

J’utilise le composant et je viens de remarquer ceci en étant connecté en tant qu’administrateur :
image

2 « J'aime »

Cette description de PR sur GitHub est fantastique ! :star_struck: Je m’appuie également sur ce composant pour de nombreuses choses et sur de nombreux sites Discourse, et j’aimerais qu’il fonctionne aussi bien sur mobile que sur desktop. J’espère que l’équipe pourra examiner la PR bientôt.

(Je vois aussi l’avis administrateur, et je désactive le composant pour le moment)

sur 2026.7.0-latest +288

github.com/discourse/discourse-pdf-previews

À propos Licence

Vérification des mises à jour, dernière vérification : il y a 9 minutes


Default a été supprimé, de sorte qu’il n’y a plus de thèmes sur lesquels ce composant est installé

1 « J'aime »

@tpetrov c’est maintenant corrigé :+1:

5 « J'aime »

Salut @tobiaseigen — l’avis administrateur que tu as vu est presque certainement l’avertissement de dépréciation derrière la discussion ci-dessus ; il provient de l’ancien appel de détection mobile dans le composant original. Ma fourchette adopte une approche différente : plutôt que de corriger cet appel, elle supprime complètement la restriction mobile (le but était de permettre le rendu des PDF sur mobile), donc ce chemin de code déprécié est entièrement supprimé. J’ai également fusionné les dernières modifications en amont dans ma branche, donc elle est à jour.

Si tu veux l’essayer, il s’installe depuis git à :
https://github.com/shortmort37/discourse-pdf-previews
— en utilisant la branche feature/pdfjs-mobile-support (il y a un champ de branche sous l’option « avancé » dans la boîte de dialogue d’installation).

Un conseil issu de mes propres tests : après l’installation, exécute « Vérifier les mises à jour » sur le composant une fois, puis fais un rechargement forcé — Discourse met en cache le JS de thème compilé, et cette étape s’assure que tu exécutes le code actuel.

Avertissement honnête : il s’agit de ma fourchette personnelle avec des fonctionnalités ajoutées (rendu PDF.js, navigation de page, zoom, miniatures en mode nouvel onglet) plutôt que du composant officiel, et ma PR pour intégrer ces modifications en amont (#49) est toujours ouverte et en attente de révision. Heureux de répondre à toutes vos questions.