check-links
콘텐츠 파일에서 깨진 외부·내부 링크를 검사합니다.
hwaro tool check-links
# 결과를 JSON으로 출력
hwaro tool check-links --json
# 타임아웃과 동시 요청 수 지정
hwaro tool check-links --timeout 30 --concurrency 4
# 외부 또는 내부 링크만 검사
hwaro tool check-links --external-only
hwaro tool check-links --internal-only
옵션
| 플래그 | 설명 |
|---|---|
| -c, --content-dir DIR | 콘텐츠 디렉터리 (기본값: content) |
| --timeout SECONDS | HTTP 요청 타임아웃(초, 기본값: 10) |
| --concurrency N | 최대 동시 요청 수 (기본값: 8) |
| --external-only | 외부 링크만 검사 |
| --internal-only | 내부 링크만 검사 |
| -j, --json | 결과를 JSON으로 출력 |
| -h, --help | 도움말 표시 |
동작 방식
content/디렉터리의 모든 마크다운 파일을 스캔- 외부 URL(http/https 링크)과 내부 링크(상대/절대 경로)를 수집
- 외부 URL에 동시 HEAD 요청 전송
- 내부 링크 대상이 디스크에 존재하는지 확인 (
.md,_index.md,index.md검사) - 깨졌거나 접근할 수 없는 링크 보고
링크 유형
| 유형 | 설명 |
|---|---|
| 외부 | http://, https:// 링크 — HTTP HEAD로 검사 |
| 내부 | 상대·절대 경로 링크 — 파일 시스템에서 검사 |
| 이미지 |  이미지 참조 — 파일 시스템에서 검사 |
출력 예시
hwaro: check-links content
scan: 30 external, 20 internal
[err] content/blog/post.md
-> https://old-site.com/page 404
[err] content/blog/post.md
-> ../missing-page Internal link target not found
[err] content/about.md
-> /images/photo.png Image not found
checked: 50 links, 3 dead
색상 터미널에서는 깨진 링크마다 hwaro check-links 헤딩 아래 ✗ file 항목과
→ url status 상세 줄로 표시되고, 마지막에 ✦ checked 결과 줄이 붙습니다(모든
링크가 정상이면 checked: 50 links · all healthy). 깨진 링크가 발견되면 명령이
0이 아닌 종료 코드를 반환하므로 CI 게이트로 쓸 수 있습니다.
JSON 출력
{
"dead_internal": [
{
"link": {
"file": "content/about.md",
"url": "/images/photo.png",
"kind": "image"
},
"status": -1,
"error": "Image not found"
}
],
"dead_external": [
{
"link": {
"file": "content/blog/post.md",
"url": "https://old-site.com/page",
"kind": "external"
},
"status": 404,
"error": null
}
]
}