Yeoyou....

Personal blogs

Started Jekyll

지킬 시작하였습니다.

장기간 포스팅이 없고 방치되었던 블로그를 싹 정리해서 요즘 가장 핫 하다는 jekyll로 이전하였습니다. 스태틱 사이트라서 최근 구매한 포고플러그에서도 가볍게 서비스 할 수 있습니다.

이제 맥미니는 잠자기를 들어가도 되겠네요 ;) 너무 맘에 들어서 그간 곳곳에 흩어놓은 블로그 글들 이제 다 모아도 되겠습니다.

지킬 부트스트랩(http://jekyllbootstrap.com/)과 옥토프레스(http://octopress.org/)를 고민하다 둘다 설치해 보고 옥토프레스로 결정했습니다!

부트스트랩이냐 옥토프레스냐 그것이 문제로다.

  • 옥토프레스 테마가 더 많은듯
  • 옥토프레스에는 tags cloud 가 없는듯, 하지만 플러그인 설치로 해결 가능
  • 옥토프레스는 categories 페이지도 없는듯.. 구조 파악도 할 겸 만들어 붙이자
  • 지킬 부트스트랩은 지원종료에 제작자가 ruhoh(http://ruhoh.com/)라는 걸 새로 만들어 가꾸는중…

지킬이란?

: 마크다운 원본을 정적 사이트로 변환해 주는 툴

결과가 html 스태틱 파일이므로, 동적인 컨텐츠는 불가능 하지만, 글이 추가될때 마다 재생성 하는것으로 대부분 블로그 기능을 구현 할 수 있다.

html 스태틱 파일이므로 :

  • 서버 부하가 적고 Github 나 dropbox 등으로 퍼블리시가 용이하다.
  • 백업이나 이력관리는 Git 등을 사용하면 되고
  • 편한 OS와 편집기를 사용하여 관리 가능하다는게 장점이 될 수 있다.
  • 원본 글이 텍스트 파일이므로 regular expression 등을 이용한 replace all등이 용이하다.

그밖에 댓글, 검색 등은 외부 서비스를 이용하고…

사용례

신규 블로그 개설:

  1. 로컬 파일로 옥토프레스를 설치한다.
  2. 신규 포스트를 작성한다 (빈 파일 또는 템플릿)
  3. 내용을 편집한다.
  4. git 설정, commit, push 로 백업
  5. 작성 사이트 내용 확인
  6. 복사, 릴리즈

신규 포스트 작성:

  1. 신규 포스트 작성 (빈 파일 또는 템플릿)
  2. 내용 편집
  3. git commit, push
  4. 작성 사이트 확인
  5. 릴리즈

기존 블로그 이전:

  1. 블로그 데이터 백업
  2. 블로그 파일 이동
  3. 기존 파일 호스팅 추가 (또는 변경)
  4. 포스트 변환
  5. git 설정, commit, push
  6. 작성 사이트 확인
  7. 릴리즈

옥토프레스(http://octopress.org/)

: 지킬용 프레임워크

클론후 블로그 제목, 저자, DISQUS 아이디 등의 간단한 설정만 바꿔주면 바로 블로그를 사용할 수 있다. 테마등을 제공하므로 몇개의 테마중에서 간단히 선택, 적용 가능하다. 새 글 추가는 루비스크립트를 통해 헤더등을 자동 생성해 준다.

설치

$ git clone git://github.com/imathis/octopress.git octopress
$ cd octopress
$ sudo bundle install
$ bundle exec rake install

테마는 http://opthemes.com/ 이곳에서 보고 선택

$ cd octopress
$ git clone https://github.com/gehaxelt/CSS-WhiteLake.git .themes/whitelake
$ bundle exec rake install['whitelake']
$ bundle exec rake generate

tags cloud 설치

https://github.com/robbyedwards/octopress-tag-pages, https://github.com/robbyedwards/octopress-tag-cloud 에서 각각 plugins/tag_generator.rb, source/_includes/custom/tag_feed.xml, source/_layouts/tag_index.html 다운로드. plugins/tag_cloud.rb 다운로드

index.html 등에 {% tag_cloud %}를 넣어서 동작 확인

source/_includes/asides/tags.html 을 추가 _config.ymldefault_asides:asides/tags.html를 추가

설정

기본설정

_config.yml

  • url : rss 피드용 주소
  • title : 블로그 타이틀
  • subtitle : 소제목
  • author : 블로그 저작자 (모든 페이지 하단 등에 표시)
  • email : 이메일
  • disqus_short_name : 댓글용, disqus에 가입하고 설정할때 사용한 short name 을 그대로 적는다
  • google_analytics_tracking_id : 구글 어낼리틱스 가입후 사이트 설정에서 설정값 입력
  • facebook_like: true

발행

rsync 를 비롯 몇가지 발행 방법을 제공한다

bundle exec rake gen_deploy

를 통해 Rakefile 에 설정한 정보로 public 폴더의 내용이 동기된다. 본인은 rsync 밖에 사용해 보지 않았다.

웹 서버에서 작업하는 경우

  1. public 폴더를 웹서버 루트로 설정
  2. bundle exec rake generate 하면 public 폴더에 페이지 작성

rsync 로 설정하는 경우

  1. ssh-keygen -t rsa -b 2048 등으로 공개키 생성 (이미 있다면 스킵)
  2. ssh 서버에 ~/.ssh/authorized_keys 에 생성된 id_rsa.pub 의 내용을 붙여넣기 (없으면 생성)
  3. Rakefile 을 열어서 처음 ssh_user, document_root, rsync_delete = true 등을 설정
  4. bundle exec rake gen_deploy 명령으로 릴리즈
  5. 서버단에 nginx 등으로 해당 폴더를 서버 루트로 설정

rsync의 경우, 삭제하거나 이동한 글이 반영되게 하기 위해서 꼭 단방향 동기로 delete 설정을 넣도록 한다.

마이그레이션

워드프레스 xml 파일은

$ gem install jekyll jekyll-import
$ jekyll import wordpressdotcom --source wp.xml

과 같이 하면 _post 디렉토리에 html로 생성된다.

참고로 본인은 jekyll bootstrap 에서 생성한 html을 복사했다. (둘다 지킬 기반이라 그런지 아무 문제 없었다)

포스트 추가

새 글을 작성하기 위해서는

bundle exec rake new_post['title of the new post']

하면 source/_posts/2014-03-07-title-of-the-new-post.markdown 와 같은 템플릿 파일이 생성되고, 원하는 편집기를 이용해 본문을 작성하면 된다.

작성후에는 gen_deploy 등으로 발행하면 끝!

기타

역따옴표

markdown 원본글 중에 역따옴표 짝이 맞지 않는 경우 preview 나 watch 에서 자동변환에 실패하는 듯 하다. markdown 처리기를 변경하거나 옵션을 설정하면 피할 수 있을 지 모르겠다. 파싱 에러등은 bundle exec rake generate에서 에러가 났을텐데 preview로만 확인해서 에러메시지를 못본듯 하다. preview가 잘 안된다면 generate 등으로 확인해 보자.

댓글설정

기본 모든 페이지에는 댓글이 꺼져있는 듯 하다 각 글의 메타정보에 댓글설정을 true 로 해줘야 댓글이 표시된다.

Comments