Hexo 는 이전 포스트 에서 알아본 간단한 커맨드만 있어도 충분히 사용 가능합니다. 하지만 Hexo 는 편하게 블로깅할 수 있는 여러가지 기능을 제공합니다. 이번 포스트에서는 기본적인 사용법을 좀 더 자세히 알아보겠습니다. 알아볼 기능들은 다음과 같습니다.
- 스캐폴딩을 기반으로 초안을 생성
- 본문을 작성할 때 사용할 수 있는 태그 플러그인
- 작성을 완료한 후에 퍼블리쉬
- 자원은 전역/ 포스트 폴더에서 관리
- 로컬 서버에서 테스트
- 정적 파일 생성과 배포
포스팅하기 (Writing)
마크다운 파일 생성하기
마크다운을 작성할 파일을 만드는 것부터 시작합니다. 다음 명령어를 통해 작성할 마크다운 파일이 해당 경로에 생성됩니다.
1 | $ hexo new [layout] <title> |
- layout : 기본 레이아웃은 3가지 종류가 있고 각기 다른 경로에 보관됩니다.
- post
- page
- draft
- layout 을 생략할 경우 post 로 생성됩니다.
- title : 파일 제목을 입력합니다.
레이아웃 (Layout)
| 레이아웃 | 파일 경로 |
|---|---|
| post | source/_posts |
| page | source |
| draft | source/_drafts |
포스트 (Post)
홈페이지에 게시가 되는 기본적인 글입니다. 블로그에 새 글을 작성하는 것이라고 볼 수 있습니다. 기본 레이아웃이라서 레이아웃 종류를 입력하지 않아도 포스트로 자동 인식합니다. 기본 레이아웃은 _config.yml 의 default_layout 항목에서 변경 가능합니다.
페이지 (Page)
포스트처럼 새 글을 추가하는 것이 아니라 해당 경로로 접근해야 볼 수 있는 페이지를 작성할 때 사용합니다.
초안 (Draft)
draft 는 바로 게시하지 않고 작성할 수 있는 초안입니다. 따라서 포스트를 작성할 때 먼저 초안으로 작성하고, 다 작성한 후에 publish 명령어로 배포하는 형식으로 게시할 수 있습니다. 여러 개의 포스트를 작성 중일 때, 바로 반영 안할 포스트는 로컬에 따로 저장해놨다가 나중에 복붙하는 작업이 귀찮았는데 그럴 필요가 없었군요.
저는 초안을 자주 사용해서 draft 를 기본 레이아웃으로 변경했습니다. _config.yml 의 default_layout 을 draft 로 변경하면, hexo new <title> 로 생성했을 때 포스트가 아닌 드래프트가 만들어집니다.
하지만 작업하면서 실제 화면에서 어떻게 보일지 궁금합니다. 로컬 서버 돌릴 때 --draft 옵션을 주면 로컬서버에서 draft 로 작성한 것도 확인할 수 있습니다.
1 | $ hexo server --draft |
매번 이렇게 실행하는 것이 귀찮으시다면, _config.yml 파일에서 render_drafts 항목을 true 로 주시면 됩니다. 하지만 이 경우에는 원격 서버에도 초안이 드러나기 때문에 굳이 이렇게 설정할 필요는 없을 것 같네요.
1 | # Writing |
파일명
1 | $ hexo new [layout] <title> |
여기서 입력하는 title 이 기본적으로 파일명이 됩니다. 파일명이 곧 페이지의 url 이 되기 때문에 파일명은 본문 내용의 핵심 키워드를 조합해서 만드는 것이 좋습니다. 그래야 검색에 잘 노출되기 때문이죠.
1 | $ hexo new post 'test page' |
위와 같은 명령어를 치면, test-page.md 라는 파일이 생성됩니다. 만약 날짜로 prefix 를 붙이고 싶다면 :year:month:day-:title.md 이런 식으로 placeholder 를 이용해서 커스터마이징 할 수 있습니다. 제가 현재 사용하는 방법인데 앞에 날짜가 붙어 있으면 날짜 별로 구분할 수 있어서 좋습니다.
1 | # Writing |
사용할 수 있는 placeholder 는 다음과 같습니다.
| Placeholder | 설명 |
|---|---|
| :title | 포스트 제목 (소문자만 가능, 공백 (space)은 하이픈 (-)으로 변경됨) |
| :year | 생성 연도, e.g. 2015 |
| :month | 생성 월 (0 포함), e.g. 04 |
| :i_month | 생성 월, e.g. 4 |
| :day | 생성 날짜 (0 포함), e.g. 07 |
| :i_day | 생성 날짜, e.g. 7 |
스캐폴드 (Scaffolds)
스캐폴드는 사전에서 찾아보면 ‘높은 곳에서 공사를 할 수 있도록 임시로 설치한 가설물’ 이라고 나옵니다. 즉, 포스트, 페이지, 드래프트를 만들 때 처음에 나오는 구조를 정의하는 파일입니다. 물론 커스텀 스캐폴드를 만들어서 사용할 수도 있겠죠.
1 | --- |