0%

Hexo 포스팅하기

# 잠깐

아직 설치가 되지 않았다면 [Hexo로 정적 블로그 시작하기][01]로 가시기 바랍니다. 또한 설정 부분이 궁금하시면 [Hexo 기본설정][02]로 가시길 바랍니다.

# 포스팅하기 Writing

이번 포스트는 블로그 새로운 포스트 작성입니다. 이 블로그는 마크다운 언어로 작성한 것이라서 일반 에디터를 이용하니 2가지 중에 하나 알려 드리려고 합니다.

  • 명령어를 통해 : 간단한 명령어로 하나의 포스트를 만듭니다
  • 에디터를 통해 : 그냥 에디터로 만드는 방법입니다. save를 title.md파일로 만들면 됩니다.

둘다 생각해보면 같은 것이네요. :)

우선 명령어를 통해 만들어 봅니다.

1
$ hexo new [layout] <title> #  hexo n [layout] <title>
Ex
1
2
$ hexo n draft nnn # v3.3.5부터는 draft가 아닌 drafts에 저장 됩니다.
INFO Created: \blog\source\_drafts\nnn.md
  • layout : 기본 레이아웃은 3가지 종류가 있고 각기 다른 경로에 보관됩니다.
    • post : 일반 포스트를 저장하는 폴더입니다.(기본값은 post)
    • page : About같은 해당 경로로 접근해야 볼 수 있는 페이지입니다.
    • draft : 바로 게시하지 않고 작성할 수 있는 초안입니다.
  • title : 파일 제목을 입력합니다.
**v3.3.5** 부터는 `/source/_draft`가 아닌 `/source/_drafts`에 저장 됩니다.

# 레이아웃 Layout

[layout] 파일이 들어갈 경로
post source/_posts
page source
draft source/_drafts
Ex
1
$ hexo n "Hello world" # source/_posts/Hello-world.md 파일이 생긴다.

# 초안 Draft

기본적으로 Draft는 표시되지 않습니다. 공개 보류 문서정도로 모든문서 테스트후 게시할수 있게 임시 저장소라고 생각하면 됩니다. 기본을 초안으로 할 경우에는 _config.yml의 default_layout 항목에서 postdraft로 변경 하면 됩니다.

_config.yml
1
2
# Writing
default_layout: draft

만약 포스트를 모두 작성하시고 게시를 할 경우에는 그냥 _draft/에서 _post/으로 copy or move해도 됩니다. 물론 폴더가 있으면 같이 해도 됩니다.
또한 초안파일이 어떻게 보일지 보고 싶다면

1
2
$ hexo server --drafts
$ hexo s --drafts
**v3.3.5** 부터는 `--draft`가 아닌 `--drafts`로 해야 됩니다.

매번 이렇게 실행하는 것이 귀찮으시다면, _config.yml파일에서 render_drafts 항목을 true 로 주시면 됩니다. 이럴경우 게시를 할때 초안까지 보여지게 됩니다.

_config.yml
1
2
# Writing
render_drafts: true

# 스캐폴드Scaffold


포스트 생성 시 scaffolds 폴더 내의 해당 포스트를 참조해서 기본적으로 입력이 됩니다. 일반 새 포스트는 post.md의 파일을 참조합니다. 이렇게 보면 초안인 draft/draft.md파일을 참조 합니다.

scaffolds / post.md
1
2
3
4
5
6
---
title: {{ title }}
date: {{ date }}
categories:
tags:
---

저는 기본 서식등을 이곳의 파일에 넣어둡니다. 그러면 파일 생성하고 기본적으로 적혀 있으니 편리하더군요.



# Front-matter

Front-matter 는 포스트 최상단에 있는 블락으로 해당 파일의 정보를 입력하는 곳입니다. ---로 시작해서 ---로 끝나는 부분입니다.

_post / Hello World.md
1
2
3
---
title: Hello World
---

생각보다 여러가지 기능이 있습니다. 많이 사용하시는 것들은 스캐폴드에 정의해놓으시면 편하게 사용하실 수 있습니다. 전 여기에 부제목도 넣었습니다. 이건 나중에…

설정 설명 기본값
layout 레이아웃
title 제목
date 배포한 날짜 파일 생성 날짜
updated 수정된 날짜 파일 생성 날짜
comments 코멘트 기능 여부 true
tags 태그 (Page 에서는 사용 불가)
categories 카테고리 (Page 에서는 사용 불가)
permalink 포스트의 URL 을 수동으로 설정 가능
thumbnail 썸네일 지정 본문 첫번째 이미지
위의 Front-matter에서 정의한 것들은 `post.`로 쓰실수 있습니다.예를 들어 `updated`를 사용할려면 `<%- post.updated %>`라고 적으시면 됩니다.

# 카테고리와 태그

  • 카테고리를 지정하면 메인 화면의 메뉴에 자동으로 추가됩니다. 카테고리는 여러개를 지정할 경우 아래에 있는게 서브카테고리가 됩니다.
  • 태그는 그냥 여러개 설정하셔도 됩니다. 여러개 설정할 경우 다음과 같이 작성하시면 됩니다.
카테고리와 태그는 Post 와 Draft 에서만 사용 가능합니다.
test.md
1
2
3
4
categories:
- Web
- Hexo
tags: [tag1, tag2, tag3]

# 자원 폴더 Asset Folders

자원 폴더는 해당 포스트에서 사용하는 여러가지 자원 즉 이미지, 동영상, 링크 등을 저장하는 폴더입니다. 즉, /source/안에 읶는 폴더나 파일들은 웹상에 올라갑니다. 하지만 _drafts랑 _post는 다르게 올라갑니다. 따라서 자원은 source 폴더 내에서 관리해야 합니다.

# 전역 자원 폴더 Global Asset Folders

말은 좋은데 쉽게 말해서 /source/폴더 안에 images라는 폴더를 만들고 포스트에 사용할 이미지 파일들을 저장해 놓으면 웹사이트 생성때 같이 올라갑니다. 이러면 웹사이트에서 http://yoursite/images/자원이름라고 절대주소를 적거나 /images/자원이름라고 상대 주소를 적어서 사용하면 됩니다. 그래서 어느 포스트나 동일하게 사용이 가능합니다.

# 포스트 자원 폴더 Post Asset Folders

설정에서 밑에 처럼 하시면 각 포스트당 폴더가 생성(hexo new [layout] <title> 명령어로 새로운 포스트를 생성할 때마다 새 폴더를 생성)되며 그 생성된 포스트 안에 자원들을 넣어서 관리 할수 있습니다. 이렇게 되면 포스트에서 바로 사용을 할수 있습니다.

_config.yml
1
post_asset_folder: true

하지만 문제는 그냥 포스트 상에서는 되지만 카테고리, 태그, 어카이브 등으로 해당 포스트를 접속할 경우 url 이 달라져서 자원에 접근이 안됩니다. 이럴경우 html태를 사용해서 접근해야 가능합니다.

개인적으로 포스트 자원 폴더보다는 전역 자원 폴더가 더 좋지 않을까 생각합니다.

# 관련 문서 바로가기