As vezes temos a necessidade de criar algo rápido, como por exemplo um blog ou uma landing page, e não desejamos utilizar ferramentas muito robustas como Django, Web2py, etc. Na verdade eu faço isso mas é um exagero. Em um outro projeto meu queria uma solução muito rápida e simples, e é ai que entrou o Pelican, o framework/gerador de páginas estáticas feito em Python. Existem outros geradores em diversas linguagens, mas como nós sabemos, tudo em python é muito mais divertido.
Configurando o ambiente
Obs: Se já tiver um virtualenv instalado pule esta parte
Instale no seu ambiente o Python Package Index, ou famoso pip:
Recomendo fortemente o uso do virtualenv, é muito simples de instalar.
E logo vamos instalar o assistente dele, o Virtualenvwrapper (Opcional):
Crie uma pasta na sua home, como por exemplo, “mkdir .venvs”, e configure também seu ~/.bashrc com as seguintes linhas:
source /usr/local/bin/virtualenvwrapper.sh
Depois valide:
Agora crie seu virtualenv com o seguinte comando:
Instalando o Pelican
Agora que o ambiente está pronto, vamos instalar o Pelican. Basta fazer o seguinte:
Obs: Por padrão o Pelican utiliza o rst, mas vou utilizar o markdown. Se não quiser, remova o markdown da instalação.
Crie uma pasta separada para trabalhar com o Pelican e iniciarmos nossas tarefas.
Feito isso, vamos iniciar com o comando abaixo:
Este comando lhe fará uma série de perguntas sobre seu site, basta responder de acordo com suas necessidades. As opções em maísculas são as default, veja abaixo:
What will be the title of this web site? #Titulo do site
Who will be the author of this web site? #Seu nome aqui
What will be the default language of this web site? [en] – #pt para portugues
Do you want to specify a URL prefix? e.g., http://example.com (Y/n) – #Url do seu blog
What is your URL prefix? #www.seublog.dev
Do you want to enable article pagination? (Y/n) – #Paginação
How many articles per page do you want? [10] – #Itens por paginação
Do you want to generate a Fabfile/Makefile to automate generation and publishing? (Y/n) – Sim – #Facilita muito
Do you want an auto–reload & simpleHTTP script to assist with theme and site development? (Y/n) – #Um server para testes
Do you want to upload your website using FTP? (y/N) – #Opcional
Do you want to upload your website using SSH? (y/N) – #Opcional
Do you want to upload your website using Dropbox? (y/N) – #Opcional
Do you want to upload your website using S3? (y/N) – #Opcional
Do you want to upload your website using Rackspace Cloud Files? (y/N) – #Opcional
Do you want to upload your website using GitHub Pages? (y/N) – #Opcional
Feito isso ele irá criar uma estrutura com esta abaixo:
├── content
│ └── teste.md # este arquivo é o que vamos adicionar
├── output
├── develop_server.sh
├── fabfile.py
├── Makefile
├── pelicanconf.py
└── publishconf.py
Seguindo a estrutura acima, dentro da pasta content, crie o arquivo teste.md para iniciarmos
nosso primeiro post.
E vamos digitar o seguinte:
Date: 2014–08–19 17:00
Category: Python
Tags: pelican, markdown
Slug: primeiro–artigo
Author: Arthur Alves
Summary: Um resumo sobre o post do Pelican#Testando nosso primeiro post no Pelican
Pelican é um gerador de páginas estáticas criado em python para facilitar nossa vida, na
criação de blogs, landingpages ou site estáticos.
Salve o nosso arquivo, volte para a pasta raiz do projeto e vamos ver o nosso resultado com o seguinte comando:
ou
Este último é melhor para se trabalhar, pois a cada alteração ele atualiza automaticamente sem necessidade de reiniciar o comando, que é o caso do make html && make serve.
Se você respondeu “Y”, no pelican-quickstart para gerar seu make file, estes comandos irão funcionar.
E você pode ver seu resultado em http://127.0.0.1:8000/
Mas se não gerou, não tem problema, você pode fazer da seguinte forma: na pasta raiz do projeto digite:
Com este comando você está dizendo para o Pelican que você quer que todos os arquivos da pasta content, seja transformada em html de acordo com o arquivo de configuração pelicanconf.py, (que foi gerado automaticamente pelo pelican-quickstart lembra?) e deverá ser enviado para a pasta output.
Feito isso ele vai gerar os “htmls” na pasta output do projeto. E você pode ver o resultado com o template padrão do Pelican.
Temas e um pouco do arquivo pelicanconf.py.
Abra seu arquivo pelicanconf.py, e veja seu conteudo. Repare que existe algumas variáveis que com a ajuda do Jinja2, ele popula algumas informações no template, vejamos por exemplo abaixo.
2
3
4
5
6
7
8
9
10
11
# -*- coding: utf-8 -*- #
from __future__ import unicode_literalsAUTHOR = u‘Arthur Alves’ # Autor do site
SITENAME = u‘Meu Blog Pelican’ # Nome do site
SITEURL = ‘blogdoarthur.dev’ # url do site
TIMEZONE = ‘America/Sao_Paulo’
DEFAULT_LANG = u‘pt’
Altere conforme a sua necessidade. Em TIMEZONE, caso o seu seja diferente, você pode alterar conforme esta página no Wikipedia. Vamos agora instalar um tema, utilizando o comando facilitador pelican-themes, digite no seu terminal:
Repare que ele te apresenta todos os temas que você possui. E se quiser instalar outro tema, recomendo que procure no site pelican-themes do github, veja pelas screenshots qual te agrada mais. Se quiser baixar todos clone o diretório, ou clique em download Zip ou clicando aqui.
Depois de escolhido seu tema, vamos usar o seguinte comando na pasta raiz do seu projeto para instalá-los:
Esse comando é muito simples, ele só cria uma pasta com o nome de themes, dentro da raiz do projeto e coloca o tema lá, você pode fazer isso manualmente claro. No seu arquivo pelicanconf.py, crie uma variável como esta abaixo com o caminho:
Depois disso só digitar novamente:
make html && make serve
E seu tema está instalado. Mais sobre configurações deste arquivo leia na Doc do Pelican.
Curiosidades e erros.
O nome Pelican é um anagrama de calepin, que significa bloco de notas em francês.
O site do Python Club é feito com o framework Pelican.
Se você teve algum erro de encode ou coisa do tipo:
Isso significa que sua versão do Pelican é mais antiga, pois isso já foi corrigido e você pode instalar direto do repositório.:
Ou então trocar a variável $LANG, que deu certo com algumas pessoas no github, digite no terminal o seguinte:
Pois é, funciona. Mas prefira instalar a versão mais nova, já com o patch.
Bem pessoal, é simples, mas espero que ajude o pessoal a ficar mais íntimo do Pelican e ajudar com o pythonclub.
Este artigo foi importado automaticamente por fazer parte do Planetário Dev. Quer fazer parte deste HUB de conteúdos? Faça parte do Planetário e veja as vantagens.
Não tem site ou blog? Seja um autor do site e ainda pode ser remunerado.
Leia também: