Jekyll 사용법

June 8, 2015

jekyll

Jekyll 은 아주 심플하고 블로그 지향적인 정적 사이트 생성기입니다. Jekyll 은 다양한 포맷의 원본 텍스트 파일을 템플릿 디렉토리로부터 읽어서, Markdown (또는 Textile) 과 Liquid 변환 작업을 수행하여, 당신이 즐겨 사용하는 웹 서버에 곧바로 게시할 수 있는, 완전한 정적 웹사이트를 만들어냅니다. 또한 Jekyll 은 GitHub Pages 의 내부 엔진이기도 합니다. 다시 말해, Jekyll 을 사용하여 자신의 프로젝트 페이지나 블로그, 웹사이트를 GitHub 에 무료로 호스팅 할 수 있다는 것입니다.

요구사항

  1. Ruby (개발 패키지 포함)
  2. RubyGems
  3. 리눅스, 유닉스, 또는 맥 OS X
  4. NodeJS, 또는 다른 JavaScript 실행환경 (CoffeeScript 지원에 필요함).

설치

sudo gem update --system

sudo gem install jekyll

sudo gem install rubygems-update
update_rubygems

gem 을 최신버전으로 업데이트하고 지킬을 설치한다 rubygems 설치 및 최신버전 업데이트

4ox@mac:~/Workspace
>> jekyll
jekyll 2.5.3 -- Jekyll is a blog-aware, static site generator in Ruby

Usage:

  jekyll <subcommand> [options]

Options:
        -s, --source [DIR]  Source directory (defaults to ./)
        -d, --destination [DIR]  Destination directory (defaults to ./_site)
            --safe         Safe mode (defaults to false)
        -p, --plugins PLUGINS_DIR1[,PLUGINS_DIR2[,...]]  Plugins directory (defaults to ./_plugins)
            --layouts DIR  Layouts directory (defaults to ./_layouts)
        -h, --help         Show this message
        -v, --version      Print the name and version
        -t, --trace        Show the full backtrace when an error occurs

Subcommands:
  build, b              Build your site
  docs                  Launch local server with docs for Jekyll v2.5.3
  doctor, hyde          Search site and print specific deprecation warnings
  help                  Show the help message, optionally for a given subcommand.
  new                   Creates a new Jekyll site scaffold in PATH
  serve, server, s      Serve your site locally

root@mac:~/Workspace
>> jekyll new testBlog
New jekyll site installed in /Users/woong/Workspace/testBlog.

root@mac:~/Workspace
>> cd testBlog/

jekyll이 제대로 설치 되었는지 확인하고 테스트로 하나 만들어봅니다.

테스트

4ox@mac:~/Workspace/testBlog
>> jekyll serve
Configuration file: /Users/woong/Workspace/testBlog/_config.yml
            Source: /Users/woong/Workspace/testBlog
       Destination: /Users/woong/Workspace/testBlog/_site
      Generating...
                    done.
 Auto-regeneration: enabled for '/Users/woong/Workspace/testBlog'
Configuration file: /Users/woong/Workspace/testBlog/_config.yml
    Server address: http://127.0.0.1:4000/
  Server running... press ctrl-c to stop.

이후 jekyll serve 명령어를 통해 테스트할 수 있는 서버를 띄웁니다. 브라우저를 띄워 http://localhost:4000 으로 접속하면 아래 화면을 볼 수 있습니다.

serve.png

빌드

4ox@mac:~/Workspace/testBlog
>> jekyll build
Configuration file: /Users/woong/Workspace/testBlog/_config.yml
            Source: /Users/woong/Workspace/testBlog
       Destination: /Users/woong/Workspace/testBlog/_site
      Generating...
                    done.
 Auto-regeneration: disabled. Use --watch to enable.

4ox@mac:~/Workspace/testBlog
>> ll
total 40
drwxr-xr-x  14 woong  staff   476  6  5 16:42 .
drwxr-xr-x  10 woong  staff   340  6  5 16:39 ..
-rw-r--r--   1 woong  staff    18  6  5 16:39 .gitignore
drwxr-xr-x   3 woong  staff   102  6  5 16:42 .sass-cache
-rw-r--r--   1 woong  staff   557  6  5 16:39 _config.yml
drwxr-xr-x   5 woong  staff   170  6  5 16:39 _includes
drwxr-xr-x   5 woong  staff   170  6  5 16:39 _layouts
drwxr-xr-x   3 woong  staff   102  6  5 16:39 _posts
drwxr-xr-x   5 woong  staff   170  6  5 16:39 _sass
drwxr-xr-x   7 woong  staff   238  6  5 16:42 _site
-rw-r--r--   1 woong  staff   470  6  5 16:39 about.md
drwxr-xr-x   3 woong  staff   102  6  5 16:39 css
-rw-r--r--   1 woong  staff  1291  6  5 16:39 feed.xml
-rw-r--r--   1 woong  staff   506  6  5 16:39 index.html

jekyll을 빌드하고 폴더 내부를 살펴보면 이런 파일들과 폴더들이 생성됩니다.

