diff --git a/frontend/src/routes/documents/[id]/+page.svelte b/frontend/src/routes/documents/[id]/+page.svelte index c362af3..f23bd5a 100644 --- a/frontend/src/routes/documents/[id]/+page.svelte +++ b/frontend/src/routes/documents/[id]/+page.svelte @@ -20,12 +20,22 @@ let doc = $state(null); let loading = $state(true); let error = $state(null); // 'not_found' | 'network' | null + let rawMarkdown = $state(''); // hotfix: extracted_text 없을 때 원본 fetch fallback let docId = $derived($page.params.id); onMount(async () => { try { doc = await api(`/documents/${docId}`); + // hotfix: markdown 계열인데 extracted_text 없으면 원본 .md 파일 직접 가져오기 + // (split view의 DocumentViewer와 동일한 동작 — A-8 후 보고된 fallback 표시 문제 해결) + const vt = doc.source_channel === 'news' ? 'article' : getViewerType(doc.file_format); + if ((vt === 'markdown' || vt === 'hwp-markdown') && !doc.extracted_text) { + try { + const resp = await fetch(`/api/documents/${docId}/file?token=${getAccessToken()}`); + if (resp.ok) rawMarkdown = await resp.text(); + } catch (e) { rawMarkdown = ''; } + } } catch (err) { error = err?.status === 404 ? 'not_found' : 'network'; } finally { @@ -73,7 +83,7 @@
{#if viewerType === 'markdown' || viewerType === 'hwp-markdown'}
- {@html renderMd(doc.extracted_text || '*텍스트 추출 대기 중*')} + {@html renderMd(doc.extracted_text || rawMarkdown || '*텍스트 추출 대기 중*')}
{:else if viewerType === 'pdf'}