아무래도 하루프레스에는 명령줄 도구가 필요해. 그것도 잘 디자인된 명령줄이면 더 좋을것 같아.
일단 명령줄 도구(Command Line Tool)란?
콘솔 혹은 터미널 상에서 명령어를 입력해서 하루프레스를 사용하는 것이지. 쉽게 말하면 GUI 반대말이라고도 할 수 있지. 마우스 클릭 만으로 사용할 수 있는 그래픽 요소는 전혀 없다는 말.
하루프레스와 같이 해커들을 위한 블로그 엔진 성격과 GUI 는 좀 어울리지 않아. 그래서 NPM 으로 명령줄 도구를 만들기로 했지.
먼저 하루프레스에서 사용하는 기능들에 대한 정의가 필요해. 이미 v0.8.2
를 향해 달려가고 있는 중이라 대부분의 주요 기능들은 구현된 상태라고 할 수 있지. 뿐만 아니라 이미 Make 로 작성된 것들이 있어서 그것을 기반으로 하면 되.
이 정도면 하루프레스를 이용하는 사용자에게 기본적인 도구는 되겠어 좀더 디테일한 기능은 앞에 6가지가 완료되면 더 넣기로 하고 일단 완료.
그럼 위의 기능들이 실제로 하루프레스에서는 어떤 이름을 갖게 되면 좋을까? 하루프레스랑 동떨어지면 안되고 명령줄 도구는 자주 사용하게 될테니 하루프레스를 각인시키기 위해서 haroopress 로 해야겠다.
음… 그런데 좀… 길어. 아무리 각인 시킨다지만 너무 긴건 짜증나니까. 풀 네이밍을 저렇게 가져가되 축약 명령도 만들어야 겠어.
의미를 유지하면서 축약한거니 거부감도 없고 하루프레스에 대한 인식도 어느정도 유지될 꺼라고 본다.
명령어는 마음에 들게 정해졌지만 구현해야 할 기능들은 굉장히 많네. 그럼 좀더 상세하게 기능을 정리해 봐야겠다.
하루프레스를 정적 페이지를 생성해주고 깃헙 저장소로 배포하는 것등을 자동화 해주기 때문에 깃헙 저장소에서 클론(clone) 한 후에 사용자 컴퓨터 환경에 맞게 동작할 수 있어야 하니까 초기화를 해주어야 겠지.
초기화에 생각보다 할 것이 많네. 일단 하나의 타스크별로 모듈을 구현을 하자. 그래야 타스크 조합을 통해 좀더 복잡한 처리에 유연하게 동작할 수 있을 테니. 그리고 재활용도 가능할 꺼고.. 예를 들면 초기화를 진행한 후에 배포 경로만 다른 곳으로 변경한다거나 환경설정을 새롭게 한다거나 할 수 있을테니
새로운 글을 작성하려면 하루프레스에 맞춰진 구조화된 위치에 임시 파일을 생성해주어야 해. config.js
환경설정 파일에 정의된 경로를 기준으로 파일을 생성해주면 되겠지.
예를 들면 다음과 같은 스텝으로 진행하면 좋을거 같아.
$ haroo new post
haroo> insert article's title : haroopress install guide
haroo> insert article's category : haroopress, tutorial, guide
haroo> insert article's tag : haroopress
haroo> created to path/to/article/dir/haroopress-install-guide.markdown
위의 스텝으로 진행해서 최종적으로 markdown 이 생성되고 해당 markdown 을 편집하면 되겠지.
근데 몇가지 고려해야 할 사항이 있어.
파일명 규칙에는 특히 중요한 이슈가 있는데 파일 제목이 영어라면 띄어쓰기 문자를 '-' 하이픈으로 치환해 버리면 되지만 만약 한글이면 처리할께 많아진다.
만약 포스팅 제목을 "하루프레스 설치 가이드" 라고 했다고 하면 파일명은 '하루프레스-설치-가이드.markdown' 이 될꺼고 정적페이지로 출력되어 웹 서비스될 때는 브라우저에서 유니코드로 자동 변환 할 텐데… 그러면 URI 가 깨지니 개선이 필요할 것 같아.
유니코드(Unicode)를 아스키코드(ASCII) 로 변환해주는 작업을 해야겠군
"하루프레스 설치 가이드" 가 'haroopress-seolchi-gaide.markdown' 형태로 되면 한글의 경우 파일명이 어색하기는 하지만 URI 도 좀더 낫다고 본다.
페이지 생성은 포스팅과 유사하지만 별도의 레이아웃 구조만 갖도록 처리하자. 작성예정...
작성예정...
캬캬! 하루프레스 미리보기는 정적 페이지를 생성해서 HTML 파일을 웹 서버를 띄워 그대로 보는 것이기 때문에 구현해야 할 기능은 굉장히 간단하다.
이것은 이미 만들어 놓은 locally 를 이용하면 되겠다.
로컬리(locally) 는 haroopress 와 같이 명령줄 도구로
locally
명령을 통해 현재 위치한(pwd) 경로를 웹 루트로 하여 웹 서버를 구동시켜주는 노드 기반의 모듈이다. 자세한 사용법과 옵션은 깃헙 저장소에서 확인하세요.
작성예정...