From 87747866b655994582d88d6faa06616e6dd0e561 Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Fri, 3 Apr 2026 08:54:09 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20Phase=201A=20=E2=80=94=20=EC=82=AC?= =?UTF-8?q?=EC=9D=B4=EB=93=9C=EB=B0=94=20=ED=8A=B8=EB=A6=AC=20=EB=84=A4?= =?UTF-8?q?=EB=B9=84=EA=B2=8C=EC=9D=B4=EC=85=98=20+=20domain/sub=5Fgroup?= =?UTF-8?q?=20=ED=95=84=ED=84=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Sidebar.svelte: /api/documents/tree 기반 domain→sub_group 트리, 접기/펼치기, active highlight, 모바일 drawer - documents/+page.svelte: 2-pane 레이아웃, URL params 기반 필터, 빈 상태 개선, 카드 정보 밀도 향상 (domain 경로, 태그, origin 배지) - documents.py: sub_group 필터 파라미터 추가 - app.css: domain 7색 + sidebar CSS 변수 Co-Authored-By: Claude Opus 4.6 (1M context) --- app/api/documents.py | 3 + frontend/src/app.css | 13 + frontend/src/lib/components/Sidebar.svelte | 200 ++++++++++++ frontend/src/routes/documents/+page.svelte | 347 ++++++++++++++------- 4 files changed, 445 insertions(+), 118 deletions(-) create mode 100644 frontend/src/lib/components/Sidebar.svelte diff --git a/app/api/documents.py b/app/api/documents.py index d6462c0..affaa43 100644 --- a/app/api/documents.py +++ b/app/api/documents.py @@ -117,6 +117,7 @@ async def list_documents( page: int = Query(1, ge=1), page_size: int = Query(20, ge=1, le=100), domain: str | None = None, + sub_group: str | None = None, source: str | None = None, format: str | None = None, ): @@ -125,6 +126,8 @@ async def list_documents( if domain: query = query.where(Document.ai_domain == domain) + if sub_group: + query = query.where(Document.ai_sub_group == sub_group) if source: query = query.where(Document.source_channel == source) if format: diff --git a/frontend/src/app.css b/frontend/src/app.css index ac22664..abaaf35 100644 --- a/frontend/src/app.css +++ b/frontend/src/app.css @@ -11,6 +11,19 @@ --error: #f5564e; --success: #4ade80; --warning: #fbbf24; + + /* domain 색상 */ + --domain-philosophy: #a78bfa; + --domain-language: #f472b6; + --domain-engineering: #38bdf8; + --domain-safety: #fb923c; + --domain-programming: #34d399; + --domain-general: #94a3b8; + --domain-reference: #fbbf24; + + /* sidebar */ + --sidebar-w: 260px; + --sidebar-bg: #141720; } body { diff --git a/frontend/src/lib/components/Sidebar.svelte b/frontend/src/lib/components/Sidebar.svelte new file mode 100644 index 0000000..898069e --- /dev/null +++ b/frontend/src/lib/components/Sidebar.svelte @@ -0,0 +1,200 @@ + + + diff --git a/frontend/src/routes/documents/+page.svelte b/frontend/src/routes/documents/+page.svelte index 52ab793..3310e59 100644 --- a/frontend/src/routes/documents/+page.svelte +++ b/frontend/src/routes/documents/+page.svelte @@ -1,33 +1,54 @@ -
-