feat(web): GitHub Pages 기반 NFD→NFC 파일명 변환 웹앱 추가

설치 없이 브라우저에서 한글 파일명을 NFC 로 정규화할 수 있는 웹 도구.
파일/폴더 드롭 → 모든 path segment 를 독립적으로 NFC 변환 → fflate 스트리밍
ZIP 다운로드. UTF-8 flag(bit 11) 자동 설정으로 Windows Explorer 에서 정상 표시.

기존 src/core/filter.ts 의 shouldNormalize 를 그대로 재사용. 빌드는 web/
디렉토리의 별도 Vite 설정으로 격리되어 Electron 빌드에 영향 없음.

main 브랜치 push 시 .github/workflows/pages.yml 이
https://jung-geun.github.io/NFD2NFC/ 로 자동 배포.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-11 15:11:41 +09:00
parent aa772f7f97
commit e967a0fbdb
15 changed files with 1003 additions and 2 deletions

View File

@@ -29,6 +29,9 @@
"build": "npm run build:cli && npm run build:lib && npm run build:app",
"prepublishOnly": "npm run build:cli && npm run build:lib && chmod +x out/cli/index.js",
"preview": "electron-vite preview",
"web:dev": "vite --config web/vite.config.ts",
"web:build": "vite build --config web/vite.config.ts",
"web:preview": "vite preview --config web/vite.config.ts",
"test": "vitest run",
"test:watch": "vitest",
"lint": "eslint src --ext .ts,.tsx",
@@ -36,6 +39,7 @@
},
"dependencies": {
"chokidar": "^3.6.0",
"fflate": "^0.8.2",
"yargs": "^17.7.2"
},
"devDependencies": {
@@ -96,7 +100,10 @@
"target": [
{
"target": "dmg",
"arch": ["arm64", "x64"]
"arch": [
"arm64",
"x64"
]
}
]
},