Package graph는 위키 전체의 링크 관계를 계산한다.
backlinks 가 찾는 것과 mv 가 고쳐야 하는 것이 같은 집합이므로 그
계산을 한 곳에 둔다. 링크가 어느 파일 어느 줄 어느 필드에 있는지를
반환해 mv가 그 자리를 고칠 수 있게 하는 것이 이 패키지의 계약이다.
Normalize는 링크 대상을 비교 키로 정규화한다. internal/lint 의
relationSlug 와 같은 규칙이어야 고아 판정과 백링크가 같은 문서 집합을
본다. 위키링크 껍데기를 벗기고, 경로면 파일명만 남기고, 확장자와
날짜 접두사(YYYY-MM-DD- 또는 YYYY-MM-)를 뗀다.
type Link struct {
From string// 출처 문서의 위키 루트 상대 슬래시 경로 Line int// 출처 줄 번호. 1 기반 Field Kind// 링크가 온 필드 Slug string// 정규화된 가리킴 슬러그 Raw string// 원본 값. 껍데기와 경로 형태를 그대로 담는다}
Link는 링크 하나다. 출처와 위치와 원본 값을 모두 담아 링크를 고치는
쪽(mv)이 글자 단위로 자리를 찾을 수 있게 한다.