[Tutorial] Usando o Pelican na implementação de site estático

Esse artigo tem como objetivo explicar os passos de implementação de sites estáticos com Pelican.

Antes de mais nada, para acompanhar esse tutorial é necessário conhecimento da ferramenta git/github, linguagem python, linguagem de marcação html e markdown, de estilo CSS, linha de comando a depender do seu sistema operacional.

Crie uma pasta separada para trabalhar com o Pelican para iniciarmos nossas tarefas. Feito isso, vamos os passos abaixo:

Primeiro passo é preparar o ambiente (se você já tiver o ambiente segue pelo passo dois):

sudo apt-get install python-pip [Linux]
ou
python get-pip.py [Windows]

pip install virtualenv

Segundo passo, criar a venv utilizando o seguinte comando, substituindo o nome de sua preferência:

python3 -m venv nomedavenv

Terceiro passo, a ativação da venv:

source nomedavenv/bin/activate [Linux]
ou
nomedavenv\Scripts\activate [Windows]

Quarto passo, a instalação do pelican:

pip install pelican markdown

Na sequência, iniciaremos o pelican com o seguinte comando:

pelican-quickstart

Este comando lhe fará uma série de perguntas sobre seu site, basta responder de acordo com suas necessidades. As opções em maiúsculo são as default, veja abaixo:

Where do you want to create your new web site? [.]  #pasta onde você quer salvar seu projeto
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

Teremos a seguinte configuração na pasta raiz do projeto:

├── content
│ └── teste.md # este arquivo é o que vamos adicionar
├── output
├── Makefile
├── pelicanconf.py
└── publishconf.py

Após esse processo de perguntas e respostas, iremos criar nosso primeiro artigo, dentro da pasta content, crie o arquivo teste.md, digite o seguinte dentro do arquivo:

Title: Olá Pelican!  
Date: 2021-08-20 17:00  
Category: Python  
Tags: pelican, markdown  
Slug: primeiro-artigo  
Author: Nome Sobrenome
Summary: Um breve 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, landing pages ou site estáticos.

Para ver como ficou o nosso site inicialmente, no terminal (linux) ou no prompt comando (Windows), acesse a pasta do projeto, depois digite o seguinte comando:

make html && make serve

Se tiver tudo certo, você poderá acessá-lo no navegador digitando o seguinte endereço:

Agora, poderemos iniciar o processo de designer do nosso site, ao escolher um tema no site de temas do pelican. Assim, deve baixar o tema e colocar em uma pasta denominada theme dentro da pasta raiz do projeto. E no arquivo pelicanconf.py, deve ser acrescentado o seguinte trecho de código:

THEME = 'theme/nomedotemapelican'

Dependendo do temas, poderá solicitar a configuração de algum plugin, então, acrescente também a pasta plugins na pasta raiz do projeto. E no arquivo pelicanconf.py, deve ser editado:

PLUGIN_PATHS = ["plugins"]
PLUGINS = ["nomedoplugin"]

Outra configuração importante que deve ser feita no arquivo pelicanconf.py é de conteúdo estático:

STATIC_PATHS = ['images', 'extra/robots.txt', 'extra/favicon.ico', 'extra/CNAME']
EXTRA_PATH_METADATA = {
    'extra/robots.txt': {'path': 'robots.txt'},
    'extra/favicon.ico': {'path': 'favicon.ico'},
    'extra/CNAME':{'path': 'CNAME'}
    }

Também é importante acrescentar ao final do arquivo pelicanconf.py, para orientação do designer do site conforme os templates do tema escolhido:

DIRECT_TEMPLATES = ['index', 'tags', 'categories', 'authors', 'archives']

Dica de ouro: Leia os detalhes no arquivo readme.md do tema escolhido. Pois, pode haver detalhes de configurações interessantes e específicos do tema.

Para publicar depois de está tudo ok, digite no terminal/prompt comando da pasta raiz do projeto, para instalar o ghp-import:

pip install ghp-import

Antes de terminamos, precisamos iniciar o git na pasta raiz do projeto e adicionar o github do projeto. Assim no terminal do projeto digite:

git init
git remote add origin https://github.com/seunick/seunick.github.io.git

Para publicar e construir o build, utilizando o github pages, digite os seguintes comandos:

make publish
pelican content -o output -s pelicanconf.py
ghp-import output -b gh-pages
git push origin gh-pages

Olha um exemplo do resultado desse tutorial em: https://pamellabiotec.github.io/

Considerações Finais

Vimos nesse tutorial como implementar site estático utilizando o CMS Pelican e programação python, e hospedagem no github page. Se tiverem alguma dúvida, deixe nos comentários que logo responderei.

18