Что вы имеете в виду? Это компонент desktop.
Просто для уточнения — я знаю, что встроенные предпросмотры PDF-файлов в Discourse всё ещё поддерживаются.
Мой вопрос касается конкретно самого компонента темы: в последних версиях Discourse он выводит предупреждения об устаревании в консоль.
Требуется ли для этого PR для обновления использования устаревших API (например, плагин API / хуки Ember), или уже ведутся работы по его модернизации?
Поскольку это помечено как official, разумно предположить, что оно будет обновлено до того, как станет слишком поздно.
Пост был перемещен в новую тему: Система ограничения доступа, аналогичная Scribd
Да, мой вышеупомянутый PR с функцией исправляет устаревшее использование API. Однако над ним ещё нужно поработать, и я был слишком занят, чтобы вернуться к нему.
Меня разочаровывает то, что просмотр PDF-файлов на мобильных устройствах не поддерживается. Я планирую перенести свой сайт phpBB на Discourse, потому что phpBB кажется неудобным, но я добавил в свой форум функцию с помощью pdf.js, которая позволяет встраивать PDF-файлы. pdf.js позволяет масштабировать и перемещать документ; хотя это не так надёжно, как на настольных компьютерах, это очень удобно в гараже, чтобы быстро просмотреть инструкцию, не возвращаясь в дом. Этот пример касается не инструкции, но демонстрирует сам принцип: Бюллетень №361 — Дизель в Америке
Facebook забирает мою аудиторию, в основном через мобильные устройства. Я надеюсь вернуть пользователей с помощью интеграции Discourse, но потеря возможности просматривать PDF на мобильных устройствах для меня неприемлема.
— Дэн
Похоже, что PDF-файлы не отображаются в браузере Brave на macOS (по крайней мере, в версиях от 25 до 26.2)…
В консоли появляется предупреждение об устаревании 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...
Я отправил PR с поддержкой мобильных устройств и интеграцией PDF.js в этот компонент более 5 недель назад, но обратной связи до сих пор не получил. Поскольку это может быть полезно и другим, делюсь своей улучшенной версией (fork):
Ключевые улучшения:
- Поддержка мобильных устройств (убрано ограничение для мобильных)
- Рендеринг через PDF.js с навигацией по страницам и управлением масштабированием
- Предпросмотр миниатюр в режиме «Новая вкладка»
- Работает с PDF-файлами без класса .attachment (отлично подходит для миграций)
- Масштабирование щипком на мобильных устройствах
Я использую это решение на 59plymouth.net уже более 2 месяцев с контентом, конвертированным из phpBB — отлично работает как на десктопе, так и на мобильных.
Установка: Администрирование → Внешний вид → Темы → Установка из Git → вставьте URL выше
PR всё ещё открыт, если мейнтейнеры захотят его просмотреть: Add PDF.js integration with mobile support by shortmort37 · Pull Request #49 · discourse/discourse-pdf-previews · GitHub
