diff --git a/README.md b/README.md index af8cabe..7df63ed 100644 --- a/README.md +++ b/README.md @@ -106,7 +106,7 @@ ai_platform/ │ ├─ partials/mgmt_perf_dashboard_container.ejs │ ├─ ai-prompts.ejs # 프롬프트 라이브러리 (카드·미리보기·복사) │ ├─ ai-cases.ejs # AI 성공 사례 목록(카드) -│ ├─ ai-case-detail.ejs # AI 성공 사례 상세(마크다운) +│ ├─ ai-case-detail.ejs # AI 성공 사례 상세(마크다운 또는 PDF·페이지 이미지, 1·2·3단 보기) │ ├─ ai-cases-write.ejs # AI 성공 사례 관리자 등록·편집 │ ├─ ax-apply.ejs # AX 과제 신청 │ ├─ lecture-youtube.ejs # 유튜브 강의 상세 (iframe 임베드) diff --git a/public/styles.css b/public/styles.css index 5b334a9..e208fb1 100644 --- a/public/styles.css +++ b/public/styles.css @@ -596,6 +596,14 @@ button { gap: 6px; } +.ai-case-tools-meta { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 6px; + min-width: 0; +} + .ai-case-tool-sep { color: #d1d5db; margin: 0 2px; diff --git a/views/ai-case-detail.ejs b/views/ai-case-detail.ejs index ccc5557..faa65ae 100644 --- a/views/ai-case-detail.ejs +++ b/views/ai-case-detail.ejs @@ -19,20 +19,28 @@ ← AI 성공 사례로 돌아가기

<%= story.title %>

<%= story.excerpt || (story.department + ' · ' + story.author) %>

-
- <%= slides.length %>페이지 - - <%= story.department %> · <%= story.author %><% if (story.publishedAt) { %> · <%= story.publishedAt %><% } %> - <% if (typeof adminMode !== 'undefined' && adminMode) { %> - - 편집 - <% } %> - - 다운로드 - <% if (typeof adminMode !== 'undefined' && adminMode) { %> - - - <% } %> +
+
+ <%= slides.length %>페이지 + + <%= story.department %> · <%= story.author %><% if (story.publishedAt) { %> · <%= story.publishedAt %><% } %> + <% if (typeof adminMode !== 'undefined' && adminMode) { %> + + 편집 + <% } %> + + 다운로드 + <% if (typeof adminMode !== 'undefined' && adminMode) { %> + + + <% } %> +
+
+ 보기 + + + +
<% if ((story.tags || []).length) { %>
@@ -44,25 +52,17 @@ <% if (!slideImageUrls || slideImageUrls.length === 0) { %>

PDF를 페이지 이미지로 보여 주지 못했습니다. 원본 PDF로 보기. 서버에는 pdftoppm(Poppler)이 필요하고, 저장된 PDF 주소는 브라우저에서 열리는 것과 같이 /public/... 또는 그와 같은 경로의 전체 URL이어야 합니다.

<% } %> -
+
<% slides.forEach((slide, index) => { %>

페이지 <%= index + 1 %>

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

<%= slide.title %>

<% } %>
<% if (slideImageUrls[index]) { %>
페이지 <%= index + 1 %>
<% } %> - <% if (slide.lines && slide.lines.length > 0) { %> -
    - <% slide.lines.forEach((line) => { %> -
  • <%= line %>
  • - <% }) %> -
- <% } %>
<% }) %>
@@ -101,6 +101,43 @@ <% } %>
+ <% if (showPdfViewer) { %> + + <% } %> <% if (typeof adminMode !== 'undefined' && adminMode) { %>