여기 github 블로그에서 사용하는 jekyll (제킬) 서버에 대해 사용해보고 이것저것 시행착오해본 결과를 정리해둔다.
테마
난 해밀턴 테마를 설정했다.
해밀턴 테마
- http://jekyllthemes.org/themes/hamilton/
- 재밌는 특징중 하나는 시간에 따라서 스킨이 바뀐다는 점이다.
- 예를들어, 아침에는 밝은 색 스킨으로, 저녁에는 어두운 스킨으로 바뀐다.
- 특정 스킨만 설정하고 싶으면 _config.yml 에
skin: 스킨명
을 설정해두면 된다.
로컬 서버 구동
- jekyll 서버를 설치한 블로그 디렉토리로 이동 후 다음 명령어를 실행한다.
- 로컬에서 블로그를 확인가능하다.
bundle exec jekyll serve
목차
목차만들기
- 목차는 구조화된 문서를 읽을 때 가장 중요한 부분이라고 생각한다.
- 하지만 jekyll에서 기본적으로는 제공하지 않는 것 같다.
- 찾아보니 직접 개발하는 사람도 있고, 플러그인을 설치하는 사람도 있는 것 같다.
- 플러그인 설치쪽으로 알아본다.
- 해밀턴 테마에서는 페이지 상단 설정부에
toc: true
를 적어놓으면 자동으로 목차를 만들어주긴 하나, 뎁스2 (H2) 헤더만 보여준다. - 이 부분은
_includes/sidebar-toc.html
을 변경하면 된다. h_min의 값을 2에서 1로 바꿔준다.
목차 스타일 변경
- 일단 넓이가 너무 좁다.
_sass/hamilton/layout.scss
에서.site-sidebar
부분의 스타일에서padding: $spacing-unit
로 되어있는 부분을 아래와 같이 변경하였다.
padding-top: $spacing-unit;
padding-right: $spacing-unit/2;
목차 ScrollSpy 기능 구현하기
- 여기를 참고해서 구현했다.
- 적용하고 나니 다음과 같은 몇 가지 문제가 발생했다.
왼쪽에 있던 목차가 사라졌다.
- 목차가 오른쪽으로 이동된 것은 별로 상관없는데 왼쪽의 Table of Contents 라는 표시는 그대로 보인다.
- 이 것을 없애보자.
- 각 post에서 toc: true를 삭제했더니 기존의 목차가 사라졌다. 새롭게 추가한 목차는 살아있다. 이것을 사용해도 되겠다.
우측의 목차가 기존에 있던 스타일과 충돌이 나서 글자가 겹쳐보인다.
- 스타일시트 중에서 어딘가가 원인일 것이다.
레이아웃 관련
컨텐츠 넓이 변경
- 크롬 디버거 툴로 보니 사이드바를 포함한 기본 넓이(site-body 클래스) 가 1100px 인 것 같다.
- 1300px 정도로 넓히고 싶다.
- variables.scss 파일에서 $content-width와 $on-large 의 값을 1100px 에서 1300px로 변경하면 된다.
톱 페이지
- 현재는 톱 페이지가 내용이 아무 것도 없다.
- 톱 페이지에서 새로운 글의 미리보기를 보여주면 좋을 것 같다.
- jekyll 에서는
post.excerpt
로 미리보기를 추가할 수 있다. index.markdown
파일에 다음과 같이 excerpt 를 추가하였다.- 참고: https://gist.github.com/benbalter/5555369
폰트
폰트 사이즈 변경
/_sass/hamilton/variables.scss
에 있는base-font-size
의 값을 변경한다.
원본
$base-font-size: 18px !default;
변경후
$base-font-size: 18px !default;
에러 핸들링
더블 브레이슬릿(중괄호) 관련 에러 발생시
예를 들면 다음과 같은 에러가 발생할 때다.
Liquid Warning: Liquid syntax error (line 34): [:dot, "."] is not a valid expression in "{{ .NetworkSettings.Networks.nat.IPAddress }}" in
해결책
jekyll 이 사용하는 Liquid 라는 템플릿 엔진에서는 더블 브레이슬릿을 특별한 의미를 가지므로, 마크다운 내에서는 raw, endraw 로 해당 블락을 감싸줘야 한다.
참고: https://stackoverflow.com/questions/24102498/escaping-double-curly-braces-inside-a-markdown-code-block-in-jekyll
favicon 추가
- https://medium.com/@xiang_zhou/how-to-add-a-favicon-to-your-jekyll-site-2ac2179cc2ed
포스트에 마지막 업데이트 일자 추가하기
- https://tomkadwill.com/adding-last-modified-date-to-jekyll
- 포스트(md파일)의 상단에
last_modified_at: 2023-06-28 14:02:00 +0900
을 추가하고,_layouts/post.html
에서 해당 정보를 출력해주도록 코드를 변경한다.