Hexo .DS_Store TypeError 해결 방법

오늘도 Hexo 블로그를 열심히 하던 중에 알 수 없는 에러를 만났습니다. 이것 때문에 generate 는 커녕 로컬 서버도 안되더군요. 별로 바꾼 것도 없는데 이렇게 되니 당황스러웠습니다.

Read more

검색 엔진 최적화(SEO)에 유용한 Hexo 플러그인

이전 포스트에서 검색과 웹 사이트 최적화에 대해 이야기를 했습니다. 구글 검색 엔진이 어떻게 동작하는지, 내 블로그가 검색이 잘 되게 하기 위해서 구글/네이버 웹 마스터 도구를 이용해서 페이지를 최적화했습니다.

Read more

Hexo 기본 사용법

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 로 주시면 됩니다. 하지만 이 경우에는 원격 서버에도 초안이 드러나기 때문에 굳이 이렇게 설정할 필요는 없을 것 같네요.

_config.yml
1
2
# Writing
render_drafts: true

파일명

1
$ hexo new [layout] <title>

여기서 입력하는 title 이 기본적으로 파일명이 됩니다. 파일명이 곧 페이지의 url 이 되기 때문에 파일명은 본문 내용의 핵심 키워드를 조합해서 만드는 것이 좋습니다. 그래야 검색에 잘 노출되기 때문이죠.

1
$ hexo new post 'test page'

위와 같은 명령어를 치면, test-page.md 라는 파일이 생성됩니다. 만약 날짜로 prefix 를 붙이고 싶다면 :year:month:day-:title.md 이런 식으로 placeholder 를 이용해서 커스터마이징 할 수 있습니다. 제가 현재 사용하는 방법인데 앞에 날짜가 붙어 있으면 날짜 별로 구분할 수 있어서 좋습니다.

_config.yml
1
2
# Writing
new_post_name: :year:month:day-:title.md

사용할 수 있는 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)

스캐폴드는 사전에서 찾아보면 ‘높은 곳에서 공사를 할 수 있도록 임시로 설치한 가설물’ 이라고 나옵니다. 즉, 포스트, 페이지, 드래프트를 만들 때 처음에 나오는 구조를 정의하는 파일입니다. 물론 커스텀 스캐폴드를 만들어서 사용할 수도 있겠죠.

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

Hexo 태그 플러그인 (Tag plugins) 살펴보기

Hexo 는 마크다운 외에 포스트를 작성하기 위한 자체적인 문법을 지원합니다. 그것을 태그 플러그인 이라고 합니다. 처음에는 마크다운이면 충분하지 않을까 싶어서 사용하지 않았었는데 유용한 기능들이 꽤 있더군요. 익숙해지시면 편하게 사용할 수 있는 태그 플러그인을 살펴보겠습니다.

Read more

Hexo 블로그에 구글 애드센스(Adsense) 추가하기

블로그가 광고로 지저분해지는 게 마냥 좋은 건 아니지만, 그래도 광고 수입을 포기할 수 없죠. 인터넷 뉴스 사이트처럼 광고로 점칠되어 있는 정도가 아니라면 괜찮을 것 같습니다. 내용에 읽는데 무리가 없되 적당히 눈에 잘 띄는 곳에 설치해보겠습니다.

Read more