Servir seu conteúdo

Para o cliente é facil! Creio que a maior parte dos desenvolvedores diria “usar um CMS”.

Seja com Wordpress com um CMS já existente, ou um criado especificamente para o projeto, os Sistemas de Gerenciamento de Conteúdo são a escolha óbvia para grande parte dos clientes, em sites e blogs diversos.

Mas e quando é a sua vez?

Estou criando este blog por culpa influência do @fdaciuk, que começou o #1postperday, que tá sendo um sucesso - e com muito conteúdo de primeira!

Eu não me aguentei quis ficar de fora, e estou criando - finalmente - este que estás lendo. Para isso, levei em conta:

  • Necessidade: Gerenciar postagens, conteúdo e visual de um Blog

  • Requisitos: Fácil e rápido de prototipar e lançar, porém flexível o suficiente para receber funcionalidades e alterações de qualquer nível

  • E o mais importante: não precisa ser à nível de usuário final

Após a dica do @fdaciuk considerar diversas opções: de Blogger à Ghost, passando por WordPress, a escolha lógica acabou sendo usar gerador estático


Geradores Estáticos: Praticidade, leveza e difículdade na medida certa

Pois é. Além da mão de obra para customizar e infra para usar um CMS (DB, interpretador e servidor), usar um gerador estático tem algumas vantagens:

  • Super Light: Os arquivos são processados apenas uma vez, e não renderizados no servidor em cada acesso

  • Sem Bancos de Dados: Sem DBs, a segurança é mais tranquila, e a economia em processamento e infra, novamente, é total.

  • Escrever com MarkDown: ‘Dificuldade na medida certa’, inclui escrever em .md. Após pegar as manhas, fica tudo tão prático, e você pode utilizar HTML no meio à qualquer momento ^^y

  • Somente o necessário: Sem aquele monte de funcionalidades que você nem vai precisar.

  • Build Fácil, Depoy mais ainda: Você pode integrar seu gerador para fazer deploy diretamente no seu servidor, ou no Github (como estou fazendo ), diretamente do seu terminal :)

  • Divertido para devs: Pra gente, pode ser bemm mais legal que qualquer painel de controle

  • Use o que quiser: Você gosta de Jade? beleza. Curte EJS? Problema seu, fique à vontade. Que tal usar Stylus? Ou Prefere Sass? Não entendeu nada? fica tranquilo que dá pra usar css e html simples também.

  • Fácil de customizar - na medida certa: Cada post fica em um arquivo, apenas com seu conteúdo. O Tema é sempre modular, de pouco markup e rápido de editar.


Alguns Geradores Estáticos

Temos diversas opções disponíveis, vou citar algumas e suas principais características:

  • Hexo.io - Este em que vos escrevo ;) Roda em NodeJs. Simples de usar, suporta plugins e oferece facílima customização

  • Hammer - Exclusivo para Mac - e pago - o Hammer tem algumas funções interessantes como includes e tags especiais

  • Jerkyll - Roda em Ruby, suporte à diversas funções como filtros e processadores. É o gerador ‘Oficial’ do GitHub

A minha opção: Hexo.io

####Instalação

Por dica do Daciuk rodar em NodeJs e ja ter usado antes, optei pelo Hexo.io. É bem tranquilo de instalar. Tendo o Node, basta:

1
2
npm install -g hexo
hexo init **nome-da-pasta**

E toda estrutura básica é gerada.
Após editar as informações (Nome, autor, URL do site, etc) no arquivo _config.yml, podemos criar novo conteúdo, por exemplo:

####Criando conteúdo:

1
hexo new <tipo> "Criando conteúdo com Hexo.io"

O parâmetro <tipo> é qualquer um dos disponíveis (e você pode criar novos facilmente!) na pasta /scaffolds. O padrão é post.

O hexo new post "Titulo do post" irá criar um arquivo .md na pasta /source/_posts, onde o texto é inserido.

####Gerenciando temas

Arquivos de tema ficam na pasta /themes e sua lógica é bem simples e modular. Analisando com calma o código do tema padrão fica fácil entender. E existem vários temas prontos - em sua maioria, chineses - para Hexo, que podem ser instalados via git clone e manterem-se atualizados, também, por controle de versão.

####Gerando prévias e arquivos estáticos
O comando hexo server deixará o blog disponível no localhost:4000

Para gerar os arquivos estáticos, pode-se usar o hexo generate, para limpar o cache, hexo clean.

####Deploy automático

No próprio arquivo _config.yml podemos configurar como fazer o deploy. Para o github, por exemplo fica assim:

1
2
3
4
deploy:
type: github
repo: https://github.com/SEUNOME/SEUNOME.github.io.git
branch: master

Lembrando que o repositório deve seguir os padrões necessários para gh-pages.

E tem muitas outras opções já prontinhas para deploy, como Heroku, OpenShift, Rsync…

Conclusão

Geradores estáticos não estão nem perto de serem uma opção indicável à leigos, porém podem trazer imensa economia de tempo e facilitar a vida do Desenvolvedor que busca ter um Blog, ou um site rápido de divulgação para alguma Lib ou plugin. Isso tudo sem perder a capacidade d gerenciar o conteúdo, personalizar e até escrever offline.

Sinto uma elegância e fluidez, proporcionada pelo carregamento puro de arquivos html. A experiência do usuário é clara, fica bem mais rápido.

Bom, é isso. E por aqui inauguro o RcDevLabs, gerado comHexo.io e hospedado no Github Pages.

Um grande abraço, e até a próxima!

Segue aí, curte que curto de volta. troco like. #sqn hehe