| 파일/폴더 | 설명 | |——-|——–| | _config.yml | 환경설정 정보를 보관합니다. 명령어에 직접 옵션을 지정하여 실행할 수도 있지만, 그렇게 따로 외워두는 것보다 이 파일에 정의해두는 편이 더 쉽습니다. | | _drafts | 초안은 게시하기 전 상태의 포스트입니다. 파일명 형식에 날짜가 없습니다: title.MARKUP. 초안 활용하기를 읽어보세요. | _includes | 필요에 따라 포스트나 레이아웃에 끼워넣을 수 있는 조각들로서, 쉽게 재사용할 수 있습니다. {\% include file.ext \%}’ 라는 Liquid 태그를 사용하면, 조각 파일 _includes/file.ext 이 삽입됩니다. | _layouts | 이 템플릿들이 포스트 주위를 감쌉니다. 다음 섹션에서 설명하는 YAML 머리말에 의하여 각 포스트 별로 레이아웃이 선택됩니다. 페이지에 컨텐츠를 주입할 때는 <article >

centOS7 network 변경

June 8, 2015

CentOS 7 에서 네트워크 설정

CentOS 7에서 네트워크 인터페이스의 명칭이 변경되었습니다.

지금까지는 “eth ~” 였는데, 7.0부터는 “en ~ ‘ 로 바뀌었다. (예. enp0s2) 설정 파일의 위치는 : “/etc/sysconfig/network-script” 아래에 있습니다.

[root@7cent ~] $ ls -la /etc/sysconfig/network-scripts/ifcfg*
-rw-r - r-- 1 root root 321 8 월 8 09:03 /etc/sysconfig/network-scripts/ifcfg-enp0s2
-rw-r - r-- 1 root root 254 8 월 3 09:30 /etc/sysconfig/network-scripts/ifcfg-lo

네트워크를 설정해 보겠습니다.

기본은 dhcp로 되어있습니다.


HWADDR="00:00:29:AB:CD:EF"
TYPE="Ethernet"
BOOTPROTO="dhcp"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="b3d0246c-d2ba-49c7-98fb-2c394b30e29b"
ONBOOT="yes"

고정 IP로 바꿔보겠습니다. 고정 IP “192.168.10.244”로 바꿔보겠습니다.

HWADDR="00:00:29:AB:CD:EF"
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="b3d0246c-d2ba-49c7-98fb-2c394b30e29b"
ONBOOT="yes"

# IP Address
IPADDR = "192.168.10.244"
# Subnet Mask
NETMASK = "255.255.254.0"
# Default Gateway
GATEWAY = "192.168.10.1"
# DNS Server
DNS1 = "8.8.8.8"

바뀐 부분은 세번째 줄에 “BOOTPROTO”의 값을 “dhcp”에서 “none”으로 변경하고, (IP 주소, 서브넷 마스크, 기본 게이트웨이, DNS 서버)의 내용을 추가하면 된다. 설정 파일을 수정했다면 네트워크를 다시 시작합니다.

systemctl restart NetworkManager systemctl restart network

Cent OS 7.0의 네트워크 설정이 완료되었습니다.

출처 : 만석이의 예술 이야기

</article>

라는 Liquid 태그를 사용합니다. | _posts | 말하자면 동적인, 당신의 컨텐츠입니다. 파일의 명명 규약이 아주 중요한데, 반드시 다음 규칙을 따라야 합니다: YEAR-MONTH-DAY-title.MARKUP. 고유주소는 각 포스트 별로 수정이 가능하지만, 날짜와 마크업 언어 종류는 오로지 파일명에 의해서 결정됩니다. | _data | 여기에는 올바르게 형식화된 사이트 데이터를 보관합니다. Jekyll 엔진은 이 디렉토리에 있는 모든 YAML 파일 (확장자가 .yml 또는 .yaml) 을 자동으로 읽어들입니다. 만약 이 디렉토리에 members.yml 파일이 있다면, site.data.members 라고 입력하여 그 컨텐츠에 접근할 수 있습니다. | _site | Jekyll 이 변환을 마치고 나서 생성된 사이트가 저장되는 (기본값) 위치입니다. 아마도 .gitignore 파일에 이 디렉토리를 추가하는 것이 좋을 것입니다. index.html 과 다른 HTML, Markdown, Textile 파일들 파일에 YAML 머리말 섹션이 있다면 Jekyll 에 의해 변환됩니다. 사이트의 루트 디렉토리나 위에 언급된 디렉토리 외에 다른 모든 디렉토리 안의 .html 이나 .markdown, .md, .textile 파일도 해당됩니다. | 다른파일 폴더 | css 나 images 폴더, favicon.ico 파일 등 위에 언급되지 않은 다른 디렉토리와 파일들은 그대로 복사됩니다. 다른 사이트들은 어떤식으로 구성되었는지 궁금하다면, 이미 Jekyll 을 사용하는 사이트들이 많이 있으니 살펴보세요. |