HanMark
마크다운으로 한글(한컴오피스) 원고를 쓰는 확장입니다. 겹낫표·낫표 입력, 주석 삽입·자동 정렬, 한컴식 문단 스타일 단축키를 제공하고, 완성된 원고를 한글의 진짜 각주/미주 객체가 담긴 HWPX로 내보냅니다.
기능
1. 겹낫표 입력 모드
상태바의 「」 버튼 또는 Ctrl+Alt+K로 모드를 전환합니다: 끔 → 자동 → 켬.
| 키 |
입력 결과 |
[ |
「 |
] |
」 |
{ (Shift+[) |
『 |
} (Shift+]) |
』 |
- 자동 (Windows 전용): 한글 입력 모드일 때만 변환하고, 영어 모드에서는 원래 괄호가 그대로 입력됩니다. 키를 누르는 순간 Windows IME의 한/영 상태를 읽어 판단합니다(상주 헬퍼 프로세스가
WM_IME_CONTROL로 질의, 지연 수 ms). IME 상태를 읽지 못하면 원래 문자를 입력하는 안전한 폴백으로 동작합니다.
- 켬: IME 상태와 무관하게 항상 변환합니다. macOS·Linux에서는 이 모드를 사용하세요(자동 모드는 순환에서 제외됩니다).
- 자동 괄호 닫기: 기본 괄호처럼 여는 낫표를 입력하면 닫는 낫표가 함께 들어가고 커서가 사이에 놓입니다. 닫는 키를 누르면 바로 뒤의 닫는 낫표를 건너뜁니다.
hangulOffice.autoClosingBrackets 설정으로 끌 수 있습니다.
- 텍스트를 선택한 상태에서 여는 괄호 키를 누르면 선택 영역을 괄호 쌍으로 감쌉니다.
- 변환하지 않고 통과시키는 경우(영어 모드 등)에는 VS Code 기본 타이핑에 위임하므로 원래의
[]·{} 자동 닫기도 그대로 동작합니다.
- 모드 상태는 재시작 후에도 유지됩니다.
2. 마크다운 주석 (한컴 한글의 주석 워크플로)
마크다운 주석 문법([^n] + 문서 끝 정의)을 관리합니다. 편집 중에는 정의가 문서 끝에 모이지만, HWPX로 내보낼 때 각주(기본) 또는 미주로 출력됩니다 — 각주/미주 구분은 산출물에서 결정되므로 이 문서에서는 편집 단계의 것을 '주석'이라 부릅니다.
| 키 |
동작 |
Ctrl+N, N (또는 Ctrl+Alt+N) |
커서 위치에 [^n] 삽입 + 정의 생성 후 커서 이동 (한글의 각주 넣기와 같은 코드 단축키) |
Shift+Esc |
주석 내용을 쓴 뒤 본문의 원래 위치로 복귀 |
Ctrl+Alt+R |
주석 번호 수동 재정렬 (자동 재정렬을 껐을 때 사용) |
번호는 항상 자동으로 정렬됩니다.
- 삽입 시: 새 주석은 커서 위치의 등장 순서에 맞는 번호를 받고, 뒤에 오는 주석 번호는 자동으로 밀립니다. 새 정의도 문서 끝에 붙는 게 아니라 번호순 자리에 들어갑니다.
- 저장 시: 문서 전체 주석 번호를 본문 등장 순서대로 자동 재정렬하고, 정의 블록의 물리적 순서도 번호순으로 맞춥니다.
hangulOffice.autoRenumberOnSave 설정으로 끌 수 있습니다.
- 여러 줄 주석(들여쓴 연속 줄)은 블록 통째로 움직이며, 정의 사이에 본문이 끼어 있으면 연속된 정의 묶음 안에서만 정렬해 본문은 건드리지 않습니다.
주의: Ctrl+N, N은 두 단계 코드(chord) 단축키라서, 마크다운 편집기 안에서는 Ctrl+N 단독의 '새 파일' 동작이 코드 대기 상태로 바뀝니다(다른 파일·다른 위치에서는 그대로 동작). 원치 않으면 키보드 단축키 설정에서 hangulOffice.insertFootnote의 Ctrl+N N 바인딩을 제거하세요.
2-1. 문단 스타일 단축키 (Ctrl+숫자)
한컴 한글의 Ctrl+숫자 스타일 전환처럼, 커서가 있는 줄(또는 선택한 여러 줄)의 문단 스타일을 바꿉니다. 마크다운 접두사를 교체하는 방식입니다.
| 키 |
스타일 |
결과 |
Ctrl+1 |
바탕글 |
접두사 제거 (제목·인용 해제) |
Ctrl+2 |
인용문 |
> |
Ctrl+3 ~ Ctrl+8 |
제목 1~6 |
# ~ ###### |
주의: 마크다운 편집기 안에서는 Ctrl+1~Ctrl+8의 VS Code 기본 동작(편집기 그룹 포커스)이 가려집니다. 다른 파일에서는 그대로 동작합니다.
3. HWPX 내보내기
명령 팔레트에서 **"한글 오피스: HWPX로 내보내기"**를 실행하면 현재 마크다운 문서가 같은 이름의 .hwpx로 변환됩니다. 마크다운 주석([^n])은 한글의 진짜 각주 객체로 변환되어, 한컴오피스에서 열면 번호·구분선·페이지 하단 배치가 모두 정상 동작합니다.
각주/미주 선택: 기본은 각주(페이지 하단)입니다. hangulOffice.hwpxNoteType 설정을 endnote로 바꾸면 미주(문서 끝, 한글의 미주 객체)로 출력됩니다. 미주의 번호 형식·배치는 템플릿의 미주 설정을 따릅니다.
스타일 상속은 선택사항입니다: 아무 설정 없이도 내보내기는 동작합니다. 한컴오피스가 설치되지 않은 환경에서도 내장 기본 스타일 템플릿(확장에 동봉)으로 변환되며, 폰트는 이름만 참조하므로 열람 환경이 알아서 대체합니다. 한컴오피스에서 기본 스타일을 바꿔 쓰고 있고 그 스타일을 물려받고 싶을 때만, 새 문서를 빈 채로 저장한 파일을 hangulOffice.hwpxTemplate 설정에 지정하세요. 생성 문서가 한컴에서 직접 타이핑한 것과 같은 모양이 됩니다.
저장 시 자동 내보내기: hangulOffice.exportHwpxOnSave를 켜면 마크다운을 저장할 때마다 같은 이름의 hwpx가 자동 갱신됩니다(기본 끔). hwpx는 단방향 생성물이므로 hwpx 쪽에서 고친 내용은 다음 내보내기 때 덮어써집니다. 한컴오피스에서 그 파일을 열어둔 상태면 잠금 때문에 내보내기가 실패할 수 있습니다.
변환 범위(1차): 문단, 제목(#~ → 개요 1~), 인용문(> → 템플릿의 인용문 스타일, 없으면 바탕글), 주석(각주/미주). 그 밖의 마크다운 문법(굵게·목록·표 등)은 문자 그대로 들어갑니다.
알려진 제한 (베타)
- 주석 기능은 마크다운 파일에서만 활성화됩니다. Pandoc footnote 문법(
[^n])을 따릅니다.
- 코드 블록 안의
[^n] 표기도 주석으로 간주합니다(추후 개선 예정).
- 겹낫표 '자동' 모드는 Windows 전용입니다. macOS는 IME 상태를 읽는 공개 API 구조가 달라 '켬' 모드를 사용해야 합니다.
로드맵
- 문단 첫 줄 들여쓰기, 쪽 나누기 등 한컴 스타일 편집 명령
- 코드 블록 제외 주석 파싱
- 사용자 정의 괄호 쌍 설정
라이선스
MIT