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

스프링 부트 (Spring Boot) 로 시작하는 프레임워크 (Framework)

스프링을 사용하다보니 좋은 프레임워크긴 하지만 지옥같은 XML 설정과 방대한 양의 코드 때문에 애를 먹었습니다. 간단한 소규모 혹은 개인 프로젝트에서도 스프링을 사용하고 싶은데 왠지 무거운 느낌입니다. 그러던 중 예전에 들었던 스프링부트가 생각나서 프로토타입을 만들 때 적용해보기로 했습니다. 많은 설정을 자동화시켜서 훨씬 쉽고 간단하게 사용할 수 있다고 합니다. 그렇다면 스프링 프레임워크를 시작하기 전에, 먼저 프레임워크가 무엇인지부터 알아보겠습니다.

Read more