Já a um tempo estava pensando em fazer um blog, algo que pra mim parecia meio impossível, até porque não sou muito fan de escrever, mas com a constante necessidade de testar novas tecnologias e de escrever, seja código ou conceitos, o que aprendi para lembrar depois, criei coragem e finalmente decidi fazer meu blog. Foi então que me deparei com o Jekyll, uma ferramenta que gera um site estático a partir do conteúdo que você adiciona seguindo uma convenção própria dele, o Jekyll então pega o conteúdo, aplica os templates e conversões necessárias e cospe o conteúdo estático. E a parte mais legal, você pode hospedar o conteudo no github.io DE GRAÇA.
Então vamos ver como começar a usar o Jekyll, primeiro você precisa ter o Ruby instalado, nesse tutorial estou utilizando a versão 2.2.2, tenha também o RubyGems instalado. Comece instalando o Jekyll e o bundler rodando o comando no console na pasta do projeto.
Após a instalação você vai ter disponível o comando jekyll, então vamos rodar a seguinte instrução para criar um novo projeto Jekyll
Esse comando irá criar a estrutura de pastas e o arquivo de configuração do Jekyll, também irá criar alguns arquivos de exemplos para o uso do Jekyll, o que é muito útil para quem está começando a utilizar a ferramenta.
Veja que a opção --force é apenas para o caso de sua pasta não estiver vazia.
Vamos começar explicando um pouco da estrutura de pastas do Jekyll, vamos começar pela pasta "_layout", nessa pasta você coloca todos os arquivos que você planeja usar como layout, e nas páginas filhas você irá referenciar esses arquivos pelo nome sem a extensão. Veja o exemplo a seguir::
A instrução {{ content }}, é uma instrução do Liquid template, que é utilizado pelo Jekyll para renderização do template, essa instrução é responsável por pegar o conteudo da pagina e joga-lo dentro do template especificado. Veja um exemplo de uma página utilizando esse template:
Perceba as instruções entre os "---", elas funcionam como declarações, o nome layout especifica que arquivo na pasta _layout estamos referênciando, o title funciona como uma declaração de variável que pode ser acessado através do prefixo "page", como pode ser observado na instrução {{ page.title }}, essa variáveis estarão disponíveis seja no arquivo atual da página, ou no template, quando o Jekyll tentar processar os arquivos ele vai encontrar as variáveis.
Na pasta "_include", podemos criar arquivos que podem ser incluídos em outras páginas através da instrução {% include nome-do-arquivo.html %}, assim podemos reaproveitar algumas partes de páginas em diferentes layouts.
Na pasta "_sass", você pode quardar seus arquivos de parciais .sass/.scss, por default o Jekyll vem com suporte a arquivos sass e scss, então supondo que você possua um arquivo na pasta "css/main.scss", quando você processar o projeto, você vai ter um arquivo "css/main.css".
gora a pasta principal do seu projeto Jekyll, a pasta "_post", nela você vai criar os seus posts do seu blog, seguindo a convenção usada pelo Jekyll de ano-mes-dia-nome-do-arquivo", por exemplo o arquivo desse post é "2016-11-16-comecando-com-jekyll.html". Essa convenção deve ser seguida, pois o Jekyll só irá considerar o arquivo na pasta caso você a siga. Veja um exemplo de post
Note a variável date, ela não pode ser diferente da data do arquivo. A variável categories também é importante para a montagem das urls default do post, esse post será acessível na url "/jekyll/2016/11/20/comecanto-com-jekyll", caso seja omitido a variável categories, sera apenas "/2016/11/20/comecanto-com-jekyll"
O Jekyll também lhe dá a possibilidade de listar os posts, para cada arquivo que existir na pasta “_posts”, um registro será adicionado na variável "site.posts", que é uma lista dos posts cronologicamente. Veja o exemplo de listagem:
Agora que sabemos o básico do Jekyll, vamos testar o nosso primeiro site, para testar localmente o projeto, basta rodar o comando seguinte na pasta raiz do projeto
O Jekyll irá compilar seus arquivos e subir um servidor local no endereço http://localhost:4000
Por fim, outro comando essencial é o build, ele irá compilar seus arquivos e colocá-los na pasta _site, com esses arquivos você pode hospedar seu site "estático" onde quiser
O Jekyll é uma ferramenta bastante poderoza, possui muitos plugins e funcionalidades para serem exploradas, oque vimos aqui é apenas a ponta do iceberg, você pode acessar o site https://jekyllrb.com/ e ver um pouco mais de suas funcionalidades.