Pelican e os Static Site Generators (Geradores de Sites Estáticos)

AGRADEÇA AO AUTOR COMPARTILHE!

Django é de longe o meu framework Python favorito. Fácil, extensível, com uma série de “baterias inclusas” que tornam o desenvolvimento de aplicações Web muito mais fácil e divertido.

Mas verdade seja dita, para algumas soluções, é como se utilizássemos um canhão para matar um mosquito. Existe toda uma preocupação no que diz respeito a persistência, caching, serviço de aplicação e serviço Web, que em determinados contextos não passa de “overhead”.

pelican-python-gerador-sites-estaticos

Foi em cima dessa linha de pensamento que resolvi abandonar a enginede blog django-diario, e me aventurar pelo mundo dos geradores de sites estáticos.

Por que um static site generator?

Geradores de sites estáticos não são nenhuma novidade, e existem aos montes. Seja em RubyNode.jsPHP ou até mesmo em Perl, a sua popularidade é notória e no mínimo curiosa.

Alguns amam, outros odeiam. A verdade é que (uma vez a sua ferramenta devidamente configurada) eles tornam a publicação de conteúdo muito simples: Basta pegar o HTML gerado e jogar no seu servidor favorito, podendo, inclusive, ser aquela sua hospedagem nacional, que mal funciona e que você sonha um dia ter suporte a Python 3.

Já passei por problemas com indisponibilidade de banco de dados, websites invadidos por falhas de segurança em aplicações como Joomla! e WordPress, e nem vou mencionar as dores de cabeça que já tive para configurar um servidor WSGI dentro de uma hospedagem.

Com ferramentas como o Pelican esses problemas deixam de existir. A persistência é feita no seu próprio disco, o que é ótimo, já que você pode manter o seu blog inteiro (inclusive o seu conteúdo) versionado no GitHub.

Não estamos “regredindo” para uma web estática, estamos apenas explorando diferentes meios para publicação de conteúdo :)

Pelican FTW!

Por que Pelican? Porque é feito em Python. Simples assim.

Foi a primeira ferramenta que encontrei feita na linguagem, e desde lá venho explorando as suas funcionalidades. Logo, seria hipocrisia dar qualquer resposta diferente desta.

É claro que a ferramenta possui seus atrativos, a começar pela ótima integração com o Jinja2, que torna o processo de criação dos temas muito mais fácil e intuitivo. Estender o Pelican é simples, embora ele já possua uma série de plugins e temas para diferentes fins, prontinhos para uso.

Nesse processo escrevi um tema para o meu blog e, tendo escrito templates para Joomla!WordPress e até mesmo Django, sou obrigado a dizer: É muito, muito mais simples!

Além de ser fácil de usar, a ferramenta pelican-quickstart te entrega logo de cara uma estrutura de projeto bem consistente, incluindo tasks de publicação através de Makefile e Fabric. É configurar o seu pelicanconf.py, escolher o seu tema preferido, e sair usando.

Lembro de começar a usar o Pelican antes da sua versão 3.3, e foi uma tremenda dor de cabeça. Essa última versão está mais “redonda”, sua documentação abrange muito bem os passos de escrita conteúdo e criação de temas.

Minha maior crítica fica na fraca solução dada para instalação e gerência de temas e plugins. Fico na esperança de alguma boa alma chegar com uma ideia muito boa para resolver esse problema.

Considerações finais

Hype ou não, os static site generators possuem sim o seu valor. Se você está querendo blogar, ou está cansado de lidar com aquele seu WordPress que mais parece um elefante branco, considere utilizar uma dessas ferramentas.

E se você é pythonista, considere utilizar o Pelican. Quanto mais gente talentosa estendendo-o, melhor ele ficará!

Até a próxima.

Fonte: Klaus Laube

AGRADEÇA AO AUTOR COMPARTILHE!

Klaus Peter Laube

Mais artigos deste autor »

Tecnólogo em Análise e Desenvolvimento de Sistemas pelo Centro Universitário de Jaraguá do Sul (UNERJ). Desenvolvedor Web de longa data, apaixonado por Python e defensor dos padrões Web. Escreve quando pode no http://www.klauslaube.com.br.


Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">