diff --git a/frontend/search.html b/frontend/search.html index 3538500..802aae6 100644 --- a/frontend/search.html +++ b/frontend/search.html @@ -406,6 +406,8 @@
-
+ +
+
+ 메모 트리 정보 +
+
+
+
diff --git a/frontend/static/js/search.js b/frontend/static/js/search.js index a401bd6..6ea1008 100644 --- a/frontend/static/js/search.js +++ b/frontend/static/js/search.js @@ -215,15 +215,54 @@ window.searchApp = function() { switch (result.type) { case 'document': - // 문서 내용 API 호출 - const docContent = await this.api.get(`/documents/${result.document_id}/content`); - content = docContent; + case 'document_content': + try { + // 문서 내용 API 호출 (HTML 응답) + const response = await fetch(`/api/documents/${result.document_id}/content`, { + headers: { + 'Authorization': `Bearer ${localStorage.getItem('token')}` + } + }); + + if (response.ok) { + const htmlContent = await response.text(); + // HTML에서 텍스트만 추출 + const parser = new DOMParser(); + const doc = parser.parseFromString(htmlContent, 'text/html'); + content = doc.body.textContent || doc.body.innerText || ''; + // 너무 길면 자르기 + if (content.length > 2000) { + content = content.substring(0, 2000) + '...'; + } + } else { + content = result.content; + } + } catch (err) { + console.warn('문서 내용 로드 실패, 기본 내용 사용:', err); + content = result.content; + } break; case 'note': - // 노트 내용 API 호출 - const noteContent = await this.api.get(`/note-documents/${result.id}/content`); - content = noteContent; + try { + // 노트 내용 API 호출 + const noteContent = await this.api.get(`/note-documents/${result.id}/content`); + content = noteContent; + } catch (err) { + console.warn('노트 내용 로드 실패, 기본 내용 사용:', err); + content = result.content; + } + break; + + case 'memo': + try { + // 메모 노드 상세 정보 로드 + const memoNode = await this.api.get(`/memo-trees/nodes/${result.id}`); + content = memoNode.content || result.content; + } catch (err) { + console.warn('메모 내용 로드 실패, 기본 내용 사용:', err); + content = result.content; + } break; default: