From dc1083d7c2d1e725b7f7aa091de7bfc68c04ab95 Mon Sep 17 00:00:00 2001 From: seonghobae <8172694+seonghobae@users.noreply.github.com> Date: Sun, 19 Jul 2026 21:21:29 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Palette:=20=EB=B9=88=20=EB=94=94?= =?UTF-8?q?=EB=A0=89=ED=86=A0=EB=A6=AC=20=EC=95=84=EC=9D=B4=EC=BD=98=20?= =?UTF-8?q?=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .jules/palette.md | 4 ++++ src/main/kotlin/html4tree/main.kt | 10 +++++++++- src/test/kotlin/html4tree/MainTest.kt | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/.jules/palette.md b/.jules/palette.md index 9a12c9de..3bb53253 100644 --- a/.jules/palette.md +++ b/.jules/palette.md @@ -48,3 +48,7 @@ ## 2024-08-01 - 네이티브 브라우저 UI의 다크 모드 지원 강제 **학습:** CSS 미디어 쿼리(`@media (prefers-color-scheme: dark)`)를 통해 다크 모드를 지원하더라도, 브라우저의 네이티브 UI 요소(스크롤바, 기본 폼 컨트롤, 기본 백그라운드 등)는 테마 변경을 인식하지 못해 어두운 테마 환경에서 밝은 스크롤바가 표시되는 등 시각적 불일치를 초래합니다. **조치:** 항상 HTML 문서의 `
` 영역에 `` 메타 태그를 명시적으로 추가하여 브라우저 수준에서 사용자의 시스템 테마(다크 모드 등)를 완전히 상속받아 일관성 있는 네이티브 UI를 렌더링하도록 보장하십시오. + +## 2024-09-08 - 빈 디렉토리 아이콘 메타포 +**학습:** 디렉토리 목록에서 빈 폴더와 내용이 있는 폴더를 시각적으로 구분하지 않으면, 사용자는 빈 폴더를 클릭하여 확인해야 하는 불필요한 상호작용을 겪게 됩니다. +**조치:** 디렉토리 아이콘 렌더링 시 디렉토리가 비어 있는지 확인하고, 비어 있는 경우 열린 폴더 아이콘(`📂`)을 사용하여 사용자에게 시각적 힌트를 제공하여 불필요한 클릭을 방지하십시오. diff --git a/src/main/kotlin/html4tree/main.kt b/src/main/kotlin/html4tree/main.kt index b4558624..367388fc 100644 --- a/src/main/kotlin/html4tree/main.kt +++ b/src/main/kotlin/html4tree/main.kt @@ -362,7 +362,15 @@ ${cssContent} if (!isSymbolicLink) { val encodedHref = if (isLinkedDirectory) { "./${fileName.urlEncodePath()}/" } else { "./${fileName.urlEncodePath()}" } val ariaLabel = "${fileName} ${if (isLinkedDirectory) { "디렉토리" } else { "파일" }}".escapeHtml() - val icon = if (isLinkedDirectory) { "📁" } else { "📄" } + val icon = if (isLinkedDirectory) { + var isEmpty = false + try { + val stream = java.nio.file.Files.newDirectoryStream(it.toPath()) + try { isEmpty = !stream.iterator().hasNext() } finally { stream.close() } + } catch (e: Exception) { + } + if (isEmpty) "📂" else "📁" + } else { "📄" } l.append("""