jekyll-archives의 configuration에는 permalinks 가 있다. jekyll 에도 permalink가 존재하는데 무슨 차이가 있는지 이틀정도 헤메다가 이제서야 정리가 되었다. 머리속으로만 정리하고 빌드하면서 점점 더 헷갈리게 되었는데 생성 결과를 노트 필기를 하면서 좀 이해가 되었다. 역시 생각 정리에는 노트와 펜 만한게 없는것 같다.

_config.yml에 들어있는 permalink는 기본값이 date로 되어 있다. date는 다른 permalink 정의에 대한 단축형인데 전체 정의는 다음과 같다.

:categories/:year/:month/:day/:title:output_ext

여기서 categories인 점을 기억해야 한다. Front Matter의 categories에 oracle plsql 라고 입력했다면 해당 문서의 permalink는 oracle/plsql/2018/08/22/filename.html이 되었을거다.

jekyll-archives

jekyll-archives(이하 아카이브)는 설정에 따라 년,월,일 혹은 태그나 카테고리의 묶음을 정리하는 파일을 자동으로 생성해 준다. 다음과 같은 구성을 가진 아카이브를 가정해 보자.

jekyll-archives:
	enabled:
	- categories
	layout: 'archive'
	permalinks:
	  category: '/category/:name''

이 구성은 카테고리만을 대상으로 아카이브 파일을 생성하라는 것이고 아카이브 파일의 레이아웃은 _layout/archive.md파일을 참조하라는 뜻이다. archive.md파일은 결국 /category/oracle/index.html 파일로 렌더링 된다. 즉 아카이브의 permalinks는 아카이브 파일이 생성될 위치를 지정하는 것이지 아카이브의 대상이 되는 파일의 위치를 구성하는것이 아니다.

결론

jekyll-archives러는 이름에서 나는 이 플러그인이 오래된 포스트들을 모아서 어디로 보내준다고 생각했다. 이 플러그인이 동작하는 걸 분석하면서 나는 jekyll이나 플러그인이 한번 생성된 파일을 날짜에 따라서 옮기거나 명칭을 바꾸는 작업을 하지 않을거라는 확신이 든다. 왜냐하면 한번 생성된 permalink를 옮기는 것은 매우 어렵기 때문이다. 아카이브가 파일을 이리 저리 옮겨 주는 대신 정리된 파일만을 생성해주는 이유가 모두 한번 생성된 permalink를 유지하기 위함이라고 생각된다. 아카이브에 대한 permalink스타일을 유지하는것도 중요하다. 사람은 항상 실수하기 때문에 지금 바로 지킬 사이트를 git 저장소에 집어 넣어야겠다.