menu close mail twitter feed github linkedin share-twitter share-google-plus share-facebook

Making Of

Olá, tudo bem?

Hoje vou falar sobre como o blog está estruturado, não vou me estender muito pois não é a intenção dar detalhes de implementação sendo que existem milhares de conteúdos já disponíveis na web.

Por que Jekyll?

Primeiramente eu gostaria de explicar a motivação pela escolha da plataforma, o jekyll. Resumindo em poucos tópicos foram estes os meus motivos:

  • Plataforma amplamente conhecida e com suporte muito grande da comunidade
  • Facilidade e liberdade para criar/customizar de acordo com a minha necessidade
  • SEO, como as páginas são estáticas não tenho que me preocupar com indexação dos buscadores
  • Hospedagem, integrado com Github Pages é muito simples de configurar e sem custo
  • Algo novo para aprender :)

Problemas no setup

Queria falar um pouco dos problemas para rodar o jekyll.

No Mac foi muito tranquilo, já tinha o ruby instalado (utilizo o RVM) e estou utilizando a versão 2.2.0, com jekyll na versão 2.5.3 e a única coisa que foi necessário foi instalar a gem do jekyll.

Já no Windows (sim! eu instalei o ambiente no windows pois trabalho com a plataforma .NET e uma hora ou outra quero fazer alterações no site sem precisar pegar o Mac) foi um pouco mais chato pois existe algum problema de compatibilidade com algumas gems e o jekyll 2.5 não pode ser instalado, então estou com a versão 2.3.0 no Windows. Para instalar o ruby utilizei o RubyInstaller mesmo.

Alterações da estrutura padrão

Por padrão, a estrutura que o jekyll cria (até a versão citada, pelo menos), uma pasta _sass e outra _css, mas eu quis organizar o css/fonts/imagens/javascripts em uma pasta assets, basta uma configuração no _config.yml, nada demais.

Bibliotecas externas

Estou usando grunt para rodar algumas tarefas:

  • grunt-jekyll
  • grunt-sass
  • grunt-browserify
  • grunt-contrib-watch
  • grunt-browser-sync

O build do jekyll pelo grunt é muito mais lento do que o normal, por isso ainda tenho dúvidas se continuarei usando dessa forma.

O browserSync é genial mas também achei lento e nem sempre é útil, apenas para quando está na fase de fazer ajustes no layout que facilita bastante visualizar em todos dispositivos sincronizados.

Fora o build do grunt, estou utilizando uma biblioteca para o sass chamada bourbon, recomendo bastante, é bem útil!

Próximos passos

Existem algumas próximas tarefas que pretendo fazer em breve, primeiramente o layout, preciso finalizá-lo, problema que já mudei tantas vezes e nunca estou satisfeito.

Quando iniciei a estrutura, totalmente por extinto a primeira coisa que fiz foi importar o bootstrap, jQuery e requireJS. E depois de apanhar bastante para compilar tudo e fazer o RequireJS modular como imaginei, parei para pensar no que realmente era necessário e apaguei tudo!

Simplesmente por que parei para pensar se precisava mesmo utilizar tudo aquilo!

A minha ideia para o layout é muito simples, e o javascript que estava fazendo não precisava de jQuery!

No final das contas tirei o requireJS também porque decidi utilizar o browserify para modularizar javascript, mas como ainda não preciso de javascript no site o build dele está comentado no meu Gruntfile.

Por hoje é só

Bom, é isso que eu queria falar, o meu objetivo não foi passar nada de código e sim sobre a minha experiência e decisões que tomei para estruturar o meu site.

Espero que tenha agregado algo de útil, críticas, sugestões são sempre bem vindos.

Até a próxima!