블로그에 무언가 끄적인게 언제인지 기억도 나지 않으려 한다. 끄적일만한 것이 없으니 당연하겠지. 언제나 개발자이고 싶고... 프로그래머이고 싶지만... 놓고싶지 않은 현실은 그렇지 못하니...

어쨌든 이대로 방치하지는 말자는 생각에 하루프레스를 정비했다. 한참을 했다. ㅡㅡ;; 윈도우 사용자라서 그동안 개인적으로 쓰던 우분투에 하루프레스를 올려 쓰고 있었는데, 관심을 두지 않고 있는 사이 우분투가 맛이 갔다. 부팅이 되지 않는다. 된장~

뭐, 다시 설치해서 해야지... 했는데... Github 에는 html 페이지 밖에 없다. 그렇다. 작성해 놓은 마크다운 문서가 없다. 제발 디스크는 멀쩡하기를 바라면서 다른 PC에 슬래이브로 물리고, 리눅스 파티션 인식을 위해 explore2fs를 설치했다. 다행이 살아있어 윈도우로 복사했다.

잠깐 고민했다. 하루프레스를 cloud9이나 Nitrous 같은 클라우드에 올려서 쓸까... 하다가 이참에 그냥 윈도우에서 돌려보기로 했다. 결론적으로 이글을 윈도우에서 작성하고 있는데... 여러 삽질이 필요했다. 그럴 줄 알았으면 정리를 좀 해가며 하는건데, 그러지 못해서 기억을 더듬고 있다.

기본 요구사항

Node.js

설치되어 있다. 버전은 v0.10.26

Git

윈도우에 git은 설치돼 있다. 주로 git-sh 에서 작업을 했다.

하루프레스 설치

소스 복제

혹시나 하여 하루프레스 저장소에서 드랍박스 폴더로 클론했다.

$ git clone git@github.com:rhiokim/haroopress.git /d/dropbox/juhoi.github.com

git-sh 에서는 윈도우의 D 드라이브를 /d/로 표시한다.

설치 및 초기화

"얼래? git-sh 에 make 가 없네" 맥이나 리눅스에서는 make init 한방이면 끝났을 일이다. make를 찾아 설치할까 하다가 귀찮아서... 그냥 해당 JS 스크립트를 직접 실행하거나 별도 쉘 스크립트를 만들어서 실행했다.

Makefile을 보면 initinitialize, setup, gh-pages, init-data 4가지 작업으로 볼 수 있다. 우선 initialize를 각각 쉘에서 실행했다.

$ npm install -g node-gyp
$ git submodule update --init --recursive
$ cd ./node_modules/robotskirt;node-gyp rebuild
$ cd ./node_modules/locally/;npm install

윈도우에서 node-gyp를 사용하기 위해서는 2점대 버전의 파이썬이 필요하다. 미리 설치가 되어 있어야 한다. 2.7.3 버전의 파이썬을 설치하여 다시 실행했다.

다음은 setup, gh-pages, init-data. 역시 쉘에서 직접 실행했고 문제없이 진행됐다.

$ ./bin/setup.js
$ cd ./bin/; ./gh-pages.js; cd ..
$ ./bin/init.js

정적 페이지 생성

큰 문제 없이 배포용 Github 저장소까지 셋팅이 됐다. 이제 정적 페이지를 생성해 보자. 기존 우분투에서 복사한 마크다운 문서를 ./source/data/articles에 복사한 후 다음과 같이 쉘 스크립트를 생성했다. Makefile의 gen 태스크를 그대로 옮겼다고 보면 된다.

#!/bin/sh

SOURCE_DIR=./source/public
DEPLOY_DIR=./_deploy
PUBLIC_DIR=./_public

./bin/clear.js
./bin/gen.js
mkdir -p ${PUBLIC_DIR}/slides/@asserts
cp -R ./lib/shower/themes ${PUBLIC_DIR}/slides/@asserts
cp -R ./lib/shower/scripts ${PUBLIC_DIR}/slides/@assert
cp -R ./lib/bootstrap/* ${PUBLIC_DIR}

이부분에서 무슨 문제가 있었던 것 같은데 기억이 잘 안난다 ㅜㅜ;; 큰 문제는 아니었을 듯...

미리보기 및 배포

정적 페이지가 생성이 됬으면, Github 으로 배포하기 전에 로컬에서 미리보기를 할 수 있다. ./bin/preview.js가 실행이 되는데, locally로 웹서버를 띄우고 브라우저를 실행하게 된다. 이부분이 윈도우에서 정상적이지 않아서 웹서버를 띄우는 부분과 브라우저를 실행하는 부분을 별도로 처리했다. .bashrc 파일에 다음과 같이 local이라는 별칭을 만들어 웹서버를 띄웠다.

alias local='locally -w ./_public -p 8080 > .stout 2> .sterr &'

곧바로 브라우저를 실행하기 위해 웹서버는 백그라운드로 실행하고 표준출력과 표준에러는 리다이렉트 시켰다. 그리고, 다음과 같은 쉘 스크립트로 브라우저를 실행했다.

#!/bin/sh

/c/Users/Administrator/AppData/Local/Google/Chrome/Application/chrome.exe http://localhost:8080

확인 후에는 fg 명령으로 실행중인 웹서버를 포그라운드로 전환하고 ^C로 종료한다. 마지막으로 Github 으로 배포. ./bin/deploy.js가 실행이 되는데, 역시나 브라우저 실행 부분이 같은 문제라서 해당 부분을 주석 처리 후 다음과 같이 쉘 스크립트를 만들어서 처리했다.

#!/bin/sh

cd ./bin;./deploy.js

read -p "open http://juhoi.github.io ? (y/n) " -n 1 yesno

case $yesno in
     "y")
          /c/Users/Administrator/AppData/Local/Google/Chrome/Application/chrome.exe http://juhoi.github.io ;;
     *)
          ;;
esac

exit 0

헉... 그런데, 로컬에서 문제 없던 것이 Github 에 배포하니 한글이 몽땅 깨지는 현상이 발생했다. 커밋 세시지부터 파일명까지 몽땅... 이 부분에서 가장 많은 삽질로 시간을 허비했는데... 결국은 윈도우 git 을 최신 버전으로 설치해서 해결했다. ㅡㅡ;;

포스팅하기

마지막일 줄 알았는데 생각해보니 새 글을 작성해보지 않았다. 간단한 쉘 스크립트를 만들어 실행했다.

#!/bin/sh

cd ./bin;./new-post.js

끝까지 순조롭지가 않다. 템플릿 마크다운 문서를 파싱하는 과정에서 오류가 발생했다. 윈도우 플랫폼인 관계로 줄바꿈 문자를 \n에서 \r\n으로 변경하여 해결했다. 이제 마음의 안정을 찾고 폰트, 레이아웃 및 프로필 썸네일 삭제 등 약간의 테마를 변경하고 마무리했다.

또 얼마동안 방치하게 될지 모르지만, 그냥 부담갖지 말고 생각하기로 했다.

하고싶을 때 하자~!


About Author

Juhoi Kim
blog: http://juhoi.github.io
twitter: @ByJuhoi
github: juhoi

모든 것은 나의 선택에 달려있다.