Welcome to Jekyll! - como instalei Jekyll no Mac OS X El Capitan

28 Abril 2016

Escrito por Francisco H. C. Felix

You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site when a file is updated. To add new posts, simply add a file in the _posts directory that follows the convention YYYY-MM-DD-name-of-post.ext and includes the necessary front matter. Take a look at the source for this post to get an idea about how it works.

Jekyll also offers powerful support for code snippets:

def print_hi(name)
  puts "Hi, #{name}"
end
print_hi('Tom')
#=> prints 'Hi, Tom' to STDOUT.

Check out the Jekyll docs for more info on how to get the most out of Jekyll. File all bugs/feature requests at Jekyll’s GitHub repo. If you have questions, you can ask them on Jekyll Talk.

Esta é a postagem de exemplo que vem no pacote do Jekyll. Ela dá informações sobre o local das postagens no sistema de diretórios, o script do Jekyll para servir a página localmente, como adicionar novas postagens, como incluir snippets de código, e direciona para a documentação.

Jekyll foi fácil de instalar, uma vez superado o problema de instalar uma cópia de Ruby que possa ser usada para desenvolvimento no Mac OS X El Capitan. O sistema da Apple vem com uma cópia de Ruby pré-instalada que não pode ser usada facilmente. A sua pasta de instalação padrão é /usr/bin, a qual, juntamente com outras pastas do sistema, são protegidas pelo System Integrity Protection. Ele não permite a modificação destas pastas, nem mesmo por usuários logados como root. A melhor maneira é instalar outra cópia do Ruby, funcional. Para esse fim, usei um gerenciador de pacotes, o rbenv, o qual permite escolher a versão a ser instalada. Isso é importante, pois o Jekyll 3 depende do Ruby v2. Particularmente, no meu sistema, obtive melhores resultados com Ruby 2.2. Então, a instalação procedeu assim:

ATENÇÃO! Antes é necessário ter instalado XCode e Command Line Tools para Xcode.

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

para instalar Homebrew um gerenciador de pacotes para Mac OS X que administra muito bem o problema das instalações e SIP.

$ brew update # faz o update do Homebrew
$ brew install rbenv # instala rbenv
$ rbenv init # inicializa

para instalar rbenv (e ruby-build, o script que permite a instalação de Ruby) e iniciá-lo.

$ rbenv install -l # lista versões disponíveis de Ruby
$ rbenv install 2.2.3 # instala a versão escolhida

para listar as versões disponíveis de Ruby e instalar a versão escolhida.

Ta da! Você pode checar sua nova instalação de Ruby:

$ which Ruby # local onde Ruby está instalado
$ Ruby -v # versão do Ruby

que, no meu sistema retorna:

/Users/Helder/.rbenv/shims/ruby
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin15]

Assim, tenho uma cópia funcional de Ruby que me permite desenvolver e não necessitei mexer na instalação padrão do sistema! O próximo passo foi instalar o Jekyll. Como ele é uma gem de Ruby, o ideal é usar o Bundler, um gerenciador de dependências de gems que permite instalações modulares, com configurações personalizadas para cada pasta-alvo.

$ gem install bundler # instala Bundler

instala o Bundler. Depois, é necessário ir para o diretório desejado e criar um arquivo de configuração Gemfile. Como usei o GitHub Pages para hospedar e servir o site, precisei antes criar um repositório do Git e um branch gh-pages (vide instruções).

$ git init /pasta/onde/vc/quer/seu/blog # cria a pasta com o repositório
$ cd /pasta/onde/vc/quer/seu/blog
$ git checkout -b gh-pages # cria o branch gh-pages e muda para ele
$ echo "source 'https://rubygems.org'
$ gem 'github-pages', group: :jekyll_plugins" >> Gemfile # cria o arquivo de configuração
$ bundle install # instala a gem com suas dependências

Note que a única gem que mandei o Bundler instalar foi github-pages, que, ao ser configurada, vai pedir todas as dependências necessárias para manter um ambiente do Jekyll em sincronia com o GitHub Pages. Após a instalação, um arquivo Gemfile.lock é criado, contendo a configuração local. Na minha pasta /jekyll/ciencia-medica ficou assim:

GEM
  remote: https://rubygems.org/
  specs:
    colorator (1.1.0)
    ffi (1.9.14)
    forwardable-extended (2.6.0)
    jekyll (3.2.1)
      colorator (~> 1.0)
      jekyll-sass-converter (~> 1.0)
      jekyll-watch (~> 1.1)
      kramdown (~> 1.3)
      liquid (~> 3.0)
      mercenary (~> 0.3.3)
      pathutil (~> 0.9)
      rouge (~> 1.7)
      safe_yaml (~> 1.0)
    jekyll-sass-converter (1.4.0)
      sass (~> 3.4)
    jekyll-watch (1.5.0)
      listen (~> 3.0, < 3.1)
    kramdown (1.12.0)
    liquid (3.0.6)
    listen (3.0.8)
      rb-fsevent (~> 0.9, >= 0.9.4)
      rb-inotify (~> 0.9, >= 0.9.7)
    mercenary (0.3.6)
    pathutil (0.14.0)
      forwardable-extended (~> 2.6)
    rb-fsevent (0.9.7)
    rb-inotify (0.9.7)
      ffi (>= 0.5.0)
    rouge (1.11.1)
    safe_yaml (1.0.4)
    sass (3.4.22)

PLATFORMS
  ruby

DEPENDENCIES
  jekyll
  rouge

BUNDLED WITH
  1.12.5

mostrando que o Bundler instalou o Jekyll e todas as outras gems necessárias. Por fim:

$ bundle exec jekyll new # cria um novo template do Jekyll

E para servir localmente seu site e verificar pendências:

$ bundle exec jekyll serve

Ao fim do processo, fiz um commit e um push para o repositório remoto do GitHub, o que automaticamente publicou a página na internet.

$ git add . # adiciona arquivos à monitoração do Git
$ git commit -am "publica página" # faz o commit dos arquivos adicionados
$ git remote add gh-pages https://github.com/usuario/meu_repo.git # adiciona um remote para fazer o push
$ git push gh-pages gh-pages
Welcome to Jekyll! - como instalei Jekyll no Mac OS X El Capitan - April 28, 2016 - fhcflx