Existem infinitas maneiras de fazer tudo. Por isso que é importante avaliar os efeitos de nossas decisões, mesmo quando o assunto é nosso ainda-não-tão-visitado blog.
Utilizar serviços como o Wordpress e o Blogger é certamente a alternativa mais ágil. Mas isso, infelizmente, acopla nosso conteúdo a projetos muito rígidos e pouco receptivos a customizações e otimizações.
Exibir textos e imagens, de maneira rápida e atraente ao leitor, é tudo que a maioria dos blogs precisa. Imagine se você pudesse escrever arquivos .txt
talvez .md
, coloca-los num diretório e apenas commita-los pra publicar um novo post.
Pois é, isso existe! Alguém já teve essa ideia e criou o Jekyll… o ponto de partida para entrarmos em nossa aventura rumo a criação do blog perfeito.
Instalando o Jekyll
O Jekyll é uma ferramenta que nos ajudará a converter arquivos Markdown em páginas HTML navegáveis. Como ele é uma biblioteca Ruby (ou uma gem
), você precisará ter o Ruby 2.1 (ou superior) instalado antes de mais nada, então verifique a versão da sua instalação:
$ ruby -v
ruby 2.3.4p301 (2017-03-30 revision 58214) [x86_64-darwin17]
Se você tiver uma versão abaixo do 2.1 ou não tiver o Ruby instalado, confira aqui o processo de instalação.
Com uma versão válida do Ruby configurada, podemos finalmente nos preocupar com o Jekyll. Para o instalarmos, executamos a linha a seguir, que também instalará o Bundler (um gerenciador de aplicações Ruby):
$ gem install jekyll bundler
Por fim, executamos jekyll -v
para garantir que a instalação foi bem sucedida. Se você visualizar algo como jekyll 3.6.2
, quer dizer que está tudo pronto e finalmente temos a principal ferramenta instalada na nossa máquina. Essa foi a parte difícil.
Criando nosso primeiro blog
Bom, agora vamos finalmente pedir para o Jekyll criar o esqueleto do nosso primeiro blog com o comando..
$ jekyll new nosso-blog
…logo em seguida, executamos:
$ cd nosso-blog && jekyll serve
Agora é só acessar http://127.0.0.1:4000 e WOW! Já está tudo funcionando (com um layout triste, eu sei) mas funcionando. Vamos entender um pouco sobre como o Jekyll funciona, olhando só pra saída do comando tree
.
$ tree
.
├── 404.html
├── Gemfile
├── Gemfile.lock
├── _config.yml
├── _posts
│ └── 2017-10-22-welcome-to-jekyll.markdown
├── _site
│ ├── 404.html
│ ├── about
│ │ └── index.html
│ ├── assets
│ │ └── main.css
│ ├── feed.xml
│ ├── index.html
│ └── jekyll
│ └── update
│ └── 2017
│ └── 10
│ └── 22
│ └── welcome-to-jekyll.html
├── about.md
└── index.md
- O
_config.yml
armazena todas configurações do seu blog e variáveis globais, acessíveis a qualquer momento na aplicação; - O diretório
_site
recebe os arquivos estáticos gerados pelo Jekyll, este é o diretório que “vai pra produção” no final das constas; - O
Gemfile
é o arquivo que descreve as dependências do nosso projeto, enquanto oGemfile.lock
é um arquivo gerado que descreve as dependências instaladas; - Os arquivos
about.md
eindex.md
geram páginas estáticas HTML, respectivamente,about/index.html
eindex.html
; - Apesar do
404.html
já ser um arquivo HTML, ele também é processado, ganhando o cabeçalho<head>
, o<footer>
e tudo mais que está definido no layout default; - Por fim, no diretório
_posts
, adicionamos nossos posts formatados usando Markdown (pode alterar o2017-10-22-welcome-to-jekyll.markdown
e começar sua primeira empreitada).
Mas… você deve estar pesando: - De onde vem esse layout default? E esse main.css
? Boa sacada se você estava pensando isso! O nosso _config.yml
tem uma linha que define o tema que está sendo utilizado, veja:
theme: minima
…e no Gemfile
, a dependência com este tema também está declarada:
gem "minima", "~> 2.0"
Podemos mudar isso, alterando todo o layout do nosso blog em apenas 3 passos:
- No
Gemfile
, substituímos a linhagem "minima", "~> 2.0"
porgem "jekyll-swiss"
; - No
_config.yml
, substituímos a linhatheme: minima
portheme: jekyll-swiss
. - E finalmente, baixamos as dependências com:
$ bundle install
…e pronto! Vamos rodar a aplicação para ver o que acontece:
$ jekyll serve
Woow! olha só http://127.0.0.1:4000. Além dos temas oficiais minima, swiss e athena. Você pode encontrar muito outros em http://jekyllthemes.org.
Deploy
O processo de deploy do Jekyll é realmente simple e super integrado com o GitHub pages.
Tudo que você precisa fazer é criar um repositório chamado seu_username.github.io e commitar o projeto que criamos na branch master
. No meu caso, meu username é karreiro
, então o repositório do meu blog é karreiro.github.io
.
Tudo será automaticamente buildado e seu site já estará disponível.
Faça você mesmo
Apesar de existirem muitos temas legais, neste blog (karreiro.com), preferi fazer um fork do minima
e incrementa-lo com o framework CSS miligram. Dessa maneira consegui chegar exatamente no estilo que gostaria. Fique a vontade para dar uma olhada do código fonte em https://github.com/karreiro/karreiro.github.io e se inspirar.
Divirta-se ;-)