feat: release v2.0 - visual linker, instant edit, and ux improvements

This commit is contained in:
leeyj
2026-04-17 15:21:21 +09:00
parent 331411895e
commit bff0beea96
23 changed files with 560 additions and 78 deletions
+19
View File
@@ -0,0 +1,19 @@
# 버그 리포트: #20260417-01
## 버그 내용
1. **Ctrl + Enter 단축키 저장 불능**: 에디터에서 `Ctrl + Enter`를 눌렀을 때 작성 창은 정상적으로 닫히는 것처럼 보이나(포커스 해제 등), 실제 저장 로직이 호출되지 않아 데이터가 손실되는 문제.
2. **[[#ID]] 내부 링크와 해시태그 충돌**: 본문 내의 `[[#123]]` 형태의 내부 링크가 해시태그(`#123`)로 오인되어 백엔드 메타데이터 정리 과정에서 삭제되거나 태그 목록에 추가되는 문제.
## 조치 사항
1. **프론트엔드 조치**:
- `static/app.js`에서 에디터 초기화 시 저장 핸들러 콜백을 명시적으로 전달.
- 에디터 초기화 및 작성기 초기화 순서를 콜백 정의 이후로 조정하여 안정성 확보.
- `EditorManager.js` 내부의 캡처 단계 키다운 이벤트 리스너가 해당 콜백을 정상적으로 호출하도록 보장.
2. **백엔드 조치**:
- `app/utils/__init__.py`의 해시태그 추출 및 삭제 정규표현식 수정.
- 부정 후방 탐색(`(?<!\[\[)`)을 추가하여 `#` 앞에 `[[`가 오는 경우 태그 처리에서 제외.
- 수정된 패턴: `(?<!#)(?<!\[\[)#(\w+)`
## 향후 주의사항
- **특수 문법 충돌 주의**: 새로운 대괄호(`[[ ]]` 등) 또는 특수 기호를 사용하는 문법을 추가할 때는 기존의 정규표현식 기반 메타데이터 추출기(`parse_metadata`)와의 충돌 여부를 반드시 사전 검증해야 함.
- **키보드 이벤트 우선순위**: Toast UI 등 서드파티 라이브러리를 사용할 경우, 라이브러리 내부에서 이벤트를 전파 중단(stopPropagation)할 수 있으므로, 단축키 처리 시 캡처 단계에서 처리하거나 라이브러리 제공 옵션을 활용해야 함.