Introdução ao Pelican
Tags: python, staticwebsite, pelican
Published: 2023-10-28 13:14:27

## TL;DR

  
Para criar um site estático com Pelican, siga os passos a seguir:

- Crie uma pasta do projeto
- Instale o Pelican e os pacotes Markdown executando `pip install "pelican[markdown]"`
- Execute `pelican-quickstart` e responda às perguntas que aparecerão
- Crie um artigo chamado `meu_artigo.md` com o seguinte conteúdo:

```
Title: This is my first article
Date: 2010-12-03 10:20
Category: Cool

Cool content goes here.
```

- Execute `pelican -r -l`, abra um navegador e acesse [http://localhost:8000/](http://localhost:8000/) para ver o site funcionando localmente.

---

# O que é Pelican?

O Pelican é um gerador de site estático escrito em Python.

Aqui estão algumas coisas que gosto sobre o Pelican:

- Podemos escrever conteúdo nos formatos [reStructuredText](http://docutils.sourceforge.net/rst.html) ou [Markdown](https://daringfireball.net/projects/markdown/) usando a ferramenta com a qual estamos familiarizados (eu uso o Obsidian, a propósito)
- Ele inclui uma ferramenta de linha de comando simples para gerar nosso site e realizar algumas outras coisas interessantes
- Ele gera um site estático que pode ser facilmente hospedado em qualquer lugar (até mesmo no AWS S3 (Simple Storage Service)!)
- Possui temas e plugins de código aberto feitos pela comunidade 


# O que é um site estático?

Ok, mas o que é um site estático?

Um site estático é um tipo de site que não altera seu conteúdo - não se atualiza com base em interações do usuário ou dados em tempo real (sem bancos de dados!). Geralmente é composto por arquivos HTML, CSS e, às vezes, arquivos JavaScript.

Para pessoas não técnicas, um site estático pode ser entendido como um folheto impresso. É como uma imagem de informações que não muda a menos que alguém fisicamente altere as palavras ou imagens no papel (o programador, no caso).

Por ser tão simples, normalmente é mais rápido, mais confiável, seguro e com certeza divertido de construir.


# Por que Pelican?

Sempre tive dificuldades para escolher a melhor ferramenta de escrita. Experimentei o MailChimp, o Medium, o Ulysses, o Evernote, o Notion, o Google Docs e outros, e muitas vezes me vi alternando entre eles - acabando por gastar mais tempo fazendo isso do que escrevendo efetivamente.

Outra coisa com a qual tive dificuldade foi decidir a melhor maneira de salvar e possivelmente controlar versões das minhas notas, porque, no final do dia, todas essas outras ferramentas ainda seriam responsáveis por armazenar meus dados.

Decidi escrever minhas notas e artigos como arquivos Markdown (uso o Obsidian para isso) e armazenar esses arquivos automaticamente com o iCloud no Mac.

E quando termino um artigo ou preciso editar um artigo que já publiquei, posso simplesmente usar o Pelican para (re)gerar as páginas do blog a partir dos meus arquivos Markdown.

# Configurando o Pelican

Como mencionei anteriormente, o Pelican é construído em Python, portanto, precisamos apenas instalá-lo como um pacote no PyPI (Python Package Index) e executar alguns comandos de linha de comando (CLI). Aqui estão os passos que precisamos seguir:

- Crie uma pasta de projeto
- Instale os pacotes Pelican e Markdown (recomendado fazer isso em um ambiente virtual Python)

```bash
# Crie um ambiente virtual para o Python
python -m venv env-pelican

# Ative o ambiente virtual no Linux/Mac
source env-pelican/bin/activate

# Ative o ambiente virtual no Windows
./env-pelican/Scripts/activate

# Instale o pacote do Pelican
python -m pip install "pelican[markdown]"
```

- Execute `pelican-quickstart` e responda às perguntas que aparecerão
- Crie um artigo chamado `meu_artigo.md` com o seguinte conteúdo (você pode aprender mais sobre os metadados suportados pelo Pelican [aqui](https://docs.getpelican.com/en/latest/content.html))

```
Title: This is my first article
Date: 2010-12-03 10:20
Category: Cool

Cool content goes here.
```

- Execute `pelican -r -l`, abra um navegador e acesse [http://localhost:8000/](http://localhost:8000/) para ver o site em funcionamento localmente
    - A opção `-r` reinicializa o Pelican sempre que uma modificação ocorre nos arquivos de conteúdo
    - A opção `-l` serve os arquivos de conteúdo via HTTP na porta 8000

Você vai ver algo muito parecido com a imagem abaixo:

![pelican-website](https://felipearcaro.github.io/images/pelican-website.png)