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: