From b4eb5da365786520515f6007b621a9dddcc24141 Mon Sep 17 00:00:00 2001 From: dsyoon Date: Sat, 18 Apr 2026 08:28:20 +0900 Subject: [PATCH] =?UTF-8?q?fix(lecture-ppt):=20=EC=8A=AC=EB=9D=BC=EC=9D=B4?= =?UTF-8?q?=EB=93=9C=20PNG=EA=B0=80=20=EC=9E=88=EC=9D=84=20=EB=95=8C=20XML?= =?UTF-8?q?=20=ED=85=8D=EC=8A=A4=ED=8A=B8=20=EB=AA=A9=EB=A1=9D=20=EC=88=A8?= =?UTF-8?q?=EA=B9=80(=EC=A1=B0=EA=B0=81=EB=82=9C=20=ED=8F=B4=EB=B0=B1=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C=20=EB=B0=A9=EC=A7=80)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- README.md | 6 +++--- views/lecture-ppt.ejs | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7020532..f1155bc 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ - 강의 상세에서 iframe 임베드로 재생 - PPT 강의 등록/시청 - `.pptx` 파일 업로드 - - 상세에서 슬라이드 텍스트 기반 뷰어 제공 + - 상세에서 슬라이드 이미지(PNG) 뷰어, 이미지가 없을 때만 XML 텍스트 목록(폴백) - 목록 카드에 PPT 프리뷰(첫 슬라이드 제목 + 장수) 표시 - macOS 환경에서는 `qlmanage` 기반 실제 썸네일(첫 장 이미지) 자동 생성 - 썸네일 백그라운드 큐 @@ -109,7 +109,7 @@ ai_platform/ │ ├─ ai-cases-write.ejs # AI 성공 사례 관리자 등록·편집 │ ├─ ax-apply.ejs # AX 과제 신청 │ ├─ lecture-youtube.ejs # 유튜브 강의 상세 (iframe 임베드) -│ ├─ lecture-ppt.ejs # PPT 강의 상세 (슬라이드 텍스트 뷰어) +│ ├─ lecture-ppt.ejs # PPT 강의 상세 (슬라이드 이미지 + 텍스트 폴백) │ └─ admin-thumbnail-events.ejs # 썸네일 이벤트 로그 관리자 페이지 ├─ data/ │ ├─ lectures.json # 강의 메타데이터 (ENABLE_POSTGRES=0 또는 DB 폴백 시) @@ -468,7 +468,7 @@ OPENAI_API_KEY= 2. 하단 **등록된 강의** 카드에서 항목 클릭 3. 강의 상세 화면에서 시청 - 유튜브: 동영상 재생 - - PPT: 슬라이드 텍스트 목록 확인 + - PPT: 슬라이드 이미지 확인(생성된 경우), 미생성 시 텍스트 목록 폴백 ### 검색/필터 diff --git a/views/lecture-ppt.ejs b/views/lecture-ppt.ejs index c3e5f38..07676c1 100644 --- a/views/lecture-ppt.ejs +++ b/views/lecture-ppt.ejs @@ -34,14 +34,14 @@

슬라이드 <%= index + 1 %>

- <% if (slide.title) { %>

<%= slide.title %>

<% } %> + <% if (slide.title && !slideImageUrls[index]) { %>

<%= slide.title %>

<% } %>
<% if (slideImageUrls[index]) { %>
슬라이드 <%= index + 1 %>
<% } %> - <% if (slide.lines && slide.lines.length > 0) { %> + <% if (slide.lines && slide.lines.length > 0 && !slideImageUrls[index]) { %>