From 16f3e313da10fb102a92ba6129ed5a97f4d4c7a6 Mon Sep 17 00:00:00 2001 From: hyungi Date: Sat, 20 Jun 2026 08:25:41 +0900 Subject: [PATCH] =?UTF-8?q?feat(frontend):=20=EC=A0=88=20=EB=B0=94?= =?UTF-8?q?=EB=A1=9C=EA=B0=80=EA=B8=B0=20=ED=8E=98=EC=9D=B4=EC=A7=80(/clau?= =?UTF-8?q?se)=20+=20=EC=82=AC=EC=9D=B4=EB=93=9C=EB=B0=94=20=EB=A7=81?= =?UTF-8?q?=ED=81=AC=20=E2=80=94=20U-1=20=EC=A7=84=EC=9E=85=EC=A0=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ASME 절 식별자(UG-79 등) 입력 → /api/documents/clause-lookup → 문서·위치 결과 → 읽기뷰 이동. 절은 in_corpus=false(의미검색 비활성)라 이 정확지목 진입점이 유일 경로. 사이드바(자료실 옆 'Hash 절 바로가기')로 노출. 신규 라우트라 기존 표면 미접촉. Co-Authored-By: Claude Opus 4.8 (1M context) --- frontend/src/lib/components/Sidebar.svelte | 9 ++- frontend/src/routes/clause/+page.svelte | 73 ++++++++++++++++++++++ 2 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 frontend/src/routes/clause/+page.svelte diff --git a/frontend/src/lib/components/Sidebar.svelte b/frontend/src/lib/components/Sidebar.svelte index 4e4dd03..e1c05b4 100644 --- a/frontend/src/lib/components/Sidebar.svelte +++ b/frontend/src/lib/components/Sidebar.svelte @@ -2,7 +2,7 @@ import { page } from '$app/stores'; import { goto } from '$app/navigation'; import { api } from '$lib/api'; - import { ChevronRight, ChevronDown, FolderOpen, FolderTree, Inbox, Clock, Mail, Scale, StickyNote, GraduationCap, CalendarCheck, MessageCircle } from 'lucide-svelte'; + import { ChevronRight, ChevronDown, FolderOpen, FolderTree, Inbox, Clock, Mail, Scale, StickyNote, GraduationCap, CalendarCheck, MessageCircle, Hash } from 'lucide-svelte'; let tree = $state([]); let loading = $state(true); @@ -195,6 +195,13 @@ > 자료실 + + 절 바로가기 + diff --git a/frontend/src/routes/clause/+page.svelte b/frontend/src/routes/clause/+page.svelte new file mode 100644 index 0000000..49a5138 --- /dev/null +++ b/frontend/src/routes/clause/+page.svelte @@ -0,0 +1,73 @@ + + +
+

절 바로가기

+

+ ASME 절 식별자(예: UG-79, PG-5)로 문서·위치를 찾아 이동합니다. +

+ +
{ e.preventDefault(); lookup(); }} class="mb-6 flex gap-2"> + + +
+ + {#if error} +

{error}

+ {:else if searched && hits.length === 0} +

'{label}' 에 해당하는 절을 찾지 못했습니다. (절은 분해된 코드 문서에만 존재합니다)

+ {:else if hits.length > 0} +
+ {#if hits.length > 1} +

{hits.length}개 문서에 존재 — 에디션/부록을 선택하세요.

+ {/if} + {#each hits as hit (hit.chunk_id)} + + {/each} +
+ {/if} +