GitHub Pages 블로그를 Hugo PaperMod 테마를 사용해서 블로그를 만든 방법을 기록해 둔다. [PaperMod WiKi - Installation] 문서와 블로그를 참고했다.
Installation
-
Hugo 설치 및 site 생성 (작성일 기준 최신 버전 테마는 Hugo 버전 v0.112.4 이상 필요)
$ brew install hugo $ hugo new site MyFreshWebsite --format yaml
-
Theme 설치 (권장 방식인 git submodule 사용)
# Initialize git repository $ git init && git commit -am "initial commit" # Install theme $ git submodule add --depth=1 https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod # needed when you reclone your repo (submodules may not get cloned automatically) $ git submodule update --init --recursive
- Theme update
$ git submodule update --remote --merge
- Theme update
-
hugo.yaml
에theme
명시 (구config.yaml
)theme: ["PageMod"]
Customizing
<img>
tag로 post에 image 추가하기
hugo.yaml
에 아래 설정 추가markup: goldmark: renderer: unsafe: true # 이 설정이 없으면 <img> tag를 사용할 수 없다.
- Markdown 문법(
![]()
)을 사용하면 이 설정이 없어도 되지만 image size를 조절할 수 없다.
- Markdown 문법(
- Post 구조를 아래와 같이 변경
contents ㄴ posts ㄴ post-1 ㄴ index.md ㄴ image.jpg
- Markdown 안에서
<img>
tag로 image 추가<img src="./image.jpg" width="300" />
Menu
/content
경로에 menu page를 markdown file로 생성hugo.yaml
에 menu 설정 추가 (참고)
Deploy to GitHub
-
Repository 두 개 생성 (실제로 website로 보여지는 파일들은
/public
에 있으므로 저장소 분리)- blog source : blog source를 upload할 repository
{username}.github.io
:public
directory를 upload할 repository
-
Remote repo로 추가
# blog source repository $ git remote add origin https://github.com/username/blog-source.git # public directory만 submodule로 따로 관리 $ git submodule add -b main https://github.com/username/username.github.io.git public # Submodule 등록 확인 $ ll .git/modules
- submodule에
theme
과public
directory 두 개가 등록되어 있다면 정상적으로 등록된 것 - 만약,
fatal: 'public' already exists and is not a valid git repo
과 같은 error가 발생하면public
폴더를 삭제한 뒤 재시도 - Root와
/public
에서 각각git remote -v
를 실행하면 서로 다른 repository가 등록되어 있는 것을 확인
- submodule에
-
배포 script
- 블로그를 배포할 때
blog-source
와{username}.github.io
두 repository에 각각 push해야 함 - 배포 과정을 script로 작성해서 사용 (참고)
- 블로그를 배포할 때