Github pages + jekyll + asciidoc + asciidoc diagram

2018-03-12

Markdown이 간단한 블로깅을 하기에 좋은 도구입니다만, 문법의 혼란과 github에서 지원하는 플러그인의 제한등이 다른 해결책을 찾아 헤메다 보면 asciidoc 에 오게 됩니다.

환경

  • Github

    • draft repository:

    • 대표 페이지 repository: username.github.io

  • 작성 PC

    • jekyll 구동환경

작성환경 만들기

install ruby

현재 버전 확인

which ruby
  /usr/bin/ruby  기본 설치되어 있는 루비

rvm 설치

rmv(ruby version manager)를 설치합니다.
\curl -sSL https://get.rvm.io | bash -s stable
rvm reload
rvm list known 으로 확인
rvm install ruby-2.4
rvm use 2.4
which ruby
 /Users/narusas/.rvm/rubies/ruby-2.4.1/bin/ruby

짜잔 rvm 버전으로 루비가 바뀌었어요

이제 필요한 gem 을 설치합니다.

gem install bundler
gem install travis

작업용 repo 생성

github에서 저장소 생성.

이때 https://github.com/asciidoctor/jekyll-asciidoc-quickstart 를 fork 받는게 빠르다.

fork 받은 프로젝트의 이름을 변경한다.

blogdraft 정도로 이름을 변경한다

소스를 내려받는다

git clone [repo_url]

Gemfile 생성

Gemfile 을 열어 빠진 것을 추가한다

source 'https://rubygems.org'

gem 'jekyll', '~> 3.7.0'
gem 'coderay', '~> 1.1.0'
gem 'rake-jekyll', '~> 1.1.0'
gem 'jekyll-plantuml', '~> 1.1'
gem 'jekyll-diagrams'

group :jekyll_plugins do
  gem 'jekyll-asciidoc', '~> 2.0.1'
  gem 'asciidoctor-diagram'

end

아마도 jekyll-plantuml, jekyll-diagrams, asciidoctor-diagram 정도가 빠져있을 것이다

변경한후에 설치를 수행한다 bundle install

글 작성

이 이후에 글 작성은 _posts 폴더에 만들면 된다. 일반적인 jekyll 문서처럼 만들되 확장자만 .adoc 으로 주면 된다.

퍼블리싱용 repo 생성

github에서 저장소 생성.

이때 username.github.io 로 생성하면 독립적인 도메인을 받아서 http://username.github.io 로 접속할수 있게 된다.

세팅에 가서 github pages 설정을 활성화 시킨다

github token 생성

github가 asciidoc 을 지원하지 않기 때문에 travis 를 통해 빌드 하기 위해서는 github 에 푸시할 권한이 필요하다. 이를 위해 인증 토큰을 만들어야 한다.

  • Profie → Settings → Developer settings → Personal access tokens에 가서

  • Generate new token 을 누르고

  • public_repo 에 체크한후

  • 적당한 이름을 주고 생성한다

  • 생성된 인증 토큰은 잘 보관할것(두번다시 못봄)

travis 설정

  • https://travis-ci.org 에 가서 계정을 만든다

  • 프로필 페이지로 간다

  • 드래프트 저장소를 찾아 스위치를 켠다.

  • 저장소를 클릭해서 들어간 페이지에서 settings에 들어간다

  • “Build only if .travis.yml is present.” 를 활성화한다.

  • 환경변수를 추가한다.

  • gh_repo 퍼블리싱용 저장소 URL

  • gh_user github 계정

  • gh_pw 아까 발행한 github token

draft 저장소에 파일 추가

다음 두 파일은 최상단 폴더에 추가한다

travis.yml 추가
language: ruby
sudo: false
script: chmod +x sync.sh && ./sync.sh
addons:
  apt:
    packages:
    - graphviz
sync.sh 추가
bundle exec jekyll build

rm -fR /tmp/publish
mkdir -p /tmp/publish
cp -r _site/* /tmp/publish

rm -fR /tmp/master
mkdir -p /tmp/master
cd /tmp/master

git clone https://${gh_user}:${gh_pw}@github.com/${gh_user}/${gh_repo}
cd ${gh_repo}
git rm . -r
cp -r /tmp/publish/* ./
git add .
git commit -m "updated"
git push

두파일을 커밋하고 푸시한다.

travis 가서 동작하는지 확인

빌드에 문제가 없으면 http://username.github.io 를 방문해서 정상적으로 나오는지 확인해본다

Tags: asciidoc  github  github pages  jekyll  diagram