Hexo로 글 작성하기

draft로 글 작성하고 포스팅하기

Hexo는 간단하고 파워풀한 프레임워크로써, 마크다운 문법을 통해 포스트를 작성하면 theme와 함께 정적 웹사이트를 만들 수 있습니다. 설치와 설정 그리고 theme 등 공식문서를 잘 읽어보면 더 유용한 기능들이 많으며 이번 포스팅에서는 Hexo 명령어를 통해서 글 작성하는 법 즉, 포스트를 생성하고 배포하는 법을 다뤄보겠습니다.

명령어

1
2
hexo new [layout] <title>
hexo new <title> // layout을 생략할 경우 default_layout으로 새로운 마크다운 파일이 생성됨.

Hexo 에서 새 포스트나 페이지를 생성하기 위한 명령어로 기본 layoutpost 이지만 블로그의 _config.yml 에서 default_layout 을 변경하면 기본 생성 layout 유형이 바뀝니다.

Layout

Hexo에서는 아래와 같이 3개의 기본 레이아웃을 제공하며 생성된 파일들은 서로 다른 경로에 저장됩니다.

종류 정의 생성 경로
post 블로그에 바로 발행 가능한 레이아웃 source/_posts
draft post 처럼 바로 게시하지 않고 작성할 수 있는 초안 source/_drafts
page post 처럼 하나의 게시물이 아닌 하나의 페이지를 생성 source

Scaffold - 레이아웃 파일 생성

포스트 생성 시 Hexo는 scaffolds 폴더 내의 적당한 파일을 기반으로 구성하며 기본적으로 각 레이아웃 이름의 마크다운 문서 이름을 참고한다. 예를 들어 hexo new post "newPost" 라는 명령어는 scaffolds/post 파일의 placeholder를 사용하여 새로운 마크다운 문서를 생성할 수 있습니다.

예를 들어, scaffolds/post.md 파일이 아래와 같다면, hexo new post "newPost" 를 통해 newPost.md 가 생성된

1
2
3
4
5
title: {{ title }}
categories: {{ categories }}
tags: {{ tags }}
date: {{ date }}
thumbnail: {{ thumbnail }}

파일의 placeholder 는 아래와 같이 채워진다. 즉, 레이아웃에 따른 common yaml 포맷 또는 placeholder가 있다면 scaffolds의 레이아웃 폴더에 기재함으로써 편리하고 공통의 포맷을 유지할 수 있다.

1
2
3
4
5
6
title: newPost
date: 2020-09-29 21:16:43
subtitle:
categories:
tags:
thumbnail:

Draft에 대해서

위에서 설명했듯이 Draft는 바로 게시하지 않고 작성할 수 있는 초안입니다. Draft를 사용하며 편리했던 점은 연속으로 게시해야 되는 포스트를 한번에 작성한 후 순차적으로 게시해야 할때 hexo publish (파일 이름) 명령어로 하나씩 Post로 발행해 배포하면 된다는 점입니다.

아래는 제가 설정했던 Draft 관련 설정과 명령어 입니다.

  • Draft를 기본 레이아웃으로 변경하기
    _config.yml에서 # Writing이라는 주석처리된 섹션에서 default_layout 필드를 초기값인 post에서 draft로 변경하면 됩니다.
    스크린샷 2018-08-27 오후 7.07.45

  • 로컬 서버에서 Draft 문서 띄우기
    작성 중인 Draft 문서를 확인할 수 있는데 아래와 같이 --draft 옵션을 주면 로컬 서버에서도 확인할 수 있습니다.

    1
    hexo server --draft

Draft 발행하기

Draft 작성이 완료되었다면 이제 발행해야 하는데 아래의 순서와 같이 진행하면 된다.

  • Draft 문서를 Post 레이아웃으로 변환하기
    사실 변환이라고 대단한건 아니고 그저 _drafts 디렉토리에서 _posts 디렉토리로 이동하면서 작성일시가 추가되는 것이 전부이다.

    1
    hexo publish (Draft 이름)
  • 배포하기
    아래 명령어를 통해 배포 가능하다.

    1
    hexo deploy 또는 hexo g -d