Migrando para o Pelican

Posted by Diego Garcia on Sun 14 February 2016

Depois de um longo hiato, resolvi voltar a dar atenção a esse blog, porém, antes de voltar a escrever, ainda tinha algo que me incomodava bastante, a complexidade do jekyll. Após contribuir com alguns posts no pythonclub descidi que iria migrar para o Pelican, pois, além de ser mais simples, o Pelican é feito em python, o que me ajuda bastante em futuras customizações.

O que é Pelican?

Assim como o Jekyll o Pelican é um gerador de sites estáticos simples que não requer um banco de dados ou uma lógica server-side complexa. Com o pelican, no caso de blogs por exemplo, basta você escrever seus posts em arquivos no formato markdown (ou rst ou AsciiDoc) em seu editor favorito e com apenas um comando simples, esses arquivos são convertidos em páginas html estáticas prontas para servir seu blog.

Como começar?

Começaremos instalando o Pelican, para isso, crie um virtualenv do python no diretório onde você irá criar seu blog e instale o pelican através o pip:

(venv) $ pip install pelican markdown

Com o Pelican instalado, execute o comando pelican-quickstart para criar um esqueleto básico do seu blog com o pelican:

(venv) $ pelican-quickstart

Esse comando fará algumas perguntas básicas sobre seu blog, após respondê-las, seu blog está praticamente pronto :).

Como escrever posts?

Com a parte básica do pelican já configurada, agora é hora de escrever um post. O diretório padrão para o conteúdo a ser processado pelo pelican é o diretório content dentro da raiz do diretório onde o comando pelican-quickstart foi executado, sendo assim, basta criar seus posts nesse diretório.

Criando um "Hello World"

Não existem segredos na criação de um post com o pelican, basta criar arquivos no diretório content e preencher um cabeçalho mínimo com alguns meta-dados do post como esse:

Title: Titulo do post
Date: Data do post no formato aaaa-mm-dd hh-mm
Category: Categoria do post

Sendo assim, nosso Hello World ficaria da seguinte forma:

Title: Hello World
Date: 2016-02-11 00:00
Category: Review

Meu primeiro Hello World direto do Pelican \o/

Como gerar o conteúdo?

Gerar o conteúdo estático é a parte mais simples do trabalho, basta executar o comando pelican "diretório" e todos arquivos do diretório em questão serão processados:

(venv) $ pelican content
Done: Processed 1 articles, 0 drafts, 0 pages and 0 hidden pages in 0.70 seconds.

Esse comando básicamente gera os arquivos estáticos no diretório output.

Como vejo o blog no ar?

Agora que todo o conteúdo estático do seu blog já foi gerado, basta iniciar um servidor http no diretório output. Para isso, dentro do diretório output basta executar o comando python -m pelican.server e abrir o navegar em http://localhost:8000.

hello-world

Pronto, seu blog com o Pelican já está no ar =D.

Como mudar o tema padrão?

Mudar o tema que será utilizado para gerar o output estático é algo trivial no Pelican, basta você baixar o tema escolhido (você pode escolher alguns disponíveis, no reposítorio pelican-themes) e alterar o tema na constante THEME do arquivo pelicanconf.py.

# pelicanconf.py
THEME = '/diretório/do/tema`

Lembrando que os tema são feitos utilizando o Jinja2 como engine de templates, sendo assim, é muito simples customizar os temas ou até mesmo criar um novo.

Como instalar plugins?

Outra tarefa trivial, basta baixar o plugin (você pode escolher alguns disponíveis no repositório pelican-plugins) e alterar o arquivo pelicanconf.py especificando o diretório dos plugins e quais plugins estão ativos:

# pelicanconf.py
PLUGIN_PATHS = ['/diretório/dos/plugins']
PLUGINS = ['plugins', 'ativos']

Como publicar usando o GitHub Pages?

Utilizo o GitHub Pages para publicar o conteúdo do blog. No Jekyll bastava o comando rake deploy e a mágica acontecia, no Pelican não é diferente, basta o comando make github e o conteúdo estático (pasta output) será commitado e enviado para o GitHub. É possível automizar esse processo para sempre que houver um push no repositório o travis gere o conteúdo estático e faça a atualização dos arquivos na branch do GitHub Pages, para mais informações de como configurar essa automação, recomendo a leitura do excelente artigo GitHub Pages com Pelican e Travis-CI do Grupy-DF.

Como foi a migração do Jekyll para o Pelican?

A migração do Jekyll para o Pelican foi algo extremamente simples, bastou copiar os posts do diretório source/_post do jekyll para o diretório content do pelican e alterar os metadados dos posts, por exemplo:

  • Padrão do Jekyll
---
layout: post
title: "Use o cURL"
date: 2014-12-13 01:04:33 -0200
comments: true
categories: [curl]
---
  • Padrão do Pelican
Title: Use o cURL
Date: 2014-12-13 01:04:33
Category: Curl

Como decidi usar um tema novo (e não portar o que estava utilizando no jekyll) o resto foram ajustes simples.

Referências
Site Oficial

tags: python, pelican,



Comments !