Markdown 린트
VMark는 스타일 선호도 가 아니라 정확성 문제 를 잡아내는 내장 린트 엔진을 제공합니다. 린트는 요청 시 실행되며 (Cmd-Shift-L 또는 도구 → Markdown 검사), 결과는 인라인 거터 물결선으로 표시되고, 상태 표시줄 배지와 F2 탐색을 통해 발견 사항 사이를 이동할 수 있습니다.
린트가 하는 것과 하지 않는 것
VMark의 린트는 정확성 검사기입니다:
- 깨진 상호 참조
- 정의되지 않은 링크 / 각주 참조
- 닫히지 않은 코드 펜스
- 열 개수가 일치하지 않는 테이블
- 건너뛴 제목 수준 (h1 → h3)
- alt 텍스트 없는 이미지
- 빈 링크 텍스트 또는 빈
href
VMark의 린트는 스타일 강제 도구가 아닙니다. 다음은 보고하지 않습니다:
- 줄 길이
- 목록 마커 스타일 (
-vs*) - 강조 마커 스타일 (
_vs*) - 제목 스타일 (
#vs 밑줄) - 후행 공백
스타일 강제를 위해서는 VMark 외부에서 prettier --check와 같은 별도 도구를 사용하세요.
규칙 참조
| 규칙 ID | 심각도 | 설명 |
|---|---|---|
| E01 | Error | 정의되지 않은 참조: [link][missing]이 존재하지 않는 정의를 가리킴 |
| E02 | Error | 테이블 행의 열 개수 오류 (헤더 행과 불일치) |
| E03 | Error | 뒤집힌 링크 — [text](url) 대신 (text)[url]처럼 보임 |
| E04 | Error | ATX 제목에 # 뒤 공백 누락 (예: ##Heading은 ## Heading이어야 함) |
| E05 | Error | 강조 마커 안에 공백 — * word *는 기울임꼴로 렌더링되지 않음 |
| E06 | Error | 닫히지 않은 펜스 코드 블록 — 파일이 열린 ``` 펜스로 끝남 |
| E07 | Error | 중복된 링크 참조 정의 (동일한 [label]:이 두 번 나타남) |
| E08 | Error | 빈 링크 href — [text]() |
| W01 | Warning | 제목 수준 건너뜀 (h2가 예상되지만 h3 발견) |
| W02 | Warning | alt 텍스트 누락 이미지 — 접근성 |
| W03 | Warning | 사용되지 않은 링크 참조 정의 (정의되었지만 링크되지 않음) |
| W04 | Warning | 앵커 프래그먼트가 어떤 제목과도 일치하지 않음 — 존재하지 않는 섹션에 대한 #section |
| W05 | Warning | 빈 링크 텍스트 — [](url) |
| M001 | Error | 로컬 경로에서 이미지 파일을 찾을 수 없음 |
| M002 | Error | 로컬 경로에서 링크된 파일을 찾을 수 없음 |
| Y001 | Error | YAML 파싱 오류 (YAML 파일용) |
| Y002 | Warning | YAML 파싱 경고 (YAML 파일용) |
린트 트리거하기
| 트리거 | 동작 |
|---|---|
Cmd + Shift + L (macOS) / Ctrl + Shift + L (Win/Linux) | 활성 문서에서 린트 실행 |
| 도구 → Markdown 검사 | 단축키와 동일 |
F2 | 다음 진단으로 이동 |
Shift + F2 | 이전 진단으로 이동 |
파일 경로가 있는 마크다운 파일에서는 동기 규칙과 함께 링크 존재 여부 확인이 자동으로 실행됩니다 — 링크 검사를 참조하세요.
YAML 파일의 경우, 입력하는 동안 거터에 파싱 오류가 실시간으로 나타나며, 동일한 Cmd-Shift-L 단축키로 배지 + F2 탐색을 채웁니다.
설정
린트 엔진에는 사용자가 볼 수 있는 단일 토글이 있습니다:
- 설정 → 마크다운 → 마크다운 린트 활성화 — 엔진을 완전히 켜거나 끔
비활성화되면 단축키는 동작하지 않으며 거터에 진단이 표시되지 않습니다.
참고 항목
- 링크 검사 — 깨진 로컬 링크 / 이미지 감지
- 설정 → 마크다운 → 린트