Files
brain_dogfood/docs/Bug/20260417_link_shortcut_fix.md
T

1.8 KiB

버그 리포트: #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)할 수 있으므로, 단축키 처리 시 캡처 단계에서 처리하거나 라이브러리 제공 옵션을 활용해야 함.