diff --git a/frontend/src/routes/news/+page.svelte b/frontend/src/routes/news/+page.svelte index 3eaf8a3..08680fe 100644 --- a/frontend/src/routes/news/+page.svelte +++ b/frontend/src/routes/news/+page.svelte @@ -24,6 +24,8 @@ let currentPage = $state(1); let noteEditing = $state(false); let noteText = $state(''); + let contentEditing = $state(false); + let contentText = $state(''); let expandedSources = $state({}); onMount(async () => { @@ -71,6 +73,8 @@ function selectArticle(article) { selectedArticle = article; + noteEditing = false; + contentEditing = false; if (!article.is_read) markRead(article); } @@ -95,6 +99,22 @@ } } + async function saveContent() { + try { + // 본문은 extracted_text에 추가 (기존 요약 유지 + 본문 합산) + const newText = selectedArticle.extracted_text + '\n\n---\n\n' + contentText; + await api(`/documents/${selectedArticle.id}/content`, { + method: 'PUT', + body: JSON.stringify({ content: newText }), + }); + selectedArticle.extracted_text = newText; + contentEditing = false; + addToast('success', '본문 저장됨'); + } catch (e) { + addToast('error', '본문 저장 실패'); + } + } + async function saveNote() { try { await api(`/documents/${selectedArticle.id}`, { @@ -269,35 +289,68 @@

{selectedArticle.title}

+ + + {#if selectedArticle.ai_summary} +
+

AI 요약

+
+ {@html renderMd(selectedArticle.ai_summary)} +
+
+ {/if} + +
{@html renderMd(selectedArticle.extracted_text || '')}
- {#if noteEditing} -
-

본문 / 메모 입력

+
+

본문 입력

+ {#if contentEditing} + +
+ + +
+ {:else} + + {/if} +
+ + +
+

메모

+ {#if noteEditing}
-
- {:else} - - {#if selectedArticle.user_note} -
- {selectedArticle.user_note} -
+ {:else} + + {#if selectedArticle.user_note} +
+ {selectedArticle.user_note} +
+ {/if} {/if} - {/if} +
{/if}