012. JeKyll 컨텐츠 - (5) 정적 파일들(Static Files)

컨텐츠 - (5) 정적 파일들(Static Files)

본 카테고리는 정적 블로그 생성도구인 Jekyll에 관하여 작성하는 곳이다.

공식 사이트의 내용을 좀 더 풀어쓰고 스크린샷을 첨부하여 좀 더 상세히 기록하고자 한다.

참고 Jekyll 공식 사이트

정적 파일들(Static Files)

Jekyll에는 렌더링이 가능하거나 변환가능한 파일들 이외에도 정적 파일들도 존재한다.

정적파일은 YAML 머리말이 없는 파일을 말하며 주로 이미지, PDF 파일 그리고 나머지 렌더링되지않는 컨텐츠를 말한다.

이 정적파일들은 site.static_files를 통해 Liquid에서 접근할 수 있으며 아래와 같은 메타 정보를 가지고 있다.

변수 설명
file.path 해당 파일의 상대 경로
예) assets/img/image.jpg
file.modified_time 마지막으로 파일이 수정된 시각
예)2016-04-01 16:35:26 +0200
file.name 파일의 문자열 이름
예) image.jpg의 file.name은 image.jpg
file.basename 파일의 문자열 basename
예)image.jpg의 basename은 image
file.extname 파일의 확장명
예)image.jpg의 extname은 .jpg

위의 변수들 중 file은 어떤 것이든 가능하다.

이 변수는 단순히 개발자가 작성한 로직에서 사용되는 임의로 설정된 변수일 뿐이며, 글로벌 변수인 site나 특정 page의 변수가 아니다.

정적 파일에 머리말 추가

정적 파일의 머리말에는 직접 변수를 추가할 수 없다.

하지만 _config.yml 파일의 defaults 속성값을 이용해 머리말의 값을 설정할 수 있다.

Jekyll이 사이트를 빌드할 때 defaults에 설정된 머리말의 값을 참조한다.

아래의 예시를 보자.

1
2
3
4
5
defaults:
- scope:
path: "assets/img"
values:
image: true

위의 코드의 _config.yml 파일에서 설정된대로 정적 파일 image가 저장된 assets/img 폴더가 있다고 가정하자.

위의 설정값을 가진채로 빌드를 하면 모든 이미지는 머리말에 image : true을 가진 것으로 처리된다.

for문을 사용하여 assets/img에 있는 모든 정적 파일 이미지의 경로를 출력한다고 하면 아래와 같이 접근할 수 있다.

1
2
3
4
{% assign image_files = site.static_files | "image", true %}
{image_files %의 myimage %}
  {{myimage.path}}
{% endfor %}