Skip to content

Commit 47a297c

Browse files
committed
Merge branch 'arthur-alves-pelican' into pelican
2 parents 7587e96 + 7340844 commit 47a297c

File tree

2 files changed

+195
-0
lines changed

2 files changed

+195
-0
lines changed
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
Title: Criando sites estáticos com Pelican Framework
2+
Slug: criando-sites-estaticos-com-pelican
3+
Date: 2014-08-28 00:30
4+
Tags: tutorial,pelican,blog,framework
5+
Author: Arthur Alves
6+
Email: arthur.4lves@gmail.com
7+
Github: arthur-alves
8+
Twitter: Arthur_4lves
9+
Facebook: Arthur4lves
10+
Category: Pelican
11+
12+
<figure style="float:right;">
13+
<img style="border-radius: 50%;" src="/images/arthur-alves/captaoboing.png">
14+
</figure>
15+
</br>
16+
###O que é?
17+
18+
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.
19+
</br>
20+
###Configurando o ambiente
21+
<small>**Obs**: *Se já tiver um virtualenv instalado pule esta parte*</small>
22+
</br>
23+
Instale no seu ambiente o Python Package Index, ou famoso **pip**:
24+
25+
sudo apt-get install python-pip
26+
27+
Recomendo fortemente o uso do **virtualenv**, é muito simples de instalar.
28+
29+
pip install virtualenv
30+
31+
E logo vamos instalar o assistente dele, o **Virtualenvwrapper** (Opcional):
32+
33+
pip install virtualenvwrapper
34+
35+
Crie uma pasta na sua **home**, como por exemplo, "mkdir .venvs", e configure também seu ~/.bashrc com as seguintes linhas:
36+
37+
export WORKON_HOME=~/.venvs
38+
source /usr/local/bin/virtualenvwrapper.sh
39+
40+
Depois valide:
41+
42+
. ~/.bashrc
43+
44+
Agora crie seu virtualenv com o seguinte comando:
45+
46+
mkvirtualenv pelican
47+
48+
49+
</br>
50+
###Instalando o Pelican
51+
52+
Agora que o ambiente está pronto, vamos instalar o Pelican. Basta fazer o seguinte:
53+
54+
pip install pelican markdown
55+
56+
<small>**Obs**: *Por padrão o Pelican utiliza o rst, mas vou utilizar o markdown. Se não quiser, remova o markdown da instalação.*</small>
57+
58+
Crie uma pasta separada para trabalhar com o Pelican e iniciarmos nossas tarefas.
59+
Feito isso, vamos iniciar com o comando abaixo:
60+
61+
pelican-quickstart
62+
63+
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:
64+
65+
Where do you want to create your new web site? [.] #pasta onde você quer salvar seu projeto
66+
What will be the title of this web site? #Titulo do site
67+
Who will be the author of this web site? #Seu nome aqui
68+
What will be the default language of this web site? [en] - #pt para portugues
69+
Do you want to specify a URL prefix? e.g., http://example.com (Y/n) - #Url do seu blog
70+
What is your URL prefix? #www.seublog.dev
71+
Do you want to enable article pagination? (Y/n) - #Paginação
72+
How many articles per page do you want? [10] - #Itens por paginação
73+
Do you want to generate a Fabfile/Makefile to automate generation and publishing? (Y/n) - Sim - #Facilita muito
74+
Do you want an auto-reload & simpleHTTP script to assist with theme and site development? (Y/n) - #Um server para testes
75+
Do you want to upload your website using FTP? (y/N) - #Opcional
76+
Do you want to upload your website using SSH? (y/N) - #Opcional
77+
Do you want to upload your website using Dropbox? (y/N) - #Opcional
78+
Do you want to upload your website using S3? (y/N) - #Opcional
79+
Do you want to upload your website using Rackspace Cloud Files? (y/N) - #Opcional
80+
Do you want to upload your website using GitHub Pages? (y/N) - #Opcional
81+
82+
83+
Feito isso ele irá criar uma estrutura com esta abaixo:
84+
85+
>├── content
86+
│ └── teste.md # este arquivo é o que vamos adicionar
87+
├── output
88+
├── develop_server.sh
89+
├── fabfile.py
90+
├── Makefile
91+
├── pelicanconf.py
92+
└── publishconf.py
93+
94+
</br>
95+
96+
Seguindo a estrutura acima, dentro da pasta **content**, crie o arquivo **teste.md** para iniciarmos
97+
nosso primeiro post.
98+
99+
E vamos digitar o seguinte:
100+
101+
Title: Hello Pelican!
102+
Date: 2014-08-19 17:00
103+
Category: Python
104+
Tags: pelican, markdown
105+
Slug: primeiro-artigo
106+
Author: Arthur Alves
107+
Summary: Um resumo sobre o post do Pelican
108+
109+
#Testando nosso primeiro post no Pelican
110+
111+
Pelican é um gerador de páginas estáticas criado em python para facilitar nossa vida, na
112+
criação de blogs, landingpages ou site estáticos.
113+
114+
</br>
115+
Salve o nosso arquivo, volte para a pasta raiz do projeto e vamos ver o nosso resultado com o seguinte comando:
116+
117+
make html && make serve
118+
119+
ou
120+
121+
./develop_server.sh start
122+
123+
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**.
124+
125+
Se você respondeu "Y", no pelican-quickstart para gerar seu **make file**, estes comandos irão funcionar.
126+
E você pode ver seu resultado em [http://127.0.0.1:8000/](http://127.0.0.1:8000/)
127+
128+
Mas se não gerou, não tem problema, você pode fazer da seguinte forma: na pasta raiz do projeto digite:
129+
130+
pelican content -s pelicanconf.py -o output
131+
132+
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.
133+
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.
134+
135+
### Temas e um pouco do arquivo pelicanconf.py.
136+
137+
Abra seu arquivo **pelicanconf.py**, e veja seu conteudo. Repare que existe algumas variáveis que com a ajuda do **[Jinja2](http://jinja.pocoo.org/docs/)**, ele popula algumas informações no template, vejamos por exemplo abaixo.
138+
139+
#!/usr/bin/env python
140+
# -*- coding: utf-8 -*- #
141+
from __future__ import unicode_literals
142+
143+
AUTHOR = u'Arthur Alves' # Autor do site
144+
SITENAME = u'Meu Blog Pelican' # Nome do site
145+
SITEURL = 'blogdoarthur.dev' # url do site
146+
147+
TIMEZONE = 'America/Sao_Paulo'
148+
149+
DEFAULT_LANG = u'pt'
150+
151+
Altere conforme a sua necessidade. Em **TIMEZONE**, caso o seu seja diferente, você pode alterar conforme esta página no [Wikipedia](http://en.wikipedia.org/wiki/List_of_tz_database_time_zones). Vamos agora instalar um tema, utilizando o comando facilitador **pelican-themes**, digite no seu terminal:
152+
153+
pelican-themes -l
154+
155+
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](https://github.com/getpelican/pelican-themes), veja pelas screenshots qual te agrada mais. Se quiser baixar todos clone o diretório, ou clique em download Zip ou clicando [aqui](https://github.com/getpelican/pelican-themes/archive/master.zip).
156+
157+
Depois de escolhido seu tema, vamos usar o seguinte comando na pasta raiz do seu projeto para instalá-los:
158+
159+
pelican-themes --install caminho/onde/baixou/seu-tema/favorito
160+
161+
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:
162+
163+
THEME = u'themes/o-tema-que-escolheu'
164+
165+
166+
Depois disso só digitar novamente:
167+
168+
make html && make serve
169+
170+
E seu tema está instalado. Mais sobre configurações deste arquivo leia na [Doc do Pelican](http://docs.getpelican.com/).
171+
172+
</br>
173+
174+
###Curiosidades e erros.
175+
176+
O nome **Pelican** é um anagrama de **calepin**, que significa bloco de notas em francês.
177+
178+
O site do Python Club é feito com o framework Pelican.
179+
180+
Se você teve algum erro de encode ou coisa do tipo:
181+
182+
UnicodeEncodeError: 'ascii' codec can't encode character u'\xc9' in position 13: ordinal not in range(128)
183+
184+
Isso significa que sua versão do Pelican é mais antiga, pois isso já foi corrigido e você pode instalar direto do repositório.:
185+
186+
pip install -e "git+https://github.com/getpelican/pelican.git#egg=pelican"
187+
188+
Ou então trocar a variável $LANG, que deu certo com algumas pessoas no [github](https://github.com/getpelican/pelican), digite no terminal o seguinte:
189+
190+
export LANG=en.UTF-8
191+
192+
Pois é, funciona. Mas prefira instalar a versão mais nova, já com o patch.
193+
194+
Bem pessoal, é simples, mas espero que ajude o pessoal a ficar mais íntimo do Pelican e ajudar com o [pythonclub](http://pythonclub.com.br/).
195+
112 KB
Loading

0 commit comments

Comments
 (0)