인라인 PDF 미리보기

무슨 말씀이세요? 이건 desktop 컴포넌트예요.

정리하자면, Discourse에서 인라인 PDF 미리보기가 여전히 지원된다는 점은 알고 있습니다.

제 질문은 특정 테마 컴포넌트에 관한 것입니다. 최근 Discourse 버전에서 이 컴포넌트는 콘솔에 비권장(deprecation) 경고 메시지를 출력하고 있습니다.

이 문제를 해결하려면 비권장된 API 사용(예: 플러그인 API / Ember 훅)을 업데이트하는 PR이 필요한가요, 아니면 이미 현대화를 위한 작업이 진행 중인가요?

2개의 좋아요

official 로 표시되어 있으므로, 너무 늦기 전에 업데이트될 것으로 추정할 수 있습니다.

4개의 좋아요

게시글이 새 주제로 분리되었습니다: Scribd와 유사한 게이팅 시스템

네, 위에서 언급한 제 기능 PR은 비추천된 API를 수정합니다. 하지만 더 많은 작업이 필요하며, 제가 너무 바빠서 다시 살펴볼 기회가 없었습니다.

1개의 좋아요

모바일 기기에서 PDF를 볼 수 없다는 점이 실망스럽습니다. phpBB가 사용하기에 번거로워서 phpBB 사이트를 Discourse로 이관할 계획인데, 저는 pdf.js를 이용해 게시판에 PDF를 임베드할 수 있는 기능을 직접 구현했습니다. pdf.js는 확대와 panoramique(패닝)을 지원하며, 데스크톱만큼 강력하지는 않지만, 집으로 다시 들어갈 필요 없이 차고에서 매뉴얼을 빠르게 확인하는 데 유용합니다. 아래 예시는 매뉴얼이 아니지만, 이 원리를 보여줍니다: Bulletin #361 - A Diesel in America

페이스북이 제 자리를 위협하고 있으며, 특히 모바일 기기를 통해 그러합니다. 저는 Discourse 연동을 통해 사용자를 다시 끌어들이기를 희망합니다. 하지만 모바일 기기에서 PDF 기능을 잃는 것은 저에게는 이득이 아닙니다.

  • Dan
3개의 좋아요

브라우저에서 PDF가 렌더링되지 않는 것 같습니다 (최소 macOS 25부터 26.2까지)…

1개의 좋아요

콘솔에서 discourse.static-viewport-initialization 비추천(deprecation) 경고가 출력됩니다.

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...

이 컴포넌트에 모바일 지원 및 PDF.js 통합을 추가하는 PR을 5주 이상 전에 제출했지만, 아직 피드백을 받지 못했습니다. 다른 분들에게도 유용할 수 있을 것 같아 개선된 포크를 공유합니다:

주요 개선 사항:

  • 모바일 기기 지원 (모바일 차단 제거)
  • 페이지 탐색 및 줌 컨트롤을 갖춘 PDF.js 렌더링
  • “새 탭” 모드에서의 썸네일 미리보기
  • .attachment 클래스가 없는 PDF와 호환 (마이그레이션에 유용)
  • 모바일 핀치 줌(Pinch-to-zoom) 지원

저는 59plymouth.net에서 변환된 phpBB 콘텐츠와 함께 이 포크를 2개월 이상 사용해 왔으며, 데스크톱과 모바일 모두에서 훌륭하게 작동합니다.

설치 방법: 관리자 → 외관 → 테마 → Git에서 설치 → 위의 URL 붙여넣기

유지보수자들이 검토하기를 원한다면 PR은 여전히 열려 있습니다: Add PDF.js integration with mobile support - Pull Request #49 - discourse/discourse-pdf-previews - GitHub

6개의 좋아요

여러분,

해당 컴포넌트를 사용하다가 관리자 계정으로 로그인했을 때 이 현상을 발견했습니다:
image

2개의 좋아요

GitHub에 올려진 그 PR 설명이 정말 멋집니다! :star_struck: 저도 이 컴포넌트를 여러 곳에서, 그리고 여러 디스커스 사이트에서 사용하고 있어서 데스크톱에서처럼 모바일에서도 잘 작동하면 좋겠습니다. 팀이 곧 PR을 검토해 주셨으면 좋겠네요.

(관리자 공지도 확인했고, 당분간 컴포넌트를 비활성화해 두겠습니다)

2026.7.0-latest +288 기준

github.com/discourse/discourse-pdf-previews

소개 라이선스

업데이트 확인, 마지막 확인: 9분 전


Default를 제거하여 이 컴포넌트가 설치된 테마가 없도록 함

1개의 좋아요

@tpetrov 이제 수정되었습니다 :+1:

6개의 좋아요

@tobiaseigen 안녕하세요 — 보신 관리자 공지사항은 위에서 논의된 비권장(deprecation) 경고일 가능성이 매우 높으며, 원래 컴포넌트의 구식 모바일 감지 호출에서 발생하는 것입니다. 제 포크는 다른 접근 방식을 취합니다. 해당 호출을 패치하는 대신 모바일 제한을 완전히 제거했습니다(모바일에서 PDF가 렌더링되도록 하는 것이 원래 목적이었으므로) 따라서 해당 비권장 코드 경로가 완전히 사라졌습니다. 또한 최신 업스트림 변경 사항을 제 브랜치에 병합했으므로 최신 상태입니다.

시도해 보고 싶으시다면 git에서 설치할 수 있습니다:
https://github.com/shortmort37/discourse-pdf-previews
— feature/pdfjs-mobile-support 브랜치를 사용하세요(설치 다이얼로그의 “고급” 옵션 아래에 브랜치 필드가 있습니다).

제 테스트 과정에서 얻은 팁 하나: 설치 후 컴포넌트에서 "업데이트 확인"을 한 번 실행한 다음 하드 리프레시를 하세요. Discourse는 컴파일된 테마 JS를 캐시하므로, 이 단계를 통해 현재 코드가 실행되고 있는지 확인할 수 있습니다.

이것은 공식 컴포넌트가 아니라 추가 기능(PDF.js 렌더링, 페이지 내비게이션, 확대/축소, 새 탭 모드에서의 썸네일)이 포함된 제 개인 포크임을 경고합니다. 그리고 이러한 변경 사항을 업스트림에 반영하기 위한 제 PR(#49)은 아직 열려 있으며 검토를 기다리고 있습니다. 궁금한 점이 있으시면 기꺼이 답변해 드리겠습니다.

1개의 좋아요