TL;DR
- Grubby는 Ruby로 작성된 Git 저장소용 정적 사이트 생성기이며, 저장소별 웹사이트와 저장소 인덱스를 생성함.
- Git, Ruby 3.0 이상, Kramdown이 필요하며, RepoRat에서 포크해 큰 영향을 받음.
- 기본 설정은 그대로 사용할 수 있도록 구성되며, 핵심 도메인과 경로 설정은
_config.yml에서 관리함. - 베어 Git 저장소를
.git으로 끝나는 이름으로 두고post-update훅을 실행하면 저장소 사이트와 루트 인덱스를 다시 생성함. - 개별 커밋 변경 사항이나 브랜치 페이지는 생성하지 않음.
개요
- Grubby는 Ruby로 작성된 Git 저장소용 정적 사이트 생성기임.
- RepoRat에서 포크했으며, RepoRat에서 큰 영향을 받음.
요구 사항
- Git
- Ruby 3.0 이상
- Kramdown
설정
- Grubby는 기본 설정에 의견이 반영되어 있으며, 세부 조정 없이 그대로 사용하는 방식을 지향함.
- 기본 Markdown 파서는 Kramdown이며, 다른 파서로 바꿀 수 있지만 버그가 없다고 보장하지 않음.
- 모든 베어 Git 저장소 이름이
.git확장자로 끝난다고 가정함. 이 조건을 지키지 않으면 핵심 저장소 인덱스 생성이 제대로 작동하지 않음. - 핵심 도메인과 경로를 설정할 때 수정할 파일은
_config.yml임. - CSS, 탐색 링크, 푸터 내용을 바꾸려면 각각
style.css,_header.html,_footer.html을 수정하면 됨. - 기본적으로 핵심 저장소 인덱스는 메인 디렉터리 루트에
index.html로 생성되며, 출력 파일 이름도_config.yml에서 변경 가능함.
사용 방법
- 안내는 NearlyFreeSpeech.NET을 사용하는 공유 호스팅 환경을 기준으로 하며, 자체 VPS에서도 비슷한 방식으로 실행 가능함.
- 베어 Git 저장소가
/home/public/git.sitename.org아래에 있다고 가정함. - 프로젝트를
/home/private/같은 비공개 디렉터리에 복제한 뒤,/home/public아래의 저장소 디렉터리(예:coolrepo.git)로 이동함. - 저장소의
hooks디렉터리에post-update파일을 만들고 실행 권한을 부여함. - 훅은
GIT_DIR을 해제하고, 일반 HTTP를 통한 복제를 위해git update-server-info를 실행함. - 이어 저장소 이름에서
.git을 제거해 임시 디렉터리에 복제하고, 원본 저장소의description파일을 복제본의.git/description으로 복사함. - 복제본 디렉터리에서
/home/private/grubby/grubby.rb를 실행해 정적 사이트를 다시 생성한 뒤 임시 디렉터리를 삭제함. ./hooks/post-update를 실행해 동작을 시험할 수 있음.- 생성 결과는
/home/public/git.sitename.org/coolrepo에 저장되며, 기본 설정에서는/home/public/git.sitename.org/루트의index.html도 갱신됨. - 각 프로젝트에 훅을 추가하는 대신
post-receive훅에서 해당 명령을 실행하거나 전역post-update훅을 사용할 수 있음.
제한 사항
- 개별 커밋 변경 사항이나 브랜치 페이지는 생성하지 않음.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요