이 저장소는 Jekyll과 jekyll-theme-chirpy를 이용해 운영하는 개인 github.io 블로그다.
이 블로그는 정적 사이트다. 글 원본은 저장소 안의 Markdown 파일로 관리하고, Jekyll이 이를 HTML로 빌드한 뒤 GitHub Pages가 배포한다.
흐름은 다음과 같다.
_posts아래에 Markdown 글을 추가하거나 수정한다.- 이미지와 표지 파일을
assets/img/아래에 정리한다. - GitHub에
commit과push를 하면 GitHub Actions가 사이트를 빌드하고 배포한다. - 배포된 결과가
https://<username>.github.io형태의 도메인에서 제공된다.
_config.yml: 블로그 전역 설정_posts/: 게시글 Markdown 원본_tabs/: About, Archives, Categories, Tags 페이지assets/: 정적 파일templates/post-skeleton.md: 새 글 작성 템플릿post.c: 게시글 생성과 삭제를 돕는 CLI 도구.github/workflows/pages-deploy.yml: GitHub Pages 배포 workflow
먼저 C 소스를 컴파일한다.
gcc -Wall -Wextra -pedantic -std=c11 post.c -o post이후 post 실행파일로 새 글을 만들거나 삭제할 수 있다.
새 글 생성:
./post new이 명령은 다음을 수행한다.
_posts/YYYY-MM-DD-new-post.md또는 중복 시 번호가 붙은 Markdown 파일 생성templates/post-skeleton.md를 복사date:항목을 현재 시각으로 자동 치환assets/img/covers/<post-name>/디렉터리 생성assets/img/posts/<post-name>/디렉터리 생성
예:
_posts/2026-03-12-new-post.md
assets/img/covers/2026-03-12-new-post/
assets/img/posts/2026-03-12-new-post/
글 삭제:
./post delete 1이 명령은 오늘 날짜 기준으로 아래 파일과 디렉터리를 삭제한다.
_posts/YYYY-MM-DD-new-post-1.md
assets/img/covers/YYYY-MM-DD-new-post-1/
assets/img/posts/YYYY-MM-DD-new-post-1/
delete 0은 suffix가 없는 기본 파일을 대상으로 한다.
이 도구는 글 파일과 이미지 디렉터리를 빠르게 만드는 보조 도구다. 실제 공개 반영은 push 이후 GitHub Actions가 수행한다.
- 프로필 이미지:
assets/img/avatar/ - 글 표지 이미지:
assets/img/covers/<post-name>/ - 글 본문 이미지:
assets/img/posts/<post-name>/
Markdown 본문에서는 절대 경로처럼 아래와 같이 참조한다.
표지 이미지는 front matter에서 지정한다.
image:
path: /assets/img/covers/2026-03-12-new-post/cover.png
alt: "cover image"이 저장소는 블로그 서비스의 DB를 쓰는 구조가 아니라, Git 저장소 자체가 블로그 원본이다.
- 글은 Markdown 파일이다.
post.c와templates/는 글 생성을 돕는 관리 도구이며, 사이트 빌드 결과에는 포함되지 않는다.- Jekyll이 Markdown과 테마를 HTML로 변환한다.
- GitHub Actions가 Jekyll 빌드를 수행하고 GitHub Pages가 결과물을 호스팅한다.
- 따라서 방문자는 글을 읽기만 하고, 글 작성과 수정은 저장소 변경으로 이루어진다.
즉 이 블로그는 "레포지토리 기반 정적 블로그"라고 보면 된다.
이 저장소는 _site를 직접 배포하는 방식이 아니다. GitHub에 올리는 것은 소스 파일이고, 배포는 workflow가 자동으로 처리한다.
- GitHub에 올리는 것:
_posts,_tabs,assets,_config.yml,post.c,templates, workflow 파일 - GitHub에 올리지 않는 것:
_site,.jekyll-cache,post실행파일
한 번 저장소와 Pages 설정이 끝나면, 이후에는 저장소의 소스 파일만 수정하고 push하는 방식으로 블로그를 관리하면 된다.