Skip to content

Commit 47434f8

Browse files
committed
Merge pull request #261 from humrochagf/pelican
postagem sites estáticos com lektor
2 parents 3543b0e + c7b12dd commit 47434f8

File tree

3 files changed

+134
-0
lines changed

3 files changed

+134
-0
lines changed
45 KB
Loading
33.7 KB
Loading
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
Title: Sites Estáticos com Lektor
2+
Slug: sites-estaticos-com-lektor
3+
Date: 2016-04-30 12:00
4+
Tags: tutorial,lektor,blog,framework
5+
Category: Lektor
6+
Author: Humberto Rocha
7+
Email: humrochagf@gmail.com
8+
Github: humrochagf
9+
Twitter: humrochagf
10+
Facebook: humrochagf
11+
Linkedin: humrochagf
12+
13+
**Publicado originalmente em:** [humberto.io/2016/4/sites-estaticos-com-lektor](http://humberto.io/2016/4/sites-estaticos-com-lektor/)
14+
15+
Faz pelo menos 4 anos que eu ensaio para montar um blog, e nessa brincadeira já montei alguns, mas quando chegava na hora de criar o meu eu nunca conseguia publicar.
16+
17+
Inicialmente com ferramentas de publicação como wordpress o problema era a dificuldade de customizar e o tanto de coisa que vinha junto que eu não ia usar mas ficava me tirando a atenção. Em seguida com o [GitHub Pages](https://pages.github.com) eu descobri o [Pelican](http://blog.getpelican.com) por indicação do [Magnun Leno](http://mindbending.org/pt) e comecei a fazer muita coisa com ele, mas da mesma forma que eu ganhei em liberdade de customização, o processo autoral é o mesmo de desenvolvimento, e como descrito no subtitulo do blog, meu lado cientista, pythonista e curioso ficava ali me cutucando para melhorar o site ao invés de escrever conteúdo.
18+
19+
Eis que em uma conversa no [grupo de telegram da comunidade python](https://telegram.me/pythonbr) me citam o Lektor e aí começou a aventura.
20+
21+
## Lektor?
22+
23+
[Lektor](https://www.getlektor.com) é um gerenciador de conteúdo estático criado por [Armin Ronacher](http://lucumr.pocoo.org) (sim, o criador do [flask](http://flask.pocoo.org)) que permite a criação de websites a partir de arquivos de texto.
24+
25+
## Porque usar?
26+
27+
Como descrito no próprio [site](https://www.getlektor.com/docs/what) ele bebeu das fontes dos CMS`s, dos frameworks e dos geradores de site estático e chegou em algo que eu considero um ponto de equilíbrio entre eles, e que nos leva as seguintes vantagens:
28+
29+
- **Estático:** O site final é totalmente estático, o que permite sua hospedagem em qualquer lugar;
30+
- **CMS:** Uma interface de produção de conteúdo que roda localmente e tira a necessidade de entender programação para poder produzir conteúdo. (no meu caso me tira do mundo do código e me deixa focar no conteúdo);
31+
- **Framework:** Ele possuí um sistema de models em arquivos de texto e um sistema de templates que usa Jinja2 que cria um ambiente familiar para quem já desenvolveu algo em django, flask e similares;
32+
- **Deploy:** O sistema de deploy dele é reduzido á uma configuração em um arquivo, o que permite a rápida publicação sem ficar dias aprendendo técnicas de deploy quando tudo que você quer no começo é colocar seu site no ar.
33+
34+
## Instalação
35+
36+
A instalação do Lektor é bem direta:
37+
38+
```
39+
$ curl -sf https://www.getlektor.com/install.sh | sh
40+
```
41+
42+
Este comando instala diretamente no sistema, se você prefere instalar em sua virtualenv:
43+
44+
```
45+
$ virtualenv venv
46+
$ . venv/bin/activate
47+
$ pip install Lektor
48+
```
49+
50+
Esta forma é desencorajada pelos desenvolvedores pois o lektor gerencia virtualenvs internamente para instalação de seus plugins, portanto caso seja desenvolvedor e quer ter mais controle sobre o lektor instale a versão de desenvolvimento e esteja pronto para sujar as mãos quando for preciso, e quem sabe até contribuir com o desenvolvimento do lektor:
51+
52+
```
53+
$ git clone https://github.com/lektor/lektor
54+
$ cd lektor
55+
$ make build-js
56+
$ virtualenv venv
57+
$ . venv/bin/activate
58+
$ pip install --editable .
59+
```
60+
61+
**Obs.:** requer `npm` instalado para montar a interface de administração.
62+
63+
## Criando o Site
64+
65+
Após a instalação para criar o seu site basta utilizar o comando de criação de projeto:
66+
67+
```
68+
$ lektor quickstart
69+
```
70+
71+
Ele irá te fazer algumas perguntas e criar um projeto com o nome que você informou.
72+
73+
### Estrutura
74+
75+
Esta é a estrutura básica de um site gerado pelo lektor:
76+
77+
```
78+
meusite
79+
├── assets/
80+
├── content/
81+
├── templates/
82+
├── models/
83+
└── meusite.lektorproject
84+
```
85+
86+
- **assets:** Pasta onde ficam os arquivos .css, .js, .ico entre outros recursos estáticos;
87+
- **content:** Pasta onde ficam os arquivos que iram gerar as páginas do site, cada subpasta corresponde a uma página no site gerado;
88+
- **templates:** Pasta onde ficam os arquivos de template que definem a sua estrutura visual;
89+
- **models:** Pasta onde ficam os arquivos que definem a modelagem de dados;
90+
- **meusite.lektorproject:** Arquivo com as configurações gerais do site.
91+
92+
### Executando localmente
93+
94+
Para rodar o site em sua máquina basta entrar no diretório criado e iniciar o servidor local:
95+
96+
```
97+
$ cd meusite
98+
$ lektor server
99+
```
100+
101+
Com o servidor rodando acesse [localhost:5000](http://localhost:5000) para ver o resultado:
102+
103+
![meusite](images/humrochagf/meusite.png)
104+
105+
### Acessando o Admin
106+
107+
Para acessar o admin clique na imagem de lápis no canto superior direito da página que você criou ou acesse [localhost:5000](http://localhost:5000/admin)
108+
109+
![meusite-admin](images/humrochagf/meusite-admin.png)
110+
111+
## Publicando o Site
112+
113+
Exitem duas maneiras de se fazer o deploy do site construído com o lektor, a manual, que é basicamente rodar o comando `build` e copiar manualmente os arquivos para o servidor:
114+
115+
```
116+
$ lektor build --output-path destino
117+
```
118+
119+
E a forma automática, que pode ser feita (neste caso para o GitHub Pages) adicionando a seguinte configuração no arquivo `meusite.lektorproject`:
120+
121+
```ini
122+
[servers.production]
123+
target = ghpages://usuario/repositorio
124+
```
125+
126+
E rodando em seguida o comando:
127+
128+
```
129+
$ lektor deploy
130+
```
131+
132+
**Obs.:** O deploy faz um force push na branch `master` ou `gh-pages` dependendo do tipo de repositório, portanto, cuidado para não sobrescrever os dados de seu repositório. Mantenha o código fonte em uma branch separada, você pode dar uma conferida no [meu repositório](https://github.com/humrochagf/humrochagf.github.io) para ter uma idéia.
133+
134+
Para informações mais detalhadas você pode acessar a [documentação do lektor](https://www.getlektor.com/docs) e também ficar de olho nas próximas postagens.

0 commit comments

Comments
 (0)