hexo 자동 발행시스템 꾸미기

블로그를 작성하여, 글을 올려보면 몇가지 불편한점이 있었다.

그 불편한점들을 직접 시스템? 을 꾸며서 편하게 작성하고자 했던 이력을 정리한다.

이전포스팅 블로그를 마크다운으로 다시 시작 에도 작성 했지만 블로그를 하다보면 가장 귀찮은게 웹에서 작성하고 게시 버튼는 누르는 행위였다.

“그럼 귀찮은걸 고쳐보자” 라고 마음먹고 작업? 삽질했다.

Step1. hexo 선택

hexo 를 선택한이유야 여러개 있었지만, 그냥 간단해서 선택했다. (선택이유 hexo 시작하며)

일단, 할일은 hexo 에 대해서 한번 써보는것이다. 폴더구조가 어떻고, 플러그인은? 테마수정방법은? 등등.. 구글에 널려있기 때문에 굳이 작성하지 않는다.

Step2. hexo 폴더중 post 폴더를 분리

hexo 폴더중에 source/_posts 폴더는 마크다운으로 작성된 글이 있는 폴더이다. 해당 폴더를 다른 클라우드 혹은 싱크 서비스로 분리한다.

난 그냥 공부도 할겸.. 공짜기도해서.. gitsubmodule 로 분리했다.

git repo 분리

일단 hexo 엔진에 필요한 기본 코드는 모두 hexo repo 를 따로 만들어서 관리한다. 그중, _posts 부분만 subtree 로 분리하여 하나의 repo 로 만든다.

  • hexo repopost subtree repo 의 글을 주기적으로 pull 하여 publish 하는 역할을 한다.

즉, 이제부터는 글쓸때는 hexo 시스템에 대해서 신경쓰지 않고, 오로지 post repo 에 작성하고 commit / push 한다.

Step3. hexo Publish 서버 구성

뭐 사실, 서버구성이랄것도 없다. 그냥 주기적으로 (crontab 사용) hexo 의 post 쪽 폴더(subtree)를 pull 하고 generate / publish 하는 역할이다.

난 누군가가 오프라인으로 작성한글을 긁어다가, hexo 페이지로 만들고 publish 를 대신하게 해주고싶었다. 그 역할을 그냥 간단하게 따로 서버에서 동작하게 한것이다.

현재 해당 서버는 odroid C2 로 구성되었다. 추후, 다시 설명할 기회가 있겠지만.. 집에서 쓰는 저전력서버로는 안성맞춤;;

Step4. 글쓰기 환경꾸미기

hexo 의 플러그인 설치

hexo 로 글을 작성하다보면 가장 불편한점중 하나가.. 앞에 hexo 의 형식대로 타이틀 이나, 날짜등을 적는것인데 그것을 편하게 동작하도록 해주는 플러그인이 있다.

해당 플러그인을 설치하면 그냥, 작성하는글이 hexo용 마크다운인지 뭔지 신경쓰지 않고 바로바로 글을 작성할 수 있다.

해당 플러그인에 카테고리 관련 정렬버그가 있어 github 쪽으로 피드백했더니 고쳐주었다. 역시 능력자들이 마음도 착하다~!

hexo 글 작성후 환경꾸미기

vs code 든 어떤 에디터이건 markdown 으로 글을 작성하고, post repo 에 글을 push 만 하면 된다.

적절한 에디터의 플러그인들을 활용하면, git 에 push 하는 행위조차 자동으로 하게 할수있다.
현재 vscode 의 task 기능을 이용하여 주기적으로 글을 작성하면, commit / push 를 하도록 하고있다.
관련 기능은 추후 소개예정..

  1. 컴퓨터에서 마크다운으로 글을 작성 -> post repo 에 push
  2. 개인서버에서 post repo 의 글을 가져와서 hexo web page 만듬
  3. 개인서버에서 웹호스팅 서비스로 데이터 전송

결론적으로 보면… 에디터에서 글을 일반 마크다운형식으로 작성하고 git repo 에 push 를 하면 끝.
추후에 hexo publish 서버쪽에서 내가 작성한 글을 pull 하여 글을 웹상에 올릴것이다.

결론..

뭐 대단한 시스템은 아니다. 하지만, 그냥 글을 편하게 에디터에서 글을 작성하면 git 으로 자동적으로 push 되고, 또한 다른 서버에서 자동적으로 웹으로 배포까지 해주니.. 블로그에 글을 올리는것은 참 쉬워졌다.

그냥 git subtree 도 써보고, 이런저런 플러그인도 사용해보고… 그냥 저냥 혼자 컴퓨터 갖고놀기는 좋은 주제다.;

사실 hexo publish server 를 gitlab ci 를 이용하여 꾸며도 된다. 하지만 몇가지 publish 하기전에 몇가지 쉘스크립트를 더 돌리고(이미지관련 path 지정) 테스트용 publish 하기전 테스트용 서버를 돌리기위해서 따로 구축하였다. 집에 원래 서버가있기도했고..^^;;

그냥 저냥 뻘짓;;;

0